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