Upload
aliyah-wager
View
217
Download
0
Tags:
Embed Size (px)
Citation preview
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
Overlay Network
Internet 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,wV}: set of edges
A
DB C
v knows wv knows w
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
uv
wu
v
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!
uv
wu
v
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
uv
wu
v
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,…)
uv
wSt+1(u) = f(St(u),St(v),St(w))
Prior Work
These general techniques do not work (well)
for self-stabilizing overlay networks.
uv
v´
Time t Time t+1
u
w
w´
w´´
St+1(u) = f(St(u),St(v),St(v´))
Two options:• find old neighbors• reset
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 iIN0:• 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:
0 1
00 01 10 11
000 001
(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
10..00.. 01.. 11..11..11..10.. 00..
wv
01.. 10..
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 wrangei(v)with prei(w) = prei(v)
Result: SKIP+
Skip graph: rangei(v)=[predi(v),succi(v)] 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
stable
u v
Self-Stabilizing Skip Graph
Rule 1b/c: introduce stable edges
Rule 2: forward temporary edges
u v
w
w.id rangei(v)
u v
w
b c
u v
w (longer prefix match)
temp
stable
u v
w
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
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
0 1
00 01 10 11
000 001
Self-Stabilizing Skip Graph
Proof of Theorem 1:• Top-down phase: components sorted
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
Questions?