Optimal Termination Detection for Rings Murat Demirbas OSU

advertisement
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.
Dijkstra & Safra alg (cont.)
1
N
2
3



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
c.1
color.1
1
q
color
c.2
color.2
2
N
3
c.3
color.3
c.N
color.N
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.
1
2
3
5
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
1
3
5
0
0
4
1st enhancement: N -- 2N
1
2
1
5
0
m+<1>
1
3
0
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
m1
[q1,q2,q3,q4]
3
4
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:jkN  1kl: 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
(i:: Q.i  R.i  S.i  T.i) )
(I1)
Q.i= ( (j:jVSTD.i: idle.j)  q.i= (j:jVSTD.i:c.j) )
R.i= ( q.i+(j:jVSTD.i:c.j) > 0 )
S.i= (j: jVSTD.i : color.j.i=black )
T.i= (tok_color.i=black )
Proof: (IW) 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: (IX) 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.
Download