agreement in distributed systems n definition of agreement problems n impossibility of consensus...
TRANSCRIPT
![Page 1: Agreement in Distributed Systems n definition of agreement problems n impossibility of consensus with a single crash n solvable problems u consensus with](https://reader036.vdocument.in/reader036/viewer/2022070413/5697bfd61a28abf838cae148/html5/thumbnails/1.jpg)
Agreement inDistributed Systems
definition of agreement problems impossibility of consensus with a single crash solvable problems
consensus with initially dead processes renaming
![Page 2: Agreement in Distributed Systems n definition of agreement problems n impossibility of consensus with a single crash n solvable problems u consensus with](https://reader036.vdocument.in/reader036/viewer/2022070413/5697bfd61a28abf838cae148/html5/thumbnails/2.jpg)
Fault Models
Faults form a hierarchy on the basis of the severity of faults benign
initially dead - a process is initially dead if it does not execute a single step in its algorithm
crash model - a process executes steps correctly up to some moment (crash) and stops executing thereafter
malign - Byzantine - a process executes arbitrary steps (not necessarily in accordance with its local algorithm). In particular Byzantine process sends messages with arbitrary content
initially dead process is a special case of crashed process which is a special case of Byzantine process if algorithm is Byzantine-robust it can also tolerate crashes and
initially dead processes if a problem cannot be solved for initially dead processes, it cannot be
solved in the presence of crashes or Byzantine failures other intermediate fault models can be defined
![Page 3: Agreement in Distributed Systems n definition of agreement problems n impossibility of consensus with a single crash n solvable problems u consensus with](https://reader036.vdocument.in/reader036/viewer/2022070413/5697bfd61a28abf838cae148/html5/thumbnails/3.jpg)
Agreement Problems
agreement problems are fundamental to the study of fault tolerance agreement problem requires that each (correct) process eventually and
irreversibly arrives at a “decision” value decision problems requirements:
termination - all correct processes decide (cannot indefinitely wait for faulty processes)
consistency - the decisions of correct processes should be related; consensus problem - the decisions are equal election problem - only one process arrives at “1” (leader) the
others - “0” (non-leaders) validity (non-triviality) - different outputs are possible in different
executions of the algorithm
![Page 4: Agreement in Distributed Systems n definition of agreement problems n impossibility of consensus with a single crash n solvable problems u consensus with](https://reader036.vdocument.in/reader036/viewer/2022070413/5697bfd61a28abf838cae148/html5/thumbnails/4.jpg)
Impossibility of Consensus: Preliminaries
State is reachable if there is a computation that contains it Each process has a read-only input variable xp and write-once output
variable yp initially holding b A consensus algorithm is 1-crash robust it it satisfies the following
properties: termination - in every 1-crash fair execution all correct processes
decide agreement - if, in any reachable state, yp b and yq b for correct
processes p and q then, yp = yq
validity (non-triviality) - there exist a reachable state such that for some p, yp=1 in one state and yp=0 in another
![Page 5: Agreement in Distributed Systems n definition of agreement problems n impossibility of consensus with a single crash n solvable problems u consensus with](https://reader036.vdocument.in/reader036/viewer/2022070413/5697bfd61a28abf838cae148/html5/thumbnails/5.jpg)
Impossibility of Consensus: Terminology
translation configuration – global state sequence – (portion of) a computation applicable step/event – enabled (atomic) action
New terms: configurations decided – for some process P yp b 0-valent – all decide configurations reachable from it is 0-valent, similar,
1-valent univalent – either 0-valent or 1-valent bivalent – both 0 and 1 decide configurations are reachable from it fork – exist 0-valent and 1-valent configuration that is reachable from a
fork through the actions of no more than t (number of crashes) processes the actions of no more than t processes can force a decision.
![Page 6: Agreement in Distributed Systems n definition of agreement problems n impossibility of consensus with a single crash n solvable problems u consensus with](https://reader036.vdocument.in/reader036/viewer/2022070413/5697bfd61a28abf838cae148/html5/thumbnails/6.jpg)
Impossibility of Consensus:Main Results
blah
![Page 7: Agreement in Distributed Systems n definition of agreement problems n impossibility of consensus with a single crash n solvable problems u consensus with](https://reader036.vdocument.in/reader036/viewer/2022070413/5697bfd61a28abf838cae148/html5/thumbnails/7.jpg)
What Is Possible
consensus with initially dead-process fault model is possible weaker coordination problems than consensus (such as renaming) are
solvable given: a set of processes p1,..,pN, each process with distinct identity
taken from arbitrary large domain. Each process has to decide on a unique new name from smaller domain 1,…,K
randomized algorithms are possible even for Byzantine failures weak termination - termination required only when a given process
(general) is correct, the objective is for all processes to learn the general’s decision; solvable even in the presence of Byzantine faults
synchronous systems are significantly more fault tolerant
![Page 8: Agreement in Distributed Systems n definition of agreement problems n impossibility of consensus with a single crash n solvable problems u consensus with](https://reader036.vdocument.in/reader036/viewer/2022070413/5697bfd61a28abf838cae148/html5/thumbnails/8.jpg)
Consensus with Initially Dead Processes
if processes are only initially-dead consensus is possible. based on the following knot-computation algorithm knot is a strongly connected sub-graph with no outgoing edges the objective is for all correct processes to agree on the subset of correct
processes L stands for (N+1)/2, the number of alive processes
can tolerate crashes as long as majority is alive first phase: each process p:
sends messages to all processes in the system collects at least L messages in set Succp
a process is a successor if p got a message from it - there is a graph G in the system
thus each correct process has L successors an initially-dead process does not send any messages. Thus there is a
knot in G containing correct processes
![Page 9: Agreement in Distributed Systems n definition of agreement problems n impossibility of consensus with a single crash n solvable problems u consensus with](https://reader036.vdocument.in/reader036/viewer/2022070413/5697bfd61a28abf838cae148/html5/thumbnails/9.jpg)
Knot Calculation Algorithm
![Page 10: Agreement in Distributed Systems n definition of agreement problems n impossibility of consensus with a single crash n solvable problems u consensus with](https://reader036.vdocument.in/reader036/viewer/2022070413/5697bfd61a28abf838cae148/html5/thumbnails/10.jpg)
Renaming
problem: