The weakest failure detectors to solve certain fundamental problems - - PowerPoint PPT Presentation

the weakest failure detectors to solve certain
SMART_READER_LITE
LIVE PREVIEW

The weakest failure detectors to solve certain fundamental problems - - PowerPoint PPT Presentation

The weakest failure detectors to solve certain fundamental problems in distributed computing Carole Delporte-Gallet Hugues Fauconnier Vassos Hadzilacos Rachid Guerraoui Petr Kouznetsov Sam Toueg Contribution The weakest failure detectors


slide-1
SLIDE 1

The weakest failure detectors to solve certain fundamental problems in distributed computing

Carole Delporte-Gallet Hugues Fauconnier Vassos Hadzilacos Rachid Guerraoui Petr Kouznetsov Sam Toueg

slide-2
SLIDE 2

2

Contribution

The weakest failure detectors for: The weakest failure detectors for:

Implementing an atomic register

Implementing an atomic register

Solving consensus

Solving consensus

Solving

Solving quittable quittable consensus (QC) consensus (QC)

Solving non-blocking atomic commit (NBAC)

Solving non-blocking atomic commit (NBAC)

in distributed message-passing systems, in distributed message-passing systems, for all environments ! for all environments !

slide-3
SLIDE 3

3

Some related work

Implementing registers with a majority of

Implementing registers with a majority of correct processes [ABD95] correct processes [ABD95]

The weakest failure detector for consensus

The weakest failure detector for consensus with a majority of correct processes [CHT96] with a majority of correct processes [CHT96]

Implementing

Implementing registers registers and nd solving solving consensus in other consensus in other environments nvironments [DFG02] DFG02]

NBAC with

NBAC with failure failure detectors etectors [FRT99,Gue02,GK02] [FRT99,Gue02,GK02]

slide-4
SLIDE 4

4

Roadmap

  • 1. Model: asynchronous system with failure

detectors

  • 2. Implementing a register
  • 3. Solving consensus
  • 4. Solving QC
  • 5. Solving NBAC
slide-5
SLIDE 5

5

Asynchronous message-passing system Asynchronous message-passing system

  • Communication by message-passing through

Communication by message-passing through reliable channels reliable channels

  • Processes can fail only by crashing

Processes can fail only by crashing Correct processes never crash Correct processes never crash

  • In such a system:

In such a system:

Register can be implemented if and only if a majority of processes are correct [ABD95] (Weak) consensus is not solvable if at least one process can crash [FLP85]

slide-6
SLIDE 6

6

Environments Environments

An environment E specifies An environment E specifies when when and and where where failures might occur failures might occur Examples: Examples:

Majority of processes are correct

Majority of processes are correct

At most one process crash

At most one process crash

slide-7
SLIDE 7

7

Failure detectors [CT96, CHT96] Failure detectors [CT96, CHT96]

Each process has a failure detector module that provides some (maybe incomplete and inaccurate) information about failures Failure signal failure detector FS: at each process, FS

  • utputs green

green or red red.

If red

red is output, then a failure previously occurred.

If a failure occurs, then eventually red

red is output at all correct processes.

slide-8
SLIDE 8

8

The weakest failure detector

D is the weakest failure detector to solve problem P in an environment E if and only if: D is sufficient for P in E: D can be used to solve P in E D is necessary for P in E: D can be extracted from any failure detector D’ that can be used to solve P in E

p

D’ D

q r

D’ D D D’

slide-9
SLIDE 9

9

Roadmap

  • 1. Model: asynchronous system with failure

detectors

  • 2. Implementing a register
  • 3. Solving consensus
  • 4. Solving QC
  • 5. Solving NBAC
slide-10
SLIDE 10

10

Problem: implementing a register

An atomic register is an object accessed

through reads and writes

The write(v) stores v at the register and

returns ok

The read returns the last value written at the

register

slide-11
SLIDE 11

11

Quorum Quorum failure detector failure detector Σ

At each process, Σ outputs a set of processes

Any two sets (output at any times and at any

processes) intersect.

Eventually every set contains only correct

processes.

slide-12
SLIDE 12

12

Σ is sufficient to implement registers is sufficient to implement registers

Adapt the “correct majority-based” algorithm

  • f [ABD95] to implement (1 reader, 1 writer)

atomic register using Σ: Substitute « process p waits until a majority of processes reply » with « process p waits until all processes in Σ reply »

slide-13
SLIDE 13

13

Σ is necessary to implement registers is necessary to implement registers

Let A be any implementation of registers that uses some failure detector D. Must show that we can extract Σ from D.

Each write operation involves a set of

“participants”: the processes that help the

  • peration take effect (w.r.t. A and D)

Fact: the set of participants includes at least one correct process

slide-14
SLIDE 14

14

Extraction algorithm

Every process p periodically:

writes in its register the participant sets of its

previous writes

reads participant sets of other processes

  • utputs

the participant set of its previous write, and for every known participant set S, one live process in S

All output sets intersect and eventually contain only correct processes

slide-15
SLIDE 15

15

Registers: the weakest failure detector Σ is the weakest failure detector to is the weakest failure detector to implement atomic registers, in any implement atomic registers, in any environment environment

slide-16
SLIDE 16

16

Roadmap

  • 1. Model: asynchronous system with failure

detectors

  • 2. Implementing a register
  • 3. Solving consensus
  • 4. Solving QC
  • 5. Solving NBAC
slide-17
SLIDE 17

17

Leader Leader failure detector failure detector Ω [CHT96] [CHT96]

Outputs the id of a process. Eventually, the id

  • f the same correct process is output at all

correct processes.

slide-18
SLIDE 18

18

Consensus Consensus registers + registers + Ω

Ω can be used to solve consensus with

registers, in any environment [LH94]

Consensus => Registers: any consensus

algorithm can be used to implement registers, in any environment [Lam86,Sch90]

Consensus => Ω: Ω can be extracted from

any failure detector D that solves consensus, in any environment [CHT96]

slide-19
SLIDE 19

19

Consensus: the weakest failure detector Consensus: the weakest failure detector

Consensus registers + Ω (in any

environment)

Σ is the weakest FD to implement

registers (in any environment) Thus, (Ω, , Σ) is the weakest failure detector to ) is the weakest failure detector to solve consensus, in any environment solve consensus, in any environment

slide-20
SLIDE 20

20

Roadmap

  • 1. Model: asynchronous system with failure

detectors

  • 2. Implementing a register
  • 3. Solving consensus
  • 4. Solving QC
  • 5. Solving NBAC
slide-21
SLIDE 21

21

Quittable consensus (QC)

QC is like consensus except that if a failure occurs, then processes can agree

  • n the special value Q (« Quit »), or
  • n one of the proposed values (as in

consensus)

slide-22
SLIDE 22

22

Failure detector Ψ

For some initial period of time

For some initial period of time Ψ outputs some

  • utputs some

predefined value predefined value Τ

Eventually,

Eventually,

Ψ behaves like (Ω,Σ), or (only if a failure occurs) Ψ behaves like FS (outputs red)

NB: NB: If a failure occurs,

If a failure occurs, Ψ can choose to behave can choose to behave like ( like (Ω,Σ) or like FS (the choice is the same at ) or like FS (the choice is the same at all processes) all processes)

slide-23
SLIDE 23

23

Ψ is sufficient to solve QC

Propose(v) Propose(v)

// v in {0,1} // v in {0,1}

wait until wait until Ψ ≠ Τ if if Ψ = red then then return Q

// If // If Ψ behaves like FS behaves like FS

d := ConsPropose(v)

// If // If Ψ behaves like behaves like (Ω,Σ) )

// // run a consensus algorithm

run a consensus algorithm

return d

slide-24
SLIDE 24

24

Ψ is necessary to solve QC

Let A be a QC algorithm that uses a failure detector D. Must show that we can extract Ψ from

A and D

slide-25
SLIDE 25

25

Simulating runs of A

Every process periodically samples D and exchanges its FD samples with other processes => using these FD samples, the process locally simulates runs of A [CHT96]

p

D

Simulate A

q r

D D

Simulate A Simulate A

slide-26
SLIDE 26

26

Extracting Ψ

If there are “enough” simulated runs of A in which non- Q values are decided, then it is possible to extract (Ω,Σ). Otherwise, it is possible to extract FS. Processes use the QC algorithm A to agree on which failure detector to extract.

Q Q 1

FS (Ω,Σ) QC

slide-27
SLIDE 27

27

QC: the weakest failure detector

Ψ is the weakest failure detector to solve is the weakest failure detector to solve QC, in any environment QC, in any environment

slide-28
SLIDE 28

28

Roadmap

  • 1. Model: asynchronous system with failure

detectors

  • 2. Implementing a register
  • 3. Solving consensus
  • 4. Solving QC
  • 5. Solving NBAC
slide-29
SLIDE 29

29

NBAC

A set of processes need to agree on whether to commit or to abort a transaction. Initially, each process votes Yes (“I want to commit”) or No (“We must abort”) Eventually, processes must reach a common decision (Commit or Abort):

Commit is decided => all processes voted Yes Abort is decided => some process voted No or

a failure previously occurred

slide-30
SLIDE 30

30

NBAC QC + FS

QC+FS => NBAC:

QC+FS => NBAC: given (a) any algorithm for QC and (b) FS, we given (a) any algorithm for QC and (b) FS, we can solve NBAC can solve NBAC

NBAC => QC:

NBAC => QC: Any algorithm for NBAC can be used to solve Any algorithm for NBAC can be used to solve QC QC

NBAC => FS:

NBAC => FS: Any algorithm for NBAC can be used to Any algorithm for NBAC can be used to extract FS extract FS

slide-31
SLIDE 31

31

NBAC: the weakest failure detector

NBAC QC + FS (in any environment) Ψ is the weakest FD to solve QC (in any

environment) Thus, Thus, (Ψ,FS) is the weakest failure detector to ,FS) is the weakest failure detector to solve NBAC, in any environment solve NBAC, in any environment

slide-32
SLIDE 32

32

The original results

  • C. Delporte-Gallet, H. Fauconnier
  • C. Delporte-Gallet, H. Fauconnier and R. Guerraoui

and R. Guerraoui

Shared memory vs. message-passing Shared memory vs. message-passing

Technical report IC/2003/77, EPFL, 2003 Technical report IC/2003/77, EPFL, 2003

  • R. Guerraoui, V. Hadzilacos, P. Kouznetsov
  • R. Guerraoui, V. Hadzilacos, P. Kouznetsov and S. Toueg

and S. Toueg

The weakest failure detectors for quittable The weakest failure detectors for quittable consensus and non-blocking atomic commit consensus and non-blocking atomic commit

Technical repport, LPD, EPFL, 2004 Technical repport, LPD, EPFL, 2004

slide-33
SLIDE 33

33

Thank you! Thank you!

slide-34
SLIDE 34

34

Quittable consensus (QC)

propose(v) (v in {0,1}) returns a value in {0,1,Q} propose(v) (v in {0,1}) returns a value in {0,1,Q} (Q stands for « (Q stands for « quit uit »)

Agreement:

Agreement: no two processes return different values

Termination:

Termination: every correct process eventually returns a value

Validity:

Validity: only a value v in {0,1,Q} can be returned If v in {0,1}, then some process previously proposed v If v=Q, then a failure previously occurred

slide-35
SLIDE 35

35

Emulating Σ: the reduction algorithm

Periodically (round k): Pi(k) := set of participants of write k by process i Ei := {Pi(j)} j≤k write(Ei) to register Ri Ei := Ei U Pi(k) send (k,?) to all wait until, for every j, received (k,ack) from every X read in register Rj current output of Σ := set of all processes sent (ack,k) U Pi(k-1)

slide-36
SLIDE 36

36

Emulating Σ: the proof intuition

For any round k, process i stores all Pi(k’) (k’<k) in Ri

For any round k, process i stores all Pi(k’) (k’<k) in Ri and includes Pi(k-1) to its emulated set and includes Pi(k-1) to its emulated set Σi => => Any process j that reads Ri Any process j that reads Ri afterwards will include afterwards will include at least one process from Pi(k-1) to its emulated set at least one process from Pi(k-1) to its emulated set Σj => Every two emulated sets intersect very two emulated sets intersect

Eventually, only correct processes send acks

Eventually, only correct processes send acks => => Eventually, the emulation set includes only correct Eventually, the emulation set includes only correct processes processes

slide-37
SLIDE 37

37

NBAC

Propose(v) (v in {Yes,No}) returns a value in Propose(v) (v in {Yes,No}) returns a value in {Commit,Abort} {Commit,Abort}

Agreement:

Agreement: no two processes return different values

Termination:

Termination: every correct process eventually returns a value

Validity:

Validity: a value in {Commit,Abort} is returned

If Commit is returned, then every process voted Yes If Commit is returned, then every process voted Yes If Abort is returned, then some process voted no or a If Abort is returned, then some process voted no or a failure previously occurred failure previously occurred

slide-38
SLIDE 38

38

NBAC using QC and FS

send v to all send v to all wait until received all votes or FS outputs red wait until received all votes or FS outputs red \\ wait until all votes received or \\ a failure occurs if all votes are received and are Yes then if all votes are received and are Yes then proposal := 1 proposal := 1 \\ propose to commit else else proposal := 0 proposal := 0 \\ propose to abort if QC.Propose(proposal) returns 1 then if QC.Propose(proposal) returns 1 then return Commit return Commit else else return Abort return Abort