# Stefan Schmid & Christian Scheideler Dept. of Computer Science

## Presentation on theme: "Stefan Schmid & Christian Scheideler Dept. of Computer Science"— Presentation transcript:

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: set of nodes E  {(v,w) | v,wV}: set of edges v knows w D B C A

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 v u u w 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) no delete operation! v v u u w 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) sufficient to merge parallel edges v v u u w 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 connec-ted 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 Development of various techniques that convert conventional algorithms into self-stabilizing algorithms (Awerbuch, Dolev, Herman, Kutten, Patt-Shamir, Varghese,…) v u St+1(u) = f(St(u),St(v),St(w)) w

Prior Work Two options:
find old neighbors reset These general techniques do not work (well) for self-stabilizing overlay networks. Time t Time t+1 v w u u w´´ St+1(u) = f(St(u),St(v),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, … Cramer & Fuhrmann Shaker & Reeves 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IN0: 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 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 w v 01.. 10.. 11.. 00.. 11.. 10.. 01.. 11.. 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 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 wrangei(v)with prei(w) = prei(v) Result: SKIP+ Skip graph: rangei(v)=[predi(v),succi(v)]

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 1a: create reverse edges u v u v stable

Self-Stabilizing Skip Graph
Rule 1b/c: introduce stable edges Rule 2: forward temporary edges v v u u b c w w w.id  rangei(v) v v u u temp stable w (longer prefix match) w

Self-Stabilizing Skip Graph
Rule 3a: introduce all u changes set of stable neighbors: initiates insert(v,w) for all neighbors v,w of u Rule 3b: linearize v1 v2 v3 vk v1 v2 v3 vk stable stable stable u u

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

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.

Self-Stabilizing Skip Graph
Proof of Theorem 1: Bottom-up phase: connected components are formed for every prefix 000 001 00 01 10 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?