12.07.2015 Views

Unreliable Failure Detectors for Reliable Distributed Systems

Unreliable Failure Detectors for Reliable Distributed Systems

Unreliable Failure Detectors for Reliable Distributed Systems

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!