consensus in an asynchronous system
DESCRIPTION
Consensus in an Asynchronous System. Impossible to achieve! even a single failed process is enough to avoid the system from reaching agreement Proved in a now-famous result by Fischer, Lynch and Patterson, 1983 (FLP). Recall. Each process p has a state - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Consensus in an Asynchronous System](https://reader035.vdocument.in/reader035/viewer/2022062321/56812eff550346895d949ece/html5/thumbnails/1.jpg)
Consensus in an Asynchronous System
• Impossible to achieve!– even a single failed process is enough to avoid
the system from reaching agreement
• Proved in a now-famous result by Fischer, Lynch and Patterson, 1983 (FLP)
![Page 2: Consensus in an Asynchronous System](https://reader035.vdocument.in/reader035/viewer/2022062321/56812eff550346895d949ece/html5/thumbnails/2.jpg)
Recall
• Each process p has a state– program counter, registers, stack, local variables
– input register xp : initially either 0 or 1
– output register yp : initially b
• Consensus Problem: design a protocol so that either– all processes set their output variables to 0
– Or all processes set their output variables to 1
![Page 3: Consensus in an Asynchronous System](https://reader035.vdocument.in/reader035/viewer/2022062321/56812eff550346895d949ece/html5/thumbnails/3.jpg)
p p’
Global Message Buffer
send(p’,m)receive(p’)
may return null
“Network”
![Page 4: Consensus in an Asynchronous System](https://reader035.vdocument.in/reader035/viewer/2022062321/56812eff550346895d949ece/html5/thumbnails/4.jpg)
• State of a process• Configuration: collection of states, one for
each process; and state of the global buffer• Each Event
– receipt of a message by a process (say p)– processing of message– sending out of all necessary messages by p
• Schedule: sequence of events
![Page 5: Consensus in an Asynchronous System](https://reader035.vdocument.in/reader035/viewer/2022062321/56812eff550346895d949ece/html5/thumbnails/5.jpg)
C
C’
C’’
Event e’=(p’,m’)
Event e’’=(p’’,m’’)
Configuration C
Schedule s=(e’,e’’)
C
C’’
Equivalent
![Page 6: Consensus in an Asynchronous System](https://reader035.vdocument.in/reader035/viewer/2022062321/56812eff550346895d949ece/html5/thumbnails/6.jpg)
Lemma 1
C
C’
C’’
Schedule s1
Schedule s2
s2
s1
s1 and s2 involvedisjoint sets of receiving processes
Schedules are commutative
![Page 7: Consensus in an Asynchronous System](https://reader035.vdocument.in/reader035/viewer/2022062321/56812eff550346895d949ece/html5/thumbnails/7.jpg)
Easier Consensus Problem
Easier Consensus Problem: some process eventually sets yp to be 0 or 1
Only one process crashes – we’re free to choose which one
Consensus Protocol correct if1. Any accessible config. (config. reachable from an
initial config.) does not have > 1 decision value2. For v in {0,1}, some accessible config. has value v
– avoids trivial solution to the consensus problem
![Page 8: Consensus in an Asynchronous System](https://reader035.vdocument.in/reader035/viewer/2022062321/56812eff550346895d949ece/html5/thumbnails/8.jpg)
• Let config. C have a set of decision values V reachable from it– If |V| = 2, config. C is bivalent– If |V| = 1, config. C is 0-valent or 1-valent, as is
the case
• Bivalent means outcome is unpredictable
![Page 9: Consensus in an Asynchronous System](https://reader035.vdocument.in/reader035/viewer/2022062321/56812eff550346895d949ece/html5/thumbnails/9.jpg)
What we’ll Show
1. There exists an initial configuration that is bivalent
2. Starting from a bivalent config., there is always another bivalent config. that is reachable
![Page 10: Consensus in an Asynchronous System](https://reader035.vdocument.in/reader035/viewer/2022062321/56812eff550346895d949ece/html5/thumbnails/10.jpg)
Lemma 2Some initial configuration is bivalent
•Suppose all initial configurations were either 0-valent or 1-valent.•Place all configurations side-by-side, where adjacent configurations
differ in initial xp value for exactly one process.
1 1 0 1 0 1
•There is some adjacent pair of 1-valent and 0-valent configs.
![Page 11: Consensus in an Asynchronous System](https://reader035.vdocument.in/reader035/viewer/2022062321/56812eff550346895d949ece/html5/thumbnails/11.jpg)
Lemma 2Some initial configuration is bivalent
1 1 0 1 0 1
•There is some adjacent pair of 1-valent and 0-valent configs.•Let the process p that has a different state across these two configs. be the process that has crashed (silent throughout)
Both initial configs. will lead to the same config. for the same sequence of events
One of these initial configs. must be bivalent to allow for a failure
![Page 12: Consensus in an Asynchronous System](https://reader035.vdocument.in/reader035/viewer/2022062321/56812eff550346895d949ece/html5/thumbnails/12.jpg)
What we’ll Show
1. There exists an initial configuration that is bivalent
2. Starting from a bivalent config., there is always another bivalent config. that is reachable
![Page 13: Consensus in an Asynchronous System](https://reader035.vdocument.in/reader035/viewer/2022062321/56812eff550346895d949ece/html5/thumbnails/13.jpg)
Lemma 3Starting from a bivalent config., there
is always another bivalent config. that is reachable
![Page 14: Consensus in an Asynchronous System](https://reader035.vdocument.in/reader035/viewer/2022062321/56812eff550346895d949ece/html5/thumbnails/14.jpg)
Lemma 3
A bivalent initial config.let e=(p,m) be an applicable event to the initial config.
Let C be the set of configs. reachable without applying e
![Page 15: Consensus in an Asynchronous System](https://reader035.vdocument.in/reader035/viewer/2022062321/56812eff550346895d949ece/html5/thumbnails/15.jpg)
Lemma 3
A bivalent initial config.let e=(p,m) be an applicable event to the initial config.
Let C be the set of configs. reachable without applying e
e e e e eLet D be the set of configs. obtained by applying e to a config. in C
![Page 16: Consensus in an Asynchronous System](https://reader035.vdocument.in/reader035/viewer/2022062321/56812eff550346895d949ece/html5/thumbnails/16.jpg)
Lemma 3
D
C
e e e e e
bivalent
[don’t apply event e=(p,m)]
![Page 17: Consensus in an Asynchronous System](https://reader035.vdocument.in/reader035/viewer/2022062321/56812eff550346895d949ece/html5/thumbnails/17.jpg)
Claim. D contains a bivalent config.Proof. By contradiction. => assume
there is no bivalent config in D• There are adjacent configs. C0 and
C1 in C such that C1 = C0 followed by e’ • and
– e’=(p’,m’)– D0=C0 foll. by e=(p,m)– D1=C1 foll. by e=(p,m)– D0 is 0-valent, D1 is 1-valent
(why?)
D
C
e e e e e
bivalent
[don’t apply event e=(p,m)]
i-valent config Ei reachablefrom C exists (because C isbivalent) •If Ei in C, then Fi = e(Ei)•Else e was applied
reaching EiEither way there exists Fi in Dfor i=0 and 1 both
![Page 18: Consensus in an Asynchronous System](https://reader035.vdocument.in/reader035/viewer/2022062321/56812eff550346895d949ece/html5/thumbnails/18.jpg)
Proof. (contd.)
• Case I: p’ is not p
• Case II: p’ same as p
D
C
e e e e e
bivalent
[don’t apply event e=(p,m)]
C0
D1
D0 C1
e
ee’
e’
Why? (Lemma 1)But D0 is then bivalent!
![Page 19: Consensus in an Asynchronous System](https://reader035.vdocument.in/reader035/viewer/2022062321/56812eff550346895d949ece/html5/thumbnails/19.jpg)
Proof. (contd.)
• Case I: p’ is not p
• Case II: p’ same as p
D
C
e e e e e
bivalent
[don’t apply event e=(p,m)]
C0
D1
D0C1
e e’
A
E0
e
sch. s
sch. s
E1
sch. s
(e’,e)
e
sch. s• finite• deciding run from C0• p takes no steps
But A is then bivalent!
![Page 20: Consensus in an Asynchronous System](https://reader035.vdocument.in/reader035/viewer/2022062321/56812eff550346895d949ece/html5/thumbnails/20.jpg)
Lemma 3Starting from a bivalent config., there
is always another bivalent config. that is reachable
![Page 21: Consensus in an Asynchronous System](https://reader035.vdocument.in/reader035/viewer/2022062321/56812eff550346895d949ece/html5/thumbnails/21.jpg)
Putting it all Together
• Lemma 2: There exists an initial configuration that is bivalent
• Lemma 3: Starting from a bivalent config., there is always another bivalent config. that is reachable
• Theorem (Impossibility of Consensus): There is always a run of events in an asynchronous distributed system such that the group of processes never reach consensus
![Page 22: Consensus in an Asynchronous System](https://reader035.vdocument.in/reader035/viewer/2022062321/56812eff550346895d949ece/html5/thumbnails/22.jpg)
Summary
• Consensus Problem – agreement in distributed systems– Solution exists in synchronous system model
(e.g., supercomputer)– Impossible to solve in an asynchronous system
• Key idea: with one process failure, there are always sequences of events for the system to decide any which way
– FLP impossibility proof