Presentation on theme: "Optimal Termination Detection for Rings Murat Demirbas OSU."— Presentation transcript:
Optimal Termination Detection for Rings Murat Demirbas OSU
Termination Detection in D.S. n Message passing, Asynchronous execution n A process is either active or passive n Active processes: –send and receive messages, –can become passive spontaneously n Passive processes: –can only receive messages, –can become active only by receiving a message.
Termination detection problem n The system is terminated iff –all processes are passive –no messages in transit n The problem is to detect termination as and when the system terminated.
Related work n Chandy & Lamport snapshot alg. –O(N 2 ) time n Dijkstra & Safra token-based alg. –O(N) time, 2N -- 3N n Chandy alg. –2N integers per process, and message –2N 2 integers at the detector –Sivilotti improved the space complexity
Our algorithm n Based on Dijkstra&Safra alg. n Detection in 0 -- N time n each process maintains 1 int. + N bits n token stores N int. + N bits
Outline n Dijkstra & Safra alg n Optimal alg –Enhancement 1 –Enhancement 2 n Proof
Dijkstra & Safra algorithm n c.j = #mesgs sent - #mesgs received n The initiator obtains a snapshot –sends a token to the ring –gathers the sums of c.j’s n If the snapshot is consistent and no mesg in transit, termination is detected.
Dijkstra & Safra alg (cont.) n Snapshot is inconsistent if the receipt of m is recorded but send of m is not. n A process is blackened upon receiving a mesg n A black node blackens the token N 1 2 3
N 1 2 3 c.N color.N c.1 color.1 c.2 color.2 c.3 color.3 q color
An optimal algorithm for Termination Detection on Rings n First enhancement (Enumeration bits) n Second enhancement (Multiple initiators) n Optimal algorithm = 1st & 2nd enh. combined
1st enhancement (enumeration bits) n Dijkstra & Safra blackens every process that receives a message. n However, a message reception violates the snapshot iff the receive of the message is included in the snapshot whereas the send is not.
1st enhancement (enumeration bits) n The messages that violate the consistency are those sent by a process in the visited region to another process in the unvisited region. n A process sending a mesg piggybacks its enumeration bit + its process id. n j upon receiving “m” blackens itself iff: –enum.j enum.m –j > sender_id.m
An enumeration bit is sufficient... 0 1 1 1 4 1 2 3 5 0 m+
The Optimal Algorithm n 2nd enh. blackens j::q.j and requires 2N. n 0--N if we do not blacken any q at 2, and q2, q3 at 4. 1 2 3 4 [q1,q2,q3,q4] m2 m1
The Optimal Algorithm(cont.) n We merge 1st & 2nd enh. –enum.j, enum.m, sender_id.m (1st enh.) –[q1,q2,…,qN], tok_color.[1…N] (2nd enh.) –color.j.k n color.j.k: j’s color w.r.t. initiator k n propagate and retransmit actions are merged into one action
The Optimal Algorithm(cont.) n j receives m from l; –enum.j enum.m and j > sender_id.m –m violates the consistency of the snapshot k::j k N 1 k l – k:j k N 1 k l: color.j.k := black
Proof n W detects X: –W X –X leads-to W n Proof: –X: termination predicate –W: witness predicate –I: invariant –(I W) X –(I X) leads-to W
Proof: (I W) X n Token is at j n W (1)tok@j (2)idle.j (3)color.j.j=white (4)c.j+q.j=0 (5)tok_color.j=white n (1 3) S.j n (1 4) R.j n 5 T.j n (I S.j R.j T.j) Q.j n (1 2 Q.j 4 I 1 ) X
Proof: (I X) leads-toW in 0--N n (I X) ( j:: idle.j) ( j::c.j) = 0 n The only enabled action is Propagate Token n Let tok@j; then q.j=0, color.j.j=white, tok_color.j=white n Claim: ( k:: color.k.j = white) n Then; tok_color.j=white is stable. n When tok@j again, (c.j+q.j = ( j::c.j) = 0 ) n Therefore, within 1 cycle of token W is satisfied. n 0--N
Proof: ( k:: color.k.j = white) n Assume ( k:: color.k.j = black). 3 cases to consider: –kj : sender_id j then color.k.j is not blackened sender_id > j then color.k.j is not blackened, since enum.sender_id =enum.k
Conclusion n An optimal termination detection algorithm on rings 0--N
New Results T.D. in Trees & Chandy’s model: n 2h--3h detection in trees n h detection in trees n Efficient T.D. in Chandy’s model: –1--2 rounds to detect termination –requires just 1 integer + 1 bit in each process including DET. –Chandy: 2N integers in each process, 2N 2 integers in DET.