Unreliable Failure Detectors for Reliable Distributed Systems
Unreliable Failure Detectors for Reliable Distributed Systems
Unreliable Failure Detectors for Reliable Distributed Systems
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
<strong>Unreliable</strong> <strong>Failure</strong> <strong>Detectors</strong> <strong>for</strong> <strong>Reliable</strong> <strong>Distributed</strong> <strong>Systems</strong> 241PROOF (SKETCH). The only way a correct processp can be prevented fromreaching Phase 3 is by blocking <strong>for</strong>ever at one of the two wait statements (inPhase 1 and 2, respectively). This can happen only if p is waiting <strong>for</strong>ever <strong>for</strong> amessage from a process q and q never joins $lP. There are two cases to consider:(1) q crashes. Since S2 satisfies strong completeness, there is a time after whichq E !3P.(2) q does not crash. In this case, we can show (by an easy but tedious inductionon the round number) that q eventually sends the message p is waiting <strong>for</strong>.In both cases p is not blocked <strong>for</strong>ever and reaches Phase 3. ❑Since ~ satisfies weak accuracy there is a correct process c that is neversuspected by any process, that is, Vt E 5, Vp E II – F(t) :c @ H@(p, t). LetII,denote the set of processes that complete all n – 1 rounds of Phase 1, and Ilzdenote the set of processes that complete Phase 2. We say VP s Vq if and only if<strong>for</strong> all k E ~, V,,[k] is either Vq[k] or 1-.LEMMA 6.1.3. In every round r, 1 s r 5 n – 1, all processes p E 111 receive(r, A{., c) from process c, that is, (r, Ac, c) is in msgsP[r].PROOF. Since p E 111,p completes all n – 1 rounds of Phase 1. At each round r,since c @ 9P, p waits <strong>for</strong>and receives the message (r, AC,c) from c. ❑LEMMA6.1.4. For all p G 111, VC = VP at the end of Phase 1.PROOF, Suppose <strong>for</strong> some process g, V=[q] # L at the end of Phase 1, FromLemma 6.1.1. VC[q] = I+. Consider any p E IIl. We must show that VP[q] = Vq atthe end of Phase 1. This is obvious if p = c, thus we consider the case where p # c.Let r be the first round in which c received Uq(if c = q, we define r to be O).From the algorithm, it is clear that A=[q] = Vqat the end of round r. There aretwo cases to consider:(l)rSn- 2. In round r + 1 s n – 1, c relays Vq by sending the message(r + 1, AC, c) with AC[q] = Uq to all. From Lemma 6.1.3, p receives(r + 1, A=, c) in round r + 1, From the algorithm, it is clear that p setsVP[q] to 7Jq by the end of round r + 1.(2) r = n – 1. In this case, c received Vq <strong>for</strong> the first time in round n – 1.Since each process relays Uq (in its vector A) at most once, it is easy to seethat ijq was relayed by all n – 1 processes in II – {c}, including p, be<strong>for</strong>ebeing received by c. Since p sets VP[q] = Uq be<strong>for</strong>e relaying Vq, it followsthat VP[q] = II,, at the end of Phase 1. ClLEMMA6.1.5. For all p E IIz, VC = VP al the end of Phase 2.PROOF. Consider any p c IIz and q E II. We have to show thatVP[q] = VC[q] at the end of Phase 2. There are two cases to consider:(1) V.[q] = Vq at the end of Phase 1. From Lemma 6.1.4, <strong>for</strong> all processesp‘ E II, (including p and c), VP, [q] = Uq at the end of Phase 1. Thus, <strong>for</strong> allthe vectors V sent in Phase 2, V[q] = Vq. Hence, both VP[q] and V,[q]remain equal to v~ throughout Phase 2.(2) Vr[q] = L at the end of Phase 1. Since c @ !3,, p waits <strong>for</strong> and receives V=in Phase 2. Since V=[q] = ~, p sets VP[q] t J at the end of Phase 2. ❑