Sliver: A fast Sliver: A fast distributed slicing distributed slicing
algorithmalgorithm
Sliver: A fast Sliver: A fast distributed slicing distributed slicing
algorithmalgorithm
Ymir VigfussonYmir Vigfusson
Cornell UniversityCornell UniversityYmir VigfussonYmir Vigfusson
Cornell UniversityCornell University
Vincent GramoliEPFL & UniNE
SwitzerlandAnne-Marie KermarrecINRIA Rennes France
Vincent GramoliEPFL & UniNE
SwitzerlandAnne-Marie KermarrecINRIA Rennes France
Ken BirmanCornell University
Robbert van Renesse
Cornell University
Ken BirmanCornell University
Robbert van Renesse
Cornell University
Joint work with:Joint work with:
The Distributed Slicing The Distributed Slicing ProblemProblem
The Distributed Slicing The Distributed Slicing ProblemProblem
nn nodes, each has an attribute nodes, each has an attribute value value xxii
nn nodes, each has an attribute nodes, each has an attribute value value xxii
1 4 5 7 50 80 83 95 98
The Distributed Slicing The Distributed Slicing ProblemProblem
The Distributed Slicing The Distributed Slicing ProblemProblem
nn nodes, each has an attribute nodes, each has an attribute value value xxii
Divide the sorted list of Divide the sorted list of xxii’s into ’s into kk slices slices
nn nodes, each has an attribute nodes, each has an attribute value value xxii
Divide the sorted list of Divide the sorted list of xxii’s into ’s into kk slices slices
1 4 5 7 50 80 83 95 98
The Distributed Slicing The Distributed Slicing ProblemProblem
The Distributed Slicing The Distributed Slicing ProblemProblem
nn nodes, each has an attribute nodes, each has an attribute value value xxii
Divide the sorted list of Divide the sorted list of xxii’s into ’s into kk slices slices
Each node Each node ii wants to wants to independently know to which of the independently know to which of the kk slices slices xxii belongs belongs
nn nodes, each has an attribute nodes, each has an attribute value value xxii
Divide the sorted list of Divide the sorted list of xxii’s into ’s into kk slices slices
Each node Each node ii wants to wants to independently know to which of the independently know to which of the kk slices slices xxii belongs belongs
1 4 5 7 50 80 83 95 98
The Distributed Slicing The Distributed Slicing ProblemProblem
The Distributed Slicing The Distributed Slicing ProblemProblem
nn nodes, each has an attribute nodes, each has an attribute value value xxii
Divide the sorted list of Divide the sorted list of xxii’s into ’s into kk slices slices
Each node Each node ii wants to wants to independently know to which of the independently know to which of the kk slices slices xxii belongs belongs
nn nodes, each has an attribute nodes, each has an attribute value value xxii
Divide the sorted list of Divide the sorted list of xxii’s into ’s into kk slices slices
Each node Each node ii wants to wants to independently know to which of the independently know to which of the kk slices slices xxii belongs belongs
1 4 5 7 50 80 83 95 98
I’m in slice 2!I’m in slice 2!
The Distributed Slicing ProblemThe Distributed Slicing ProblemThe Distributed Slicing ProblemThe Distributed Slicing Problem
Large network with high rate of churn
Large network with high rate of churn
The Distributed Slicing ProblemThe Distributed Slicing ProblemThe Distributed Slicing ProblemThe Distributed Slicing Problem
Large network with high rate of churn
Example: Choosing super-peers in the
network
Large network with high rate of churn
Example: Choosing super-peers in the
network
Sliver: Distributed slicing Sliver: Distributed slicing algorithmalgorithm
Sliver: Distributed slicing Sliver: Distributed slicing algorithmalgorithm
Each node i gossips xi (and other known values) to c random nodes
Each node i gossips xi (and other known values) to c random nodes
Sliver: Distributed slicing Sliver: Distributed slicing algorithmalgorithm
Sliver: Distributed slicing Sliver: Distributed slicing algorithmalgorithm
Each node i gossips xi (and other known values) to c random nodes
Node j keeps track of data it receives Value, sender, expiration time Suppose Bj values out of m are below xj
Each node i gossips xi (and other known values) to c random nodes
Node j keeps track of data it receives Value, sender, expiration time Suppose Bj values out of m are below xj
Sliver: Distributed slicing Sliver: Distributed slicing algorithmalgorithm
Sliver: Distributed slicing Sliver: Distributed slicing algorithmalgorithm
Each node i gossips xi (and other known values) to c random nodes
Node j keeps track of data it receives Value, sender, expiration time Suppose Bj values out of m are below xj
Node j estimates its slice as
Each node i gossips xi (and other known values) to c random nodes
Node j keeps track of data it receives Value, sender, expiration time Suppose Bj values out of m are below xj
Node j estimates its slice as
ResultsResultsResultsResults All nodes know their slice within 1 w.h.p.
after rounds in
expectation
All nodes know their slice within 1 w.h.p. after
rounds in expectation
ResultsResultsResultsResults All nodes know their slice within 1 w.h.p.
after rounds in
expectation
Experiments on Emulab and simulations on Skype traces indicate rapid convergence and churn-tolerance
Conclusion: Sliver is simple and robust with fast convergence properties.
All nodes know their slice within 1 w.h.p. after
rounds in expectation
Experiments on Emulab and simulations on Skype traces indicate rapid convergence and churn-tolerance
Conclusion: Sliver is simple and robust with fast convergence properties.