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 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 m+
1st enhancement: N -- 2N m+
2nd Enhancement (Multiple initiators) n D&S alg has a fixed initiator: N n A vector [q1,q2,…,qN] maintains the sum, q, w.r.t. multiple initiators. n N -- 2N time to detect termination
[0,0,0,0,0] [q1,0,0,0,0] [B,0,B,B,B] [B,q2,0,B,B] [B,q2,q3,0,B] [B,q2,q3,q4,0] [0,q2,q3,q4,q5] 1
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 [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 (cont) n X= ( ( j:: idle.j) (#mesg_sent - #mesg_rcvd =0) ) n W= ( j:: (idle.j) (color.j.j=white) (c.j+q.j=0) (tok_color.j=white) ) n I= ( ( j::c.j) = #mesg_sent - #mesg_rcvd (I 1 ) ( i:: Q.i R.i S.i T.i) ) n Q.i= ( ( j:j VSTD.i: idle.j) q.i= ( j:j VSTD.i:c.j) ) n R.i= ( q.i+( j:j VSTD.i:c.j) > 0 ) n S.i= ( j: j VSTD.i : color.j.i=black ) n T.i= (tok_color.i=black )
Proof: (I W) X n Token is at j n W (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 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 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: –k<j : color.k.j = black before token visits k leads-to color.k.j = white color.k.j cannot be blackened by 1 i k, since enum.i=enum.k color.k.j cannot be blackened by k i. –k=j : color.j.j=white –k>j : 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.