Sliver: A fast distributed slicing algorithm Ymir Vigfusson Cornell University Ymir Vigfusson...

Post on 26-Mar-2015

215 views 1 download

Tags:

transcript

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.