lecture 4 introduction to principles of distributed computing
DESCRIPTION
Lecture 4 Introduction to Principles of Distributed Computing. Sergio Rajsbaum Math Institute UNAM, Mexico. Lecture 4. Consensus in partially synchronous systems, and failure detectors Part I : Realistic timing model and metric Part II : Failure detectors, algorithms - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Lecture 4 Introduction to Principles of Distributed Computing](https://reader035.vdocuments.us/reader035/viewer/2022070421/5681604b550346895dcf7545/html5/thumbnails/1.jpg)
Sergio Rajsbaum 2006
Lecture 4Introduction to Principles of
Distributed Computing
Sergio RajsbaumMath Institute
UNAM, Mexico
![Page 2: Lecture 4 Introduction to Principles of Distributed Computing](https://reader035.vdocuments.us/reader035/viewer/2022070421/5681604b550346895dcf7545/html5/thumbnails/2.jpg)
Sergio Rajsbaum 2006
Lecture 4Consensus in partially synchronous systems,
and failure detectors
• Part I: Realistic timing model and metric• Part II: Failure detectors, algorithms• Part III: this is the best possible• Part IV: New directions and extensions
![Page 3: Lecture 4 Introduction to Principles of Distributed Computing](https://reader035.vdocuments.us/reader035/viewer/2022070421/5681604b550346895dcf7545/html5/thumbnails/3.jpg)
Sergio Rajsbaum 2006
CONSENSUS A fundamental Abstraction
Each process has an input, should decide an output s.t. Agreement: correct processes’ decisions are the sameValidity: decision is input of one processTermination: eventually all correct processes decide
There are at least two possible input values 0 and 1. all possible vectors over the input values V
![Page 4: Lecture 4 Introduction to Principles of Distributed Computing](https://reader035.vdocuments.us/reader035/viewer/2022070421/5681604b550346895dcf7545/html5/thumbnails/4.jpg)
Sergio Rajsbaum 2006
The lecture in a nutshell
• Consensus solvability depends on how long connectivity preserved by a particular model
• In synchronous it is solvable, in asynchronous not. What about intermediate, more realistic models?
X0
L(X0)L2(X0)
Initial statesstates after one roundstates after
2 rounds
Connectivitypreserved
Connectivitydestroyed
![Page 5: Lecture 4 Introduction to Principles of Distributed Computing](https://reader035.vdocuments.us/reader035/viewer/2022070421/5681604b550346895dcf7545/html5/thumbnails/5.jpg)
Sergio Rajsbaum 2006
Basic Model
• Message passing (essentially equivalent to read/write shared memory model)
• Channels between every pair of processes• Crash failures
t < n potential failures out of n >1 processes• No message loss among correct processes
![Page 6: Lecture 4 Introduction to Principles of Distributed Computing](https://reader035.vdocuments.us/reader035/viewer/2022070421/5681604b550346895dcf7545/html5/thumbnails/6.jpg)
Sergio Rajsbaum 2006
Is consensus solvable?If so, how long does it take to solve it?
• It depends on what exactly the model is• But what is a realistic model?• And what are the common scenarios within the
model? The nature of a distributed system is to include complex combinations of failures and delays
![Page 7: Lecture 4 Introduction to Principles of Distributed Computing](https://reader035.vdocuments.us/reader035/viewer/2022070421/5681604b550346895dcf7545/html5/thumbnails/7.jpg)
Sergio Rajsbaum 2006
How Fast Can We Solve Consensus?
Depends on the timing model:• Message delays• Processing times• Clocks
• And on the metric used:• Worst case• Average• etc
![Page 8: Lecture 4 Introduction to Principles of Distributed Computing](https://reader035.vdocuments.us/reader035/viewer/2022070421/5681604b550346895dcf7545/html5/thumbnails/8.jpg)
Sergio Rajsbaum 2006
The Rest of This Lecture
• Part I: Realistic timing model and metric• Part II: Upper bounds• Part III: this is the best possible• Part IV: New directions and extensions
![Page 9: Lecture 4 Introduction to Principles of Distributed Computing](https://reader035.vdocuments.us/reader035/viewer/2022070421/5681604b550346895dcf7545/html5/thumbnails/9.jpg)
Sergio Rajsbaum 2006
Part I: Realistic Timing Model
![Page 10: Lecture 4 Introduction to Principles of Distributed Computing](https://reader035.vdocuments.us/reader035/viewer/2022070421/5681604b550346895dcf7545/html5/thumbnails/10.jpg)
Sergio Rajsbaum 2006
First two simple models
![Page 11: Lecture 4 Introduction to Principles of Distributed Computing](https://reader035.vdocuments.us/reader035/viewer/2022070421/5681604b550346895dcf7545/html5/thumbnails/11.jpg)
Sergio Rajsbaum 2006
Asynchronous Model
• Unbounded message delay, processor speed
Consensus impossible even for t=1 [FLP85]
![Page 12: Lecture 4 Introduction to Principles of Distributed Computing](https://reader035.vdocuments.us/reader035/viewer/2022070421/5681604b550346895dcf7545/html5/thumbnails/12.jpg)
Sergio Rajsbaum 2006
Round
Synchronous Model
• Algorithm runs in synchronous rounds:
– send messages to any set of processes, – receive messages from previous round, – do local processing (possibly decide, halt)
• If process i crashes in a round, then any subset of the messages i sends in this round can be lost
![Page 13: Lecture 4 Introduction to Principles of Distributed Computing](https://reader035.vdocuments.us/reader035/viewer/2022070421/5681604b550346895dcf7545/html5/thumbnails/13.jpg)
Sergio Rajsbaum 2006
Synchronous Consensus
• In a run with f failures (f<t)– Processes can decide in f+1 rounds [Lamport Fischer 82; Dolev, Reischuk, Strong 90] (early-deciding)
• 1 round with no failures
• In this talk deciding– halting takes min(f+2,t+1) [Dolev, Reischuk, Strong 90]
![Page 14: Lecture 4 Introduction to Principles of Distributed Computing](https://reader035.vdocuments.us/reader035/viewer/2022070421/5681604b550346895dcf7545/html5/thumbnails/14.jpg)
Sergio Rajsbaum 2006
The Middle Ground
Many real networks are neither synchronous nor asynchronous
• During long stable periods, delays and processing times are bounded– Like synchronous model
• Some unstable periods – Like asynchronous model
![Page 15: Lecture 4 Introduction to Principles of Distributed Computing](https://reader035.vdocuments.us/reader035/viewer/2022070421/5681604b550346895dcf7545/html5/thumbnails/15.jpg)
Sergio Rajsbaum 2006
Partial Synchrony Model [Dwork, Lynch, Stockmeyer 88]
• Processes have clocks (with bounded drift)• upper bound on message delay• , upper bound on processing time• GST, global stabilization time
– Until GST, unstable: bounds do not hold– After GST, stable: bounds hold– GST unknown
![Page 16: Lecture 4 Introduction to Principles of Distributed Computing](https://reader035.vdocuments.us/reader035/viewer/2022070421/5681604b550346895dcf7545/html5/thumbnails/16.jpg)
Sergio Rajsbaum 2006
Partial Synchrony in Practice
• For , , choose bounds that hold with high probability
• Stability forever?– We assume that once stable remains stable– In practice, has to last “long enough” for given algorithm
to terminate– A commonly used model that alternates between stable
and unstable times: Timed Asynchronous Model [Cristian, Fetzer 98]
![Page 17: Lecture 4 Introduction to Principles of Distributed Computing](https://reader035.vdocuments.us/reader035/viewer/2022070421/5681604b550346895dcf7545/html5/thumbnails/17.jpg)
Sergio Rajsbaum 2006
Consensus with Partial Synchrony
• Solvable • requires t < n/2 [DLS88]
Unbounded running time
by [FLP85], because model can be asynchronous for unbounded time
![Page 18: Lecture 4 Introduction to Principles of Distributed Computing](https://reader035.vdocuments.us/reader035/viewer/2022070421/5681604b550346895dcf7545/html5/thumbnails/18.jpg)
Sergio Rajsbaum 2006
Exercise
• Prove that consensus is not solvable in the partially synchronous model, if t ≥ n/2
• Prove that if t<n/2, it takes unbounded running time to be solved
![Page 19: Lecture 4 Introduction to Principles of Distributed Computing](https://reader035.vdocuments.us/reader035/viewer/2022070421/5681604b550346895dcf7545/html5/thumbnails/19.jpg)
Sergio Rajsbaum 2006
In a Practical System
Can we say more than: consensus will be solved eventually ?
![Page 20: Lecture 4 Introduction to Principles of Distributed Computing](https://reader035.vdocuments.us/reader035/viewer/2022070421/5681604b550346895dcf7545/html5/thumbnails/20.jpg)
Sergio Rajsbaum 2006
Performance Metric
Number of rounds in well-behaved runs
• Well-behaved: – No failures– Stable from the beginning
• Motivation: common case
![Page 21: Lecture 4 Introduction to Principles of Distributed Computing](https://reader035.vdocuments.us/reader035/viewer/2022070421/5681604b550346895dcf7545/html5/thumbnails/21.jpg)
Sergio Rajsbaum 2006
The Rest of This Lecture
• Part II: best known algorithms decide in 2 rounds in well-behaved runs– 2 time (with delay bound , 0 processing time)
• Part III: this is the best possible
• Part IV: new directions and extensions
![Page 22: Lecture 4 Introduction to Principles of Distributed Computing](https://reader035.vdocuments.us/reader035/viewer/2022070421/5681604b550346895dcf7545/html5/thumbnails/22.jpg)
Sergio Rajsbaum 2006
Part II: Algorithms, and the Failure Detector Abstraction
II.a Failure Detectors and Partial Synchrony
II.b Algorithms
-=
![Page 23: Lecture 4 Introduction to Principles of Distributed Computing](https://reader035.vdocuments.us/reader035/viewer/2022070421/5681604b550346895dcf7545/html5/thumbnails/23.jpg)
Sergio Rajsbaum 2006
Time-Free Algorithms
• Goal: abstract away time, get simpler algorithms
• We describe the algorithms using failure detector abstraction [Chandra, Toueg 96]
![Page 24: Lecture 4 Introduction to Principles of Distributed Computing](https://reader035.vdocuments.us/reader035/viewer/2022070421/5681604b550346895dcf7545/html5/thumbnails/24.jpg)
Sergio Rajsbaum 2006
Unreliable Failure Detectors [Chandra, Toueg 96]
• Each process has local failure detector oracle– Typically outputs list of processes suspected to
have crashed at any given time
• Unreliable: failure detector output can be arbitrary for unbounded (finite) prefix of run
![Page 25: Lecture 4 Introduction to Principles of Distributed Computing](https://reader035.vdocuments.us/reader035/viewer/2022070421/5681604b550346895dcf7545/html5/thumbnails/25.jpg)
Sergio Rajsbaum 2006
Performance of Failure Detector Based Consensus Algorithms
• Implement a failure detector in the partial synchrony model
• Design an algorithm for the failure detector• Analyze the performance in well-behaved
runs of the combined algorithm
![Page 26: Lecture 4 Introduction to Principles of Distributed Computing](https://reader035.vdocuments.us/reader035/viewer/2022070421/5681604b550346895dcf7545/html5/thumbnails/26.jpg)
Sergio Rajsbaum 2006
A Natural Failure Detector Implementation
in Partial Synchrony Model
• Implement failure detector using timeouts:– When expecting a message from a process i,
wait clock skew before suspecting i
• In well-behaved runs, always hold, hence no false suspicions
![Page 27: Lecture 4 Introduction to Principles of Distributed Computing](https://reader035.vdocuments.us/reader035/viewer/2022070421/5681604b550346895dcf7545/html5/thumbnails/27.jpg)
Sergio Rajsbaum 2006
The resulting failure detector is <>P - Eventually Perfect
• Strong Completeness: From some point on, every faulty process is suspected by every correct process
• Eventual Strong Accuracy: From some point on, every correct process is not suspected
![Page 28: Lecture 4 Introduction to Principles of Distributed Computing](https://reader035.vdocuments.us/reader035/viewer/2022070421/5681604b550346895dcf7545/html5/thumbnails/28.jpg)
Sergio Rajsbaum 2006
Weakest Failure Detectors for Consensus
• <>S - Eventually Strong– Strong Completeness– Eventual Weak Accuracy: From some point on,
some correct process is not suspected • - Leader
– Outputs one trusted process– From some point, all correct processes trust the
same correct process
![Page 29: Lecture 4 Introduction to Principles of Distributed Computing](https://reader035.vdocuments.us/reader035/viewer/2022070421/5681604b550346895dcf7545/html5/thumbnails/29.jpg)
Sergio Rajsbaum 2006
A Simple Implementation
• Use <>P implementation• Output lowest id non-suspected process
In well-behaved runs: process 1 always trusted
![Page 30: Lecture 4 Introduction to Principles of Distributed Computing](https://reader035.vdocuments.us/reader035/viewer/2022070421/5681604b550346895dcf7545/html5/thumbnails/30.jpg)
Sergio Rajsbaum 2006
Exercise
• Write the algorithm code for this failure detector and prove it is correct
![Page 31: Lecture 4 Introduction to Principles of Distributed Computing](https://reader035.vdocuments.us/reader035/viewer/2022070421/5681604b550346895dcf7545/html5/thumbnails/31.jpg)
Sergio Rajsbaum 2006
Relationships among Failure Detector Classes
• <>S is a subset of <>P• <>S is strictly weaker than <>P• <>S ~ [Chandra, Hadzilacos, Toueg 96]
Food for thought: What is the weakest timing model where <>S
and/or are implementable but <>P is not?
![Page 32: Lecture 4 Introduction to Principles of Distributed Computing](https://reader035.vdocuments.us/reader035/viewer/2022070421/5681604b550346895dcf7545/html5/thumbnails/32.jpg)
Sergio Rajsbaum 2006
Relationships among Failure Detector Classes- Recent Results
Partial Answer: In PODC’03 Aguilera et al present a system with synchronous processes S :
– any number of them may crash, and – only the output links of an unknown correct
process are eventually timely (all other links can be asynchronous and/or lossy)
<>P is not implementable in S, yesNew proof that: <>S is strictly weaker than <>P
![Page 33: Lecture 4 Introduction to Principles of Distributed Computing](https://reader035.vdocuments.us/reader035/viewer/2022070421/5681604b550346895dcf7545/html5/thumbnails/33.jpg)
Sergio Rajsbaum 2006
Note on the Power of Consensus
• Consensus cannot implement <>P, interactive consistency, atomic commit, …
• So its “universality”, in the sense of – wait-free objects in shared memory [Herlihy 93]
– state machine replication [Lamport 78; Schneider 90]
does not cover sensitivity to failures, timing, etc.
![Page 34: Lecture 4 Introduction to Principles of Distributed Computing](https://reader035.vdocuments.us/reader035/viewer/2022070421/5681604b550346895dcf7545/html5/thumbnails/34.jpg)
Sergio Rajsbaum 2006
Other Failure Detector Implementations
Food for thought:When is building <>P more costly than <>S or ?
Partial answer: Aguilera at al PODC’03 observe– any implementation of <>P (even in a perfectly
synchronous system) requires all alive processes to send messages forever, while can be implemented such that eventually only the leader sends messages
![Page 35: Lecture 4 Introduction to Principles of Distributed Computing](https://reader035.vdocuments.us/reader035/viewer/2022070421/5681604b550346895dcf7545/html5/thumbnails/35.jpg)
Sergio Rajsbaum 2006
Other Failure Detector Implementations
• Message efficient <>S implementation [Larrea, Fernández, Arévalo 00]
• QoS tradeoffs between accuracy and completeness [Chen, Toueg, Aguilera 00]
• Leader Election [Aguilera, Delporte, Fauconnier, Toueg 01]
• Adaptive <>P [Fetzer, Raynal, Tronel 01]
![Page 36: Lecture 4 Introduction to Principles of Distributed Computing](https://reader035.vdocuments.us/reader035/viewer/2022070421/5681604b550346895dcf7545/html5/thumbnails/36.jpg)
Sergio Rajsbaum 2006
Part II: Algorithms, and the Failure Detector Abstraction
II.a Failure Detectors and Partial Synchrony
II.b Algorithms
![Page 37: Lecture 4 Introduction to Principles of Distributed Computing](https://reader035.vdocuments.us/reader035/viewer/2022070421/5681604b550346895dcf7545/html5/thumbnails/37.jpg)
Sergio Rajsbaum 2006
Algorithms that Take 2 Rounds in Well-Behaved Runs
• <>S-based [Schiper 97; Hurfin, Raynal 99; Mostefaoui, Raynal 99]
• -based for t < n/3 [Mostefaoui, Raynal 00]• -based for t < n/2 [Dutta, Guerraoui 01]• Paxos (optimized version) [Lamport 89; 96]
– Leader-based () – Also tolerates omissions, crash recoveries
• COReL - Atomic Broadcast [Keidar, Dolev 96] – Group membership based (<>P)
![Page 38: Lecture 4 Introduction to Principles of Distributed Computing](https://reader035.vdocuments.us/reader035/viewer/2022070421/5681604b550346895dcf7545/html5/thumbnails/38.jpg)
Sergio Rajsbaum 2006
Of This Laundry List, We Present Two Algorithms
1 <>S-based [MR99]2 Paxos
![Page 39: Lecture 4 Introduction to Principles of Distributed Computing](https://reader035.vdocuments.us/reader035/viewer/2022070421/5681604b550346895dcf7545/html5/thumbnails/39.jpg)
Sergio Rajsbaum 2006
<>S-based Consensus [MR99]• val input v; est null for r =1, 2, … do
coord (r mod n)+1 if I am coord, then send (r,val) to all wait for ( (r, val) from coord OR suspect coord (by <>S))
if receive val from coord then est val else est null send (r, est) to all wait for (r,est) from n-t processes
if any non-null est received then val estif all ests have same v then send (“decide”, v) to all; return(v)
od• Upon receive (“decide”, v), forward to all, return(v)
1
2
![Page 40: Lecture 4 Introduction to Principles of Distributed Computing](https://reader035.vdocuments.us/reader035/viewer/2022070421/5681604b550346895dcf7545/html5/thumbnails/40.jpg)
Sergio Rajsbaum 2006
In Well-Behaved Runs1 1
2
n
.
.
.
(1, v1)
1
2
n
.
.
.
(1, v1)est = v1
decide v1
![Page 41: Lecture 4 Introduction to Principles of Distributed Computing](https://reader035.vdocuments.us/reader035/viewer/2022070421/5681604b550346895dcf7545/html5/thumbnails/41.jpg)
Sergio Rajsbaum 2006
In Case of Omissions
The algorithm can block in case of transient message omissions, waiting for a specific round message that will not arrive
![Page 42: Lecture 4 Introduction to Principles of Distributed Computing](https://reader035.vdocuments.us/reader035/viewer/2022070421/5681604b550346895dcf7545/html5/thumbnails/42.jpg)
Sergio Rajsbaum 2006
Paxos [Lamport 88; 96; 01]
• Uses failure detector• Phase 1: prepare
– A process who trusts itself tries to become leader– Chooses largest unique (using ids) ballot number– Learns outcome of all smaller ballots
• Phase 2: accept– Leader proposes a value with his ballot number.– Leader gets majority to accept his proposal.– A value accepted by a majority can be decided
![Page 43: Lecture 4 Introduction to Principles of Distributed Computing](https://reader035.vdocuments.us/reader035/viewer/2022070421/5681604b550346895dcf7545/html5/thumbnails/43.jpg)
Sergio Rajsbaum 2006
Paxos - Variables
• Type Rank– totally ordered set with minimum element r0
• Variables:Rank BallotNum, initially r0
Rank AcceptNum, initially r0
Value {} AcceptVal, initially
![Page 44: Lecture 4 Introduction to Principles of Distributed Computing](https://reader035.vdocuments.us/reader035/viewer/2022070421/5681604b550346895dcf7545/html5/thumbnails/44.jpg)
Sergio Rajsbaum 2006
Paxos Phase I: Prepare
• Periodically, until decision is reached do:if leader (by ) then
BallotNum (unique rank > BallotNum)send (“prepare”, rank) to all
• Upon receive (“prepare”, rank) from iif rank > BallotNum then
BallotNum ranksend (“ack”, rank, AcceptNum, AcceptVal) to i
![Page 45: Lecture 4 Introduction to Principles of Distributed Computing](https://reader035.vdocuments.us/reader035/viewer/2022070421/5681604b550346895dcf7545/html5/thumbnails/45.jpg)
Sergio Rajsbaum 2006
Paxos Phase II: Accept
Upon receive (“ack”, BallotNum, b, val) from n-tif all vals = then myVal = initial valueelse myVal = received val with highest b send (“accept”, BallotNum, myVal) to all /* proposal */
Upon receive (“accept”, b, v) with b BallotNumAcceptNum b; AcceptVal v /* accept proposal */send (“accept”, b, v) to all (first time only)
![Page 46: Lecture 4 Introduction to Principles of Distributed Computing](https://reader035.vdocuments.us/reader035/viewer/2022070421/5681604b550346895dcf7545/html5/thumbnails/46.jpg)
Sergio Rajsbaum 2006
Paxos – Deciding
Upon receive (“accept”, b, v) from n-tdecide vperiodically send (“decide”, v) to all
Upon receive (“decide”, v) decide v
![Page 47: Lecture 4 Introduction to Principles of Distributed Computing](https://reader035.vdocuments.us/reader035/viewer/2022070421/5681604b550346895dcf7545/html5/thumbnails/47.jpg)
Sergio Rajsbaum 2006
In Well-Behaved Runs1 1
2
n
.
.
.
(“accept”,1 ,v1)
1
2
n
.
.
.
1 1
2
n
.
.
.
(“prepare”,1)
(“ack”,1,r0,)
decide v1
(“accept”,1 ,v1)
Our implementation always trusts process 1
![Page 48: Lecture 4 Introduction to Principles of Distributed Computing](https://reader035.vdocuments.us/reader035/viewer/2022070421/5681604b550346895dcf7545/html5/thumbnails/48.jpg)
Sergio Rajsbaum 2006
Optimization
• Allow process 1 (only!) to skip Phase 1– use rank r0 – propose its own initial value
• Takes 2 rounds in well-behaved runs• Takes 2 rounds for repeated invocations with
the same leader
![Page 49: Lecture 4 Introduction to Principles of Distributed Computing](https://reader035.vdocuments.us/reader035/viewer/2022070421/5681604b550346895dcf7545/html5/thumbnails/49.jpg)
Sergio Rajsbaum 2006
What About Message Loss?
• Does not block in case of a lost message– Phase I can start with new rank even if previous
attempts never ended• But constant omissions can violate liveness• Specify conditional liveness:
If n-t correct processes including the leader can communicate with each other
then they eventually decide
![Page 50: Lecture 4 Introduction to Principles of Distributed Computing](https://reader035.vdocuments.us/reader035/viewer/2022070421/5681604b550346895dcf7545/html5/thumbnails/50.jpg)
Sergio Rajsbaum 2006
Synchronous Consensus
• In a run with f failures (f<t)– Processes can decide in f+1 rounds – And no less ![Lamport Fischer 82; Dolev, Reischuk, Strong 90] (early-deciding)
• 1 round with no failures
• In this talk deciding– halting takes min(f+2,t+1) [Dolev, Reischuk, Strong 90]
![Page 51: Lecture 4 Introduction to Principles of Distributed Computing](https://reader035.vdocuments.us/reader035/viewer/2022070421/5681604b550346895dcf7545/html5/thumbnails/51.jpg)
Sergio Rajsbaum 2006
Uniform Consensus
• Uniform agreement: decision of every two processes is the same
Recall: with consensus, only correct processes have to agree (disagreement with the dead is OK)
This version of consensus will be useful to extend the lower bound argument to asynchronous models
![Page 52: Lecture 4 Introduction to Principles of Distributed Computing](https://reader035.vdocuments.us/reader035/viewer/2022070421/5681604b550346895dcf7545/html5/thumbnails/52.jpg)
Sergio Rajsbaum 2006
Synchronous Uniform Consensus
Every algorithm has a run with f failures (f<t-1), that takes at least
f+2 rounds to decide
• [Charron-Bost, Schiper 00; KR 01] – as opposed to f+1 for consensus
![Page 53: Lecture 4 Introduction to Principles of Distributed Computing](https://reader035.vdocuments.us/reader035/viewer/2022070421/5681604b550346895dcf7545/html5/thumbnails/53.jpg)
Sergio Rajsbaum 2006
A Simple Proof of the Uniform Consensus Synchronous Lower Bound
[Keidar, Rajsbaum IPL 02]
![Page 54: Lecture 4 Introduction to Principles of Distributed Computing](https://reader035.vdocuments.us/reader035/viewer/2022070421/5681604b550346895dcf7545/html5/thumbnails/54.jpg)
Sergio Rajsbaum 2006
Theorem: f+2 Lower Bound
• Assume n>t, and f < t-1• Lf(X0) - final states of runs with f failures
– connected – in any state in Lf(X0) exist at least 3 non-failed
processes and 2 can fail
• Take z, z’X0 s.t. val(z) val(z’), – let x, x’ be failure-free extensions of z, z’: x=z.(i,
[0])f Lf(X0)
![Page 55: Lecture 4 Introduction to Principles of Distributed Computing](https://reader035.vdocuments.us/reader035/viewer/2022070421/5681604b550346895dcf7545/html5/thumbnails/55.jpg)
Sergio Rajsbaum 2006
Exercise
1. Consider Modify the theorem and the proof of this talk for the consensus problem (instead of the uniform consensus problem)
![Page 56: Lecture 4 Introduction to Principles of Distributed Computing](https://reader035.vdocuments.us/reader035/viewer/2022070421/5681604b550346895dcf7545/html5/thumbnails/56.jpg)
Sergio Rajsbaum 2006
Upper Bounds From Part II
We saw that there are algorithms that take 2 rounds to decide in well-behaved runs
• <>S-based, -based, Paxos, COReL• Presented two of them.
![Page 57: Lecture 4 Introduction to Principles of Distributed Computing](https://reader035.vdocuments.us/reader035/viewer/2022070421/5681604b550346895dcf7545/html5/thumbnails/57.jpg)
Sergio Rajsbaum 2006
Why are there no 1-Round Algorithms?
There is a lower bound of 2 rounds in well-behaved executions
– Similar bounds shown in [Dwork, Skeen 83; Lamport 00]
• We will show that the bound follows from a similar bound on Uniform Consensus in the synchronous model
![Page 58: Lecture 4 Introduction to Principles of Distributed Computing](https://reader035.vdocuments.us/reader035/viewer/2022070421/5681604b550346895dcf7545/html5/thumbnails/58.jpg)
Sergio Rajsbaum 2006
Uniform Consensus
• Uniform agreement: decision of every two processes is the same
Recall: with consensus, only correct processes have to agree
![Page 59: Lecture 4 Introduction to Principles of Distributed Computing](https://reader035.vdocuments.us/reader035/viewer/2022070421/5681604b550346895dcf7545/html5/thumbnails/59.jpg)
Sergio Rajsbaum 2006
From Consensus to Uniform Consensus
In partial synchrony model, any algorithm A for consensus solves uniform consensus [Guerraoui 95]
Proof: Assume by contradiction that A does not solve uniform consensus– in some run, p,q decide differently, p fails– p may be non-faulty, and may wake up after q
decides
![Page 60: Lecture 4 Introduction to Principles of Distributed Computing](https://reader035.vdocuments.us/reader035/viewer/2022070421/5681604b550346895dcf7545/html5/thumbnails/60.jpg)
Sergio Rajsbaum 2006
Synchronous Uniform Consensus
Every algorithm has a well-behaved run that takes 2 rounds to decide
• More generally, it has a run with f failures (f<t-1), that takes at least f+2 rounds to decide [Charron-Bost, Schiper 00; KR 01]
– as opposed to f+1 for consensus
![Page 61: Lecture 4 Introduction to Principles of Distributed Computing](https://reader035.vdocuments.us/reader035/viewer/2022070421/5681604b550346895dcf7545/html5/thumbnails/61.jpg)
Sergio Rajsbaum 2006
Bibliography• Keidar and Rajsbaum, “A Simple Proof of the Uniform
Consensus Synchronous Lower Bound,” in IPL, Vol. 85, pp. 47-52, 2003.
• Keidar and Rajsbaum, “On the Cost of Fault-Tolerant Consensus When There Are No Faults” in Keidar’s page, including slides and papers.
• Moses, Rajsbaum, “A Layered Analysis of Consensus,” SIAM J. Comput. 31(4): 989-1021, 2002.
• Mostéfaoui, Rajsbaum, Raynal: Conditions on input vectors for consensus solvability in asynchronous distributed systems. J. ACM, 2003
![Page 62: Lecture 4 Introduction to Principles of Distributed Computing](https://reader035.vdocuments.us/reader035/viewer/2022070421/5681604b550346895dcf7545/html5/thumbnails/62.jpg)
Sergio Rajsbaum 2006