Download - Optimal Termination Detection for Rings Murat Demirbas OSU.

Transcript

Optimal Termination Detection for Rings

Murat DemirbasOSU

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.

Dijkstra & Safra alg (cont.)

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

N

1

2

3

N

1

2

3

c.Ncolor.N

c.1color.1

c.2color.2

c.3color.3

qcolor

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 snapshot whereas the send is not.

4

1

2

3

5

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

0

1

1

1

4

1

2

3

5

0

m+<1>

1st enhancement: N -- 2N

0

1

1

1

4

2

3

5

0

m+<1>

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

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

2

3

4

[q1,q2,q3,q4]

m2

m1

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 then color.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.