280 likes | 383 Vues
This paper presents an asynchronous self-stabilizing algorithm for constructing a spanning tree in a dynamic, decentralized network. The algorithm ensures that nodes reach and maintain a legal global state from any arbitrary initial state. It utilizes ideas from previous works and periodically exchanges message base and image variables, achieving stabilization in O(D) time. The algorithm uses Bellman-Ford's distance estimation to minimize the IDs seen so far, with versions of the algorithm running logarithmically. The paper also addresses stabilization and tree structure stability issues, introducing solutions to ensure proper communication discipline and local resets. Additionally, it outlines key algorithm properties related to tree and sprig constructions in the network.
E N D
Time Optimal AsynchronousSelf-Stabilizing Spanning Tree Janna Burman and Shay Kutten Technion
Talk Overview • Model and Definitions • Contribution • The algorithm • Ideas adopted from [AKMPV-93] • Revising the algorithm
Node Fine-GrainedAsynchronousMessage Passing Modelrepresented by Graph = (V,E); |V| = n Arbitrary delivery time a c FIFO b Unique ID Bounded bandwidth BB = 1 packet (for simplicity) Time1only for time analysis Time=0 • Dynamic • Uniform • Decentralized
Definitions • Self-stabilizing algorithm • starting from arbitrary state, it reaches (and remains in) a legal global state (if there are no additional faults for “long enough”):Predicate(statea , stateb , statec …) • Stabilization time • maximum # of time units until the stabilization • Bound D • a known upper bound on the diameter of the network (used to bound the memory space;the time complexity of the alg. does not depend on D) • depth(v)- Maximum shortest path from v (“radius(v)”) • vmin - minimum ID node
Talk Overview • Model and Definitions • Contribution • The algorithm • Ideas adopted from [AKMPV-93] • Revising the algorithm
Contribution[this paper] Previous results [AKMPV-93] For the long list of the related work, please, refer the paper.
Talk Overview • Model and Definitions • Contribution • The algorithm • Ideas adopted from [AKMPV-93] • Revising the algorithm
Periodically exchanging message Base and Image Variables Previous work does not require this granularity varv varu[v] v u varv[u] varu
Talk Overview • Model and Definitions • Contribution • The algorithm • Ideas adopted from [AKMPV-93] • Revising the algorithm
The algorithm usesBellman-Ford’s algorithm distance estimate to r minimal ID seen so far Stabilization in O(D) r, d neighbor Bellman-Fordwithbound D[Arora, Gouda] at v u r minu{ ID, r[u] }: d[u]<D 1+minu{ d[u]: r = r[u]} , if r ID 0 , if r = ID d v
1+min{di[u]: ri = ri[u]}, if ri ID 0 , if ri= ID di The algorithm runs logD+1versionsof Bellman-Ford’s algorithm node v refuses to assign todi a value larger than 2i r0, d0 r1, d1 logD+1 r2, d2 neighbor u Bellman-Ford version i ri, di rimin { ID,ri[u] }: di[u]<2i v rlogD, dlogD
Higher version 2i depth(vmin) Lower version 2i < depth(vmin) Version i stabilization vmin vmin in O(2i) time in (n) time
A lower version detects:tree does not yet span all nodes up_coverroot2 =0 up_cover bits up_coverroot1 = 0 0 0 0 Not one stab. tree 1 0 0 1 0 0 1 0 0 1 down_coverroot1 =0 down_coverroot2 =0 down_cover bits
Algorithm Output=minihigher (2i depth(vmin))version Higher versions 1 2i = D 1 2i> O(diam) 1 tree edges of min{ i }version such that down_coveri=1 v 1 2i~ O(diam) 1 output 1 2i< O(diam) 0 2i = 8 0 2i = 4 0 2i = 2 0 Stabilization in O(diameter) Lowerversions 2i = 0 0 down_coveri
Talk Overview • Model and Definitions • Contribution • The algorithm • Ideas adopted from [AKMPV-93] • Revising the algorithm
Definitions: In lower versionsfv exists for each node v Legal branchof v via u Shortest path (from u to v) with minimal ID parents foreign tov a v fv w u rfvv z Root var. Legal branchof v via fv
more Definitions: SPRIGs - exist in lower versions till (n) rv=x sprigs of v rv=v v r=v r=v r=v r=y r=v r=v Problem:Tree structure and up_cover values in sprigs are unstable this can destabilize up_cover bits of adjacent trees and sprigs r=v r=v r=v r=v
We want the lower versionsdown_cover bits to stabilize to 0 in O(diameter)(to disqualify them)
Assume: • Lower version • Non-stabilized Tree X • The time is after the claimed stabilization time. Intuition: Why previous solution is too coarse grained Tree X sprig of v 0 down_coverv= 1 up_coverv=0 up_coverv=1 up_coverv=1 r v 1 dw = 3 down_coverbits instability u r=v w r=v v w1 r=v fv 1due to sprig 0 Root of X 1 1 Legal branch of v via fv Parent pointers in X
“Non-Stabilization Detector” down_coverv= 0 sprig of v up_coverv=0 u detects wunstable–the path from w to vis shorter through u(or u<w1) dw = 3 r v r=v u w r=v w1 r=v v fv Root of X 0 Legal branch of v via fv Parent pointers in X
Other problems fixed with: • Strict communication discipline • Strict communication discipline • Before a node v may change any of its base variables, all its neighbors “know ” the value of v’s base variables change “know ” • Local reset r[v] = x d[v] = y … rv = x dv = y … rv = z dv = w … v v r[v] = x d[v] = y … r[v] = x d[v] = y …
Other problems fixed with: • Local resetarmed with the discipline ensures • Whenever a node v changes its tree variables, no neighbor u considers v as its parent(so u does not mislead v’s up_cover) v u u u1 u1
Important algorithm properties • each time a node joins a tree or a sprig, it joins without any offspring • each node w that joins a tree rooted at v on a “legal branch of v via fv”, joins with up_cover = 0 Legal branch of v via fv Not one stab. tree up_coverw=0 fv v w
Lower versions: down_cover = 0 stabilization on TREE s (a) TREE Legal branch of v via fv 0 foreign to v fv v w r v 0 0 up_coverw =0 in O(2i)time Not one stab. tree down_cover = 0 in O(2i)time
Old sprigs (and those split from old ones) Newly created sprigs Lower versions: down_cover = 0 stabilization on SPRIGs (b) Let us consider the time after the stabilization at trees v For each node:eitherdd+1at least each 2 time step, or it leaves the sprig r=v 0 r=vd 0 1 rv=u rv=v r=v r=v d 0 0 r=v 0 r=v d 1 r=v d r=v r=v 0 dd[parent]+1 0 down_cover=0 Disappear in at most 2*2i +1 time
Time Complexity Summary Lower version 2i < depth(vmin) • Trees: inO(2i) time, down_cover=0 • Sprigs: +(2*2i+1) time, down_cover=0 Higher version 2i depth(vmin) • InO(2i), down_cover=1 • And inO(diameter)in version with the minimum i O(diameter) stabilization time