Title: Consensus and Related Problems
1Consensus and Related Problems
References G. Coulouris, J. Dollimore and T.
Kindberg "Distributed Systems Concepts and
Design", Ed. 4, Addison-Wesley 2005, Chap. 12.5
Distributed SystemsBéat Hirsbrunner (Fribourg)
and Peter Kropf (Neuchâtel)) Summer Semester
2007, Lecture 3b, 25 May 2007
2The problem
- Roughly speaking, the problem is for processes
to agree on a value after one or more of the
processes has proposed what that value should be.
- Assumption about processes
- Processes communicate by message passing
- Processes may crash(in the case of the
Byzantyne Generals Problem, the processes may
even arbitrary fail, i.e. be treacherous!)
- Assumption about communication
- Point to point communication is reliable
- Group communication is based on B-multicast
3(reminder, cf. p 53)
do
4(reminder, cf. p 55)
5R-send and R-receive (reminder, cf. p. 56) The
term reliable communication is defined in terms
of validity and integrity as follows validity
any message in the outgoing message buffer is
eventually delivered to the incoming message
buffer. integrity the message received is
identical to one sent, and no messages are
delivered twice
B-multicast (reminder, cf. p. 486) Basic
multicast primitive that guarantees, unlike IP
multicast, that a correct process will eventually
deliver the message To B-multicast(g,m) for
each processs p in g, R-send(p,m) On
R-receive(m) at p B-deliver(m) at p
6(reminder, cf. p 55)
7 Consensus Problem (C)
8(No Transcript)
9(BG)
Assumption communication channels between pairs
of prcs are reliable and private
Requirements Termination and Agreement same as
for the consensus problem. Integrity If the
commander is correct, then all correct processes
decide on the value that the commander proposed.
10- Interactive Consistency Problem (IC)
- Each process pi suggests one value vi.
- Goal all correct processes agree on a vector of
values, each component corresponding to one
processes agreed value. Example agreement about
each processes' local state.
- Requirements
- Termination same as for the consensus problem.
- Agreement the decision vector of all correct
processes is the same. - Integrity if pi is correct, then all correct
processes decide on vi as the i-th component of
their vector.
Lemma The four problems (a) Consensus, (b)
Byzantine Generals, (c) Interactive Consistency
and (d) Reliable Totally Ordered Multicast are
equivalent in the sense that if we can find a
solution for one of them we can apply the
solution to all of them.
"Proof" (for more detail see p. 502-503) IC from
BG run BG N times, once with each process pi as
commander BG from C all processes run C with the
value received from commander pj C from IC apply
an appropriate function on the vector to produce
a single value C from RTO-multicast each pi
performs RTO-multicast and choose the first value
that the RTO-multicast delivers RTO-multicast
from C see Chanda and Touegg 1996 (not
trivial, only for interested students)
11Only crashes, no byzantine faults
Proof Termination obvious as the system is
synchronous! Agreement and integrity follows
from the Lemma "every process arrives at the same
final set 'Values(f1,_)' ".
- "Proof" of the Lemma (for more detail see p. 504)
- If a process crashes, its "B-multicasted" value
may not arrive to every correct process - - There is at least one round without process
crash (i.e. a value v present in a correct pi is
also present in all other correct pk proof by
recursion over the rounds) !
12Byzantine generals in a synchronous system
13Byzantine generals in a synchronous
system Solution with one faulty process
Example
p2 majority(v,u,v) v p3 majority(v,v,w)
v
p2 majority(v,w,v) v p3 majority(v,v,w)
v p4 majority(w,v,v) v
p2, p3, p4 majority(v,u,w) ?
14 Discussion
15Impossibility of Agreement in Asynchronous Systems
- Previous algorithms synchrony assumption
- message exchanges in rounds
- timeouts
- In asynchronous systems, consensus is challenged
by - crashes that may not be detected
- network partitioning
- etc.
- Idea use of handshake protocols to "commit" the
transfer of information so that all data has been
delivered to all parties.
Theorem In asynchronous systems, no algorithm
can guarantee reaching consensus, even with just
one process crash failure.
- i.e. no completely asynchronous consensus
protocol can tolerate even a single unannounced
process death - even with no byzantine failures, only crashes
considered - and with reliable messaging assumed (all
messages delivered, no duplication)
- Proof idea Show that there is always some
continuation of the process execution that
avoids consensus being reached. - Reference M. Fischer, N. Lynch and M. Paterson,
Impossibility of Distributed Consensus with One
Faulty Process, Journal of the ACM, Vol. 32, No.
2, April 1985, pp. 374-382.