Optimal Termination Detection for Rings Murat Demirbas OSU.

27
Optimal Termination Detection for Rings Murat Demirbas OSU

Transcript of Optimal Termination Detection for Rings Murat Demirbas OSU.

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.