Top Banner
A Distributed Polylogarithmic Time Algorithm for Self- Stabilizing Skip Graphs Stefan Schmid & Christian Scheideler Dept. of Computer Science University of Paderborn Riko Jacob & Hanjo Täubig Dept. of Computer Science Technische Universität München Andrea Richa Dept. of Computer Science Arizona State University
37

A Distributed Polylogarithmic Time Algorithm for Self-Stabilizing Skip Graphs

Feb 24, 2016

Download

Documents

Rafael Chupan

A Distributed Polylogarithmic Time Algorithm for Self-Stabilizing Skip Graphs. Andrea Richa Dept. of Computer Science Arizona State University. Stefan Schmid & Christian Scheideler Dept. of Computer Science University of Paderborn. Riko Jacob & Hanjo Täubig Dept. of Computer Science - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: A Distributed  Polylogarithmic  Time Algorithm for Self-Stabilizing Skip Graphs

A Distributed Polylogarithmic Time Algorithm for Self-Stabilizing Skip Graphs

Stefan Schmid & Christian ScheidelerDept. of Computer Science

University of Paderborn

Riko Jacob & Hanjo TäubigDept. of Computer Science

Technische Universität München

Andrea RichaDept. of Computer Science

Arizona State University

Page 2: A Distributed  Polylogarithmic  Time Algorithm for Self-Stabilizing Skip Graphs

Overlay Network

Internet

Page 3: A Distributed  Polylogarithmic  Time Algorithm for Self-Stabilizing Skip Graphs

Overlay Network

Basic question: how to organize sites in a scalable and robust overlay network???

Problem: high join/leave activity!

Page 4: A Distributed  Polylogarithmic  Time Algorithm for Self-Stabilizing Skip Graphs

Overlay Network

Scalability: Every operation needs at most (poly-)logarithmic time and work

Page 5: A Distributed  Polylogarithmic  Time Algorithm for Self-Stabilizing Skip Graphs

Overlay Network

Robustness: can recover from any attack ( self-stabilizing overlay network)

Page 6: A Distributed  Polylogarithmic  Time Algorithm for Self-Stabilizing Skip Graphs

Overview• Basic notation• Prior work• Self-stabilizing skip graph• Conclusion

Page 7: A Distributed  Polylogarithmic  Time Algorithm for Self-Stabilizing Skip Graphs

Basic Notation

Overlay network: directed graph G=(V,E):• V: set of nodes• E {(v,w) | v,wV}: set of edges

A

DB C

v knows w

Page 8: A Distributed  Polylogarithmic  Time Algorithm for Self-Stabilizing Skip Graphs

Basic Notation

State of a node v:• Local variables• Neighborhood N(v)• Set of actions/rules of the form

<label>: <guard> <commands>

• The set of actions is the same for every node and is supposed to be immutable.

Page 9: A Distributed  Polylogarithmic  Time Algorithm for Self-Stabilizing Skip Graphs

Basic Notation

• The nodes may only know the local state of their direct neighbors.

• Only the following overlay commands:– u.insert(v,w): u asks neighbor v to establish

edge to neighbor w

uv

wu

v

w

Page 10: A Distributed  Polylogarithmic  Time Algorithm for Self-Stabilizing Skip Graphs

Basic Notation

• The nodes may only know the local state of their direct neighbors.

• Only the following overlay commands:– u.move(v,w): u asks neighbor v to establish

edge to neighbor w and removes (u,w)

– no delete operation!

uv

wu

v

w

Page 11: A Distributed  Polylogarithmic  Time Algorithm for Self-Stabilizing Skip Graphs

Basic Notation

• The nodes may only know the local state of their direct neighbors.

• Only the following overlay commands:– u.move(v,w): u asks neighbor v to establish

edge to neighbor w and removes (u,w)

– sufficient to merge parallel edges

uv

wu

v

w

Page 12: A Distributed  Polylogarithmic  Time Algorithm for Self-Stabilizing Skip Graphs

Basic Notation

Self-stabilizing overlay network:A network that can get back to a desired topology from any initial state in which the network is still weakly connected.

Page 13: A Distributed  Polylogarithmic  Time Algorithm for Self-Stabilizing Skip Graphs

Basic Notation

During the self-stabilization process:• Node set is fixed, all nodes reliable• Messages arrive within a time unit• No message loss

Page 14: A Distributed  Polylogarithmic  Time Algorithm for Self-Stabilizing Skip Graphs

Basic Notation

During the self-stabilization process:• Time proceeds in synchronous rounds.• All actions that are enabled in a round (i.e.

their guard is true) are executed.• All local and overlay commands are

correctly executed within the given round.

Simplifies analysis!

Page 15: A Distributed  Polylogarithmic  Time Algorithm for Self-Stabilizing Skip Graphs

Basic Requirements

• Scalability:Only O(polylog(n)) many enabled actions per join or leave operation to get back to legal topology

• Robustness:Self-stabilization from any weakly connec-ted state

Page 16: A Distributed  Polylogarithmic  Time Algorithm for Self-Stabilizing Skip Graphs

Our Requirements

• Scalability:Only O(polylog(n)) many enabled actions per join or leave operation to get back to legal topology

• Robustness:Quick self-stabilization from any weakly connected state

Page 17: A Distributed  Polylogarithmic  Time Algorithm for Self-Stabilizing Skip Graphs

Overview• Basic notation• Prior work• Self-stabilizing skip graph• Conclusion

Page 18: A Distributed  Polylogarithmic  Time Algorithm for Self-Stabilizing Skip Graphs

Prior Work• Self-stabilization goes back to Dijkstra´s seminal

work in 1974• Self-stabilizing algorithms known for leader

election, various communication protocols, graph theory problems, termination detection, clock synchronization, etc.

• Underlying network is usually assumed to be static (if not, then changes are not under control of algorithm but happen in a random or adversarial manner)

Page 19: A Distributed  Polylogarithmic  Time Algorithm for Self-Stabilizing Skip Graphs

Prior Work• Static networks allow efficient cross-checking of

distributed computation

• Development of various techniques that convert conventional algorithms into self-stabilizing algorithms(Awerbuch, Dolev, Herman, Kutten, Patt-Shamir, Varghese,…)

uv

wSt+1(u) = f(St(u),St(v),St(w))

Page 20: A Distributed  Polylogarithmic  Time Algorithm for Self-Stabilizing Skip Graphs

Prior Work

These general techniques do not work (well) for self-stabilizing overlay networks.

uv

Time t Time t+1

u

w

w´´

St+1(u) = f(St(u),St(v),St(v´))

Two options:• find old neighbors• reset

Page 21: A Distributed  Polylogarithmic  Time Algorithm for Self-Stabilizing Skip Graphs

Prior WorkSuprisingly little known for self-stabilizingoverlay networks• Chord network [Stoica et al.]: recovery from certain degenerate

states.Problem: Chord not locally checkable

• Skip graphs [Aspnes & Shah]: recovery from certain degenerate states.Problem: skip graphs not locally checkable as well

• Self-stabilizing line/cycle/hypertree:- Angluin, Aspnes, … 2005- Cramer & Fuhrmann 2005- Shaker & Reeves 2005- Dolev & Kat 2007

Page 22: A Distributed  Polylogarithmic  Time Algorithm for Self-Stabilizing Skip Graphs

Overview• Basic notation• Prior work• Self-stabilizing skip graph• Conclusion

Page 23: A Distributed  Polylogarithmic  Time Algorithm for Self-Stabilizing Skip Graphs

Self-Stabilizing Skip Graph• Each node v has arbitrary unique name

v.id and random bit string v.rs• v.id and v.rs are assumed to be immutable• prei(v): first i bits of v.rs

Skip graph rule:For every node v and iIN0:• v connects to closest successor and

predecessor w (w.r.t. v.id ) with prei(w) = prei(v)

Page 24: A Distributed  Polylogarithmic  Time Algorithm for Self-Stabilizing Skip Graphs

Self-Stabilizing Skip Graph

Nodes v with v.rs=0…

Nodes v with v.rs=1…

Page 25: A Distributed  Polylogarithmic  Time Algorithm for Self-Stabilizing Skip Graphs

Self-Stabilizing Skip Graph

Hierarchical view:

0 1

00 01 10 11

000 001

(log n) degree, (log n) diameter, (1) expansion w.h.p.

Page 26: A Distributed  Polylogarithmic  Time Algorithm for Self-Stabilizing Skip Graphs

Self-Stabilizing Skip GraphProblem: original skip graph does not allow local checking of correct

topology

10..00.. 01.. 11..11..11..10.. 00..

wv

01.. 10..

Page 27: A Distributed  Polylogarithmic  Time Algorithm for Self-Stabilizing Skip Graphs

Self-Stabilizing Skip GraphProblem: original skip graph does not allow local checking of

correct topology

Solution: extend connectionsFor each node v let• succi(v,b), b{0,1}: closest successor of v with prefix

prei(v)b• predi(v,b), b{0,1}: closest predecessor of v with prefix prei(v)b• rangei(v)=[minb predi(v,b), maxb succi(v,b)]v connects to all nodes wrangei(v)with prei(w) = prei(v)

Result: SKIP+

Skip graph: rangei(v)=[predi(v),succi(v)]

Page 28: A Distributed  Polylogarithmic  Time Algorithm for Self-Stabilizing Skip Graphs

Self-Stabilizing Skip Graph

(log n) degree, (log n) diameter, (1) expansion w.h.p.

Page 29: A Distributed  Polylogarithmic  Time Algorithm for Self-Stabilizing Skip Graphs

Self-Stabilizing Skip Graph

• edge (u,v) stable: SKIP+ edge from viewpoint of u

• otherwise, (u,v) is temporary• flag F(v): indicator in u whether (u,v) stable

Rule 1a: create reverse edges

u v

stable

u v

Page 30: A Distributed  Polylogarithmic  Time Algorithm for Self-Stabilizing Skip Graphs

Self-Stabilizing Skip Graph

Rule 1b/c: introduce stable edges

Rule 2: forward temporary edges

u v

ww.id rangei(v)

u v

wb c

u v

w (longer prefix match)

temp

stable

u v

w

Page 31: A Distributed  Polylogarithmic  Time Algorithm for Self-Stabilizing Skip Graphs

Self-Stabilizing Skip Graph

Rule 3a: introduce allu changes set of stable neighbors: initiates insert(v,w) for all neighbors v,w of u

Rule 3b: linearize

u

v1 v2 v3 vk

stable

u

v1 v2 v3 vk

stable

stable

Page 32: A Distributed  Polylogarithmic  Time Algorithm for Self-Stabilizing Skip Graphs

Self-Stabilizing Skip Graph

Each node u follows six rules:• Rule 1a: create reverse edges to u• Rules 1b and 1c: introduce stable edges

between neighbors of u• Rule 2: forward temporary edges• Rule 3a: introduce all when stable

neighborhood changes• Rule 3b: linearize stable neighborhood

Page 33: A Distributed  Polylogarithmic  Time Algorithm for Self-Stabilizing Skip Graphs

Self-Stabilizing Skip Graph

Theorem 1: For any weakly connected graph, the rules establish SKIP+ in O(log2 n) rounds w.h.p.

Theorem 2: Any join or leave operation in a perfect SKIP+ requires at most O(log4 n) work.

Page 34: A Distributed  Polylogarithmic  Time Algorithm for Self-Stabilizing Skip Graphs

Self-Stabilizing Skip Graph

Proof of Theorem 1:• Bottom-up phase: connected components

are formed for every prefix

0 1

00 01 10 11

000 001

Page 35: A Distributed  Polylogarithmic  Time Algorithm for Self-Stabilizing Skip Graphs

Self-Stabilizing Skip Graph

Proof of Theorem 1:• Top-down phase: components sorted

Page 36: A Distributed  Polylogarithmic  Time Algorithm for Self-Stabilizing Skip Graphs

Conclusions

Many interesting fronts to work on in contextof self-stabilizing overlay networks:• Show O(log n) runtime bound• bound/restrict number of enabled actions

to polylog at each node per round• self-stabilizing networks under adversarial

behavior• self-preserving networks• self-optimizing networks

Page 37: A Distributed  Polylogarithmic  Time Algorithm for Self-Stabilizing Skip Graphs

Questions?