A Distributed Polylogarithmic Time Algorithm for Self Stabilizing
A Distributed Polylogarithmic Time Algorithm for Self. Stabilizing Skip Graphs Stefan Schmid & Christian Scheideler Dept. of Computer Science University of Paderborn Andrea Richa Dept. of Computer Science Arizona State University Riko Jacob & Hanjo Täubig Dept. of Computer Science Technische Universität München
Overlay Network Internet
Overlay Network Basic question: how to organize sites in a scalable and robust overlay network? ? ? Problem: high join/leave activity!
Overlay Network Scalability: Every operation needs at most (poly-)logarithmic time and work
Overlay Network Robustness: can recover from any attack ( self-stabilizing overlay network)
Overview • • Basic notation Prior work Self-stabilizing skip graph Conclusion
Basic Notation Overlay network: directed graph G=(V, E): v knows w • V: set of nodes • E {(v, w) | v, w V}: set of edges B A C D
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.
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 v u w
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) v u w – no delete operation! v u w
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) v u w v u – sufficient to merge parallel edges w
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.
Basic Notation During the self-stabilization process: • Node set is fixed, all nodes reliable • Messages arrive within a time unit • No message loss
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!
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 connected state
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
Overview • • Basic notation Prior work Self-stabilizing skip graph Conclusion
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)
Prior Work • Static networks allow efficient cross-checking of distributed computation v St+1(u) = f(St(u), St(v), St(w)) u w • Development of various techniques that convert conventional algorithms into selfstabilizing algorithms (Awerbuch, Dolev, Herman, Kutten, Patt. Shamir, Varghese, …)
Prior Work Two options: These general techniques not work (well) • find olddo neighbors for self-stabilizing overlay • reset networks. Time t+1 w v u v´ u w´ w´´ St+1(u) = f(St(u), St(v´))
Prior Work Suprisingly little known for self-stabilizing overlay 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
Overview • • Basic notation Prior work Self-stabilizing skip graph Conclusion
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 i IN 0: • v connects to closest successor and predecessor w (w. r. t. v. id ) with prei(w) = prei(v)
Self-Stabilizing Skip Graph Nodes v with v. rs=0… Nodes v with v. rs=1…
Self-Stabilizing Skip Graph Hierarchical view: 000 001 00 01 10 0 11 1 (log n) degree, (log n) diameter, (1) expansion w. h. p.
Self-Stabilizing Skip Graph Problem: original skip graph does not allow local checking of correct topology v w 01. . 10. . 11. . 00. . 11. . 10. . 01. . 10. . 00. .
Self-Stabilizing Skip Graph Problem: original skip graph does not allow local checking of correct topology Solution: extend connections For each node v let • succi(v, b), b {0, 1}: closest successor of v with prefix prei(v) b Skipb {0, 1}: graph: closest rangei(v)=[pred • predi(v, b), predecessor of v with prefix i(v), succ i(v)] prei(v) b • rangei(v)=[minb predi(v, b), maxb succi(v, b)] v connects to all nodes w rangei(v)with prei(w) = prei(v) Result: SKIP+
Self-Stabilizing Skip Graph (log n) degree, (log n) diameter, (1) expansion w. h. p.
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 1 a: create reverse edges u v stable u v
Self-Stabilizing Skip Graph Rule 1 b/c: introduce stable edges v u u w w. id rangei(v) b v c w Rule 2: forward temporary edges u temp stable v w (longer prefix match) u v w
Self-Stabilizing Skip Graph Rule 3 a: introduce all u changes set of stable neighbors: initiates insert(v, w) for all neighbors v, w of u Rule 3 b: linearize v 1 v 2 v 3 … vk v 1 v 2 v 3 stable u u … vk
Self-Stabilizing Skip Graph Each node u follows six rules: • Rule 1 a: create reverse edges to u • Rules 1 b and 1 c: introduce stable edges between neighbors of u • Rule 2: forward temporary edges • Rule 3 a: introduce all when stable neighborhood changes • Rule 3 b: linearize stable neighborhood
Self-Stabilizing Skip Graph Theorem 1: For any weakly connected graph, the rules establish SKIP+ in O(log 2 n) rounds w. h. p. Theorem 2: Any join or leave operation in a perfect SKIP+ requires at most O(log 4 n) work.
Self-Stabilizing Skip Graph Proof of Theorem 1: • Bottom-up phase: connected components are formed for every prefix 000 001 00 01 10 0 11 1
Self-Stabilizing Skip Graph Proof of Theorem 1: • Top-down phase: components sorted
Conclusions Many interesting fronts to work on in context of 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
Questions?
- Slides: 37