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.

242 T. D. CHANDRAAND S. TOUEGLEMMA 6.1.6 (UNIFORMAGREEMENT), No two processes decide diflerentfy.PROOF. From Lemma 6.1.5, all processes that reach Phase 3 have the samevector V. Thus, all processes that decide, decide the same value. ❑LEMMA 6.1.7. For all p E IIz, J$[c] = v= at the end of Phase 2.PROOF. From the algorithm, V=[c] = v= at the end of Phase 1. From Lemma6.1.4, <strong>for</strong> all q E II ~, Vq[c] = u= at the end of Phase 1. Thus, no process sendsV with ~c] = 1 in Phase 2. From the algorithm, it is clear that <strong>for</strong> all p E IIz,VP[C] = v= at the end of Phase 2. •lTHEOREM 6,1.8. The algorithm in Figure 5 solves Consensus using Y’ in asynchronoussystems.PROOF. From the algorithm in Figure 5, it is clear that no process decidesmore than once, and this satisfies the uni<strong>for</strong>m integrity requirement of Consensus.By Lemma 6.1.6, the (uni<strong>for</strong>m) agreement property of Consensus holds.From Lemma 6.1.2, every correct process eventually reaches Phase 3. FromLemma 6.1.7, the vector VP of every correct process has at least one non-lcomponent in Phase 3 (namely, VP[C] = v=). From the algorithm, every processp that reaches Phase 3 decides on the first non-l component of VP. Thus, everycorrect process decides some non- L value in Phase 3—and this satisfies terminationof Consensus. From Lemma 6.1.1, this non-1 decision value is the proposedvalue of some process. Thus, uni<strong>for</strong>m validity of Consensus is also satisfied. ❑By Theorems3.4 and 6.1.8, we have:COROLLARY6.1.9. Consensus is solvable using W in aqnchronous systems.6.2. SOLVINGCONSENSUSUSINGW’. In the previous section, we showed howto solve Consensus using 9, a class of failure detectors that satisfy weak accuracy:at least one correct process is never suspected. That solution tolerates anynumber of process failures. If we assume that the maximum number of faultyprocesses is less than half then we can solve Consensus using 09, a class offailure detectors that satisfy only eventual weak accuracy. With such failuredetectors, all processes may be erroneously added to the lists of suspects at onetime or another. However, there is a correct process and a time after which thatprocess is not suspected to have crashed. (Note that at any given time t,processes cannot determine whether any specific process is correct, or whethersome correct process will never be suspected after time f.)Let ~ denote the maximum number of processes that may crash.ls Considerasynchronous systems with ~ < [n/21, that is, where at least [(n + 1)/27 processesare correct. In such systems, the algorithm in Figure 6 solves Consensus using anyEventual Strong failure detector $3 E 0$3’.In other words, it works with any failuredetector 9 that satisfies strong completeness and eventual weak accuracy.This algorithm uses the rotating coordinator paradigm,lb and it proceeds inasynchronous “rounds”. We assume that all processes have a priori knowledge*5In the literature, t is often used instead of ~, the notation adopted here. In this paper, we reserve tto denote real-time.16See <strong>for</strong> example,Reischuk [1982], Chang and Maxemchuk [1984], Dwork et al. [1988], Berman etal. [19’89],and Chandra and Toueg [1990].

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

Saved successfully!

Ooh no, something went wrong!