# Optimal Termination Detection for Rings Murat Demirbas OSU.

## 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.

4 1 2 3 5

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+

1st enhancement: N -- 2N 0 1 1 1 4 2 3 5 0 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

4 2 3 5 [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 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 (cont) n X= ( (  j:: idle.j)  (#mesg_sent - #mesg_rcvd =0) ) n W= (  j:: (tok@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  (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: –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.

Similar presentations