Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 © P. Kouznetsov On the weakest failure detector for non-blocking atomic commit Rachid Guerraoui Petr Kouznetsov Distributed Programming Laboratory Swiss.

Similar presentations


Presentation on theme: "1 © P. Kouznetsov On the weakest failure detector for non-blocking atomic commit Rachid Guerraoui Petr Kouznetsov Distributed Programming Laboratory Swiss."— Presentation transcript:

1 1 © P. Kouznetsov On the weakest failure detector for non-blocking atomic commit Rachid Guerraoui Petr Kouznetsov Distributed Programming Laboratory Swiss Institute of Technology in Lausanne (EPFL)

2 2 Contribution r We consider the Non-Blocking Atomic Commit (NBAC) problem [Skeen81] in an asynchronous system with failure detectors [FLP85, CT96] r We define the weakest (timeless) failure detector to solve NBAC

3 3 Roadmap 1.Background 2.Non-blocking atomic commit (NBAC) 3.Conjecture: ?P+  is the weakest for NBAC 4.A reduced problem: weakest timeless failure detector to solve NBAC 5.Open issues

4 4 Model: processes and failures Asynchronous message-passing system with crash failures r No time bounds on message communication or process relative speeds r Communication by message-passing through reliable channels r Processes can fail by crashing Correct processes never crash A majority of processes is correct Agreement problems are not solvable in an asynchronous model if at least one process can crash [FLP85]

5 5 Model: failure detectors [CT96] Synchrony assumptions are encapsulated in the failure detectors: r Each process has a failure detector module that gives hints (maybe wrong) on the state of other processes. r The information provided by failure detectors does not depend on anything but failures. Example: Perfect failure detector P: eventually, every correct process detects a crash, and no crash is detected before it occurs.

6 6 Weakest failure detector [CHT96] A failure detector D is the weakest to solve problem M iff it is: r Sufficient: D solves M (there is an algorithm that solves M using D) r Necessary: D is weaker than any failure detector D’ that solves M (there is an algorithm that implements D using D’)

7 7 Weakest failure detector for Consensus Processes propose values and decide on some final values so that: Agreement no two processes decide differently Termination every correct process eventually decides Validity: a decided value is a proposed value  : eventually, the same correct process is elected by correct processes [CHT96]. p1 p2 p3 [p1] [p2] [p3] [p1] [p2] [p1] ……

8 8 Roadmap 1.Background 2.Non-blocking atomic commit (NBAC) 3.Conjecture: ?P+  is the weakest for NBAC 4.A reduced problem: weakest timeless failure detector to solve NBAC 5.Open issues

9 9 Problem: NBAC Atomic transactions: processes vote yes or no and take decisions (commit or abort) so that: r Agreement: no two processes decide differently r Termination: every correct process eventually decides r Commit-Validity: abort cannot be decided if every process is correct and votes yes r Abort-Validity: commit cannot be decided if some process votes no

10 10 Problem: weakest FD for NBAC r P is sufficient to solve NBAC (3PC algorithm [Skeen81]). r Is P necessary to solve NBAC? [SM95,FRT99] r Failure detector that is necessary and sufficient to solve NBAC?

11 11 Anonymous failure detector ?P Process pi: r Initially output 0 r If (and only if) there is a failure, then, eventually, output forever 1 Necessary to solve NBAC: it can be emulated by any algorithm that solves NBAC. [Gue02]

12 12 Roadmap 1.Background 2.Non-blocking atomic commit (NBAC) 3.Conjecture: ?P+  is the weakest for NBAC 4.A reduced problem: weakest timeless failure detector to solve NBAC 5.Open issues

13 13 A candidate ?P+  r Good news: There is an algorithm that transforms Consensus into NBAC using ?P [Gue02]. ?P+  <P r Bad news: there exists a failure detector B that solves NBAC and B is incomparable with ?P+ , so ?P+  cannot be the weakest to solve NBAC

14 14 Stillborn failure detector B Process pi: r Initially output  r If there is a process crashed at time 0, then, eventually, output forever pi r Otherwise, eventually, output forever a set of suspected processes “behaves like” the perfect failure detector P

15 15 But B is rather strange B is strongly time-dependent : t=0 (1) p1 p2 [p1] (2) p1 p2 [p2] ? t=  We can generalize B for any time t  0 (B[t]) [][] [][]

16 16 A filter (timeless failure detectors) to get rid of time-based detectors like B r Timeless failure detectors A cannot imply any information about global time: a failure occurred at time t and a failure occurred at time t+d can be reported in the same way. r , P, ?P  A r B[t]  A

17 17 Roadmap 1.Background 2.Non-blocking atomic commit (NBAC) 3.Conjecture: ?P+  is the weakest for NBAC 4.A reduced problem: weakest timeless failure detector to solve NBAC 5.Open issues

18 18 A reduced problem r What is the weakest failure detector in A to solve NBAC? r Conjecture: ?P+  is the one r More precisely: any failure detector D  A that solves NBAC can emulate  (the proof is extending the technique of [CHT96] and is rather technically involved)

19 19 Extending [CHT96] r The idea: to achieve non-triviality of any execution of an NBAC algorithm N using a timeless failure detector r The technique: every process maintains an imaginary failure-free partial run assumed preceding the current real run r The result: simulating N over the constructed run, the correct processes eventually agree on a single correct process: 

20 20 Open Issues r Weakest failure detector for NBAC in general? r Optimality of A: can we make it bigger? r No majority? r Indulgent algorithms: is ?P+  the weakest to allow indulgent solution?

21 21 Questions?


Download ppt "1 © P. Kouznetsov On the weakest failure detector for non-blocking atomic commit Rachid Guerraoui Petr Kouznetsov Distributed Programming Laboratory Swiss."

Similar presentations


Ads by Google