Distributed Systems: Paxos - Cornell University€¦ · Korean food. I also want Thai food....
Transcript of Distributed Systems: Paxos - Cornell University€¦ · Korean food. I also want Thai food....
![Page 1: Distributed Systems: Paxos - Cornell University€¦ · Korean food. I also want Thai food. Agreement: If a correct deciding process decides v, then all correct deciding processes](https://reader033.fdocuments.us/reader033/viewer/2022050508/5f995d60c33e360cae61414c/html5/thumbnails/1.jpg)
Distributed Systems: PaxosBurcu Canakci & Matt Burke
![Page 2: Distributed Systems: Paxos - Cornell University€¦ · Korean food. I also want Thai food. Agreement: If a correct deciding process decides v, then all correct deciding processes](https://reader033.fdocuments.us/reader033/viewer/2022050508/5f995d60c33e360cae61414c/html5/thumbnails/2.jpg)
Outline1. Consensus2. The Part-Time Parliament3. Single-Decree Paxos4. Liveness5. Multi-Decree Paxos6. Paxos Variants7. Conclusion
![Page 3: Distributed Systems: Paxos - Cornell University€¦ · Korean food. I also want Thai food. Agreement: If a correct deciding process decides v, then all correct deciding processes](https://reader033.fdocuments.us/reader033/viewer/2022050508/5f995d60c33e360cae61414c/html5/thumbnails/3.jpg)
Outline1. Consensus2. The Part-Time Parliament3. Single-Decree Paxos4. Liveness5. Multi-Decree Paxos6. Paxos Variants7. Conclusion
![Page 4: Distributed Systems: Paxos - Cornell University€¦ · Korean food. I also want Thai food. Agreement: If a correct deciding process decides v, then all correct deciding processes](https://reader033.fdocuments.us/reader033/viewer/2022050508/5f995d60c33e360cae61414c/html5/thumbnails/4.jpg)
What is consensus?
Where do we want to go to
eat lunch?
![Page 5: Distributed Systems: Paxos - Cornell University€¦ · Korean food. I also want Thai food. Agreement: If a correct deciding process decides v, then all correct deciding processes](https://reader033.fdocuments.us/reader033/viewer/2022050508/5f995d60c33e360cae61414c/html5/thumbnails/5.jpg)
What is consensus?
I personally don’t care. Indifferent. I’m good with
anywhere.
![Page 6: Distributed Systems: Paxos - Cornell University€¦ · Korean food. I also want Thai food. Agreement: If a correct deciding process decides v, then all correct deciding processes](https://reader033.fdocuments.us/reader033/viewer/2022050508/5f995d60c33e360cae61414c/html5/thumbnails/6.jpg)
What is consensus?
Where do we want to go to
eat lunch?
![Page 7: Distributed Systems: Paxos - Cornell University€¦ · Korean food. I also want Thai food. Agreement: If a correct deciding process decides v, then all correct deciding processes](https://reader033.fdocuments.us/reader033/viewer/2022050508/5f995d60c33e360cae61414c/html5/thumbnails/7.jpg)
What is consensus?
I’d like Thai food.
I’m feeling Korean food.
I also want Thai food.
![Page 8: Distributed Systems: Paxos - Cornell University€¦ · Korean food. I also want Thai food. Agreement: If a correct deciding process decides v, then all correct deciding processes](https://reader033.fdocuments.us/reader033/viewer/2022050508/5f995d60c33e360cae61414c/html5/thumbnails/8.jpg)
What is consensus?
OK, let’s get Thai food.
OK, let’s get Thai food.
OK, let’s get Thai food.
![Page 9: Distributed Systems: Paxos - Cornell University€¦ · Korean food. I also want Thai food. Agreement: If a correct deciding process decides v, then all correct deciding processes](https://reader033.fdocuments.us/reader033/viewer/2022050508/5f995d60c33e360cae61414c/html5/thumbnails/9.jpg)
What is consensus?
Consensus is the problem of getting a set of processors to agree on some value.
![Page 10: Distributed Systems: Paxos - Cornell University€¦ · Korean food. I also want Thai food. Agreement: If a correct deciding process decides v, then all correct deciding processes](https://reader033.fdocuments.us/reader033/viewer/2022050508/5f995d60c33e360cae61414c/html5/thumbnails/10.jpg)
What is consensus?
OK, let’s get Thai food.
OK, let’s get Thai food.
OK, let’s get Thai food.
![Page 11: Distributed Systems: Paxos - Cornell University€¦ · Korean food. I also want Thai food. Agreement: If a correct deciding process decides v, then all correct deciding processes](https://reader033.fdocuments.us/reader033/viewer/2022050508/5f995d60c33e360cae61414c/html5/thumbnails/11.jpg)
What is consensus?More formally, consensus is the problem of satisfying the following properties:
● Validity● Agreement● Integrity● Termination
![Page 12: Distributed Systems: Paxos - Cornell University€¦ · Korean food. I also want Thai food. Agreement: If a correct deciding process decides v, then all correct deciding processes](https://reader033.fdocuments.us/reader033/viewer/2022050508/5f995d60c33e360cae61414c/html5/thumbnails/12.jpg)
What is consensus?More formally, consensus is the problem of satisfying the following properties:
● Validity○ If all processes that propose a value propose v, then all correct deciding processes eventually
decide v
● Agreement● Integrity● Termination
![Page 13: Distributed Systems: Paxos - Cornell University€¦ · Korean food. I also want Thai food. Agreement: If a correct deciding process decides v, then all correct deciding processes](https://reader033.fdocuments.us/reader033/viewer/2022050508/5f995d60c33e360cae61414c/html5/thumbnails/13.jpg)
What is consensus?
I’d like Thai food. Thai food. I also want
Thai food.
Validity: If all processes that propose a value propose v, then all correct deciding processes eventually decide v
![Page 14: Distributed Systems: Paxos - Cornell University€¦ · Korean food. I also want Thai food. Agreement: If a correct deciding process decides v, then all correct deciding processes](https://reader033.fdocuments.us/reader033/viewer/2022050508/5f995d60c33e360cae61414c/html5/thumbnails/14.jpg)
What is consensus?More formally, consensus is the problem of satisfying the following properties:
● Validity○ If all processes that propose a value propose v, then all correct deciding processes eventually
decide v
● Agreement○ If a correct deciding process decides v, then all correct deciding processes eventually decide v
● Integrity● Termination
![Page 15: Distributed Systems: Paxos - Cornell University€¦ · Korean food. I also want Thai food. Agreement: If a correct deciding process decides v, then all correct deciding processes](https://reader033.fdocuments.us/reader033/viewer/2022050508/5f995d60c33e360cae61414c/html5/thumbnails/15.jpg)
What is consensus?
I’d like Thai food.
I’m feeling Korean food.
I also want Thai food.
Agreement: If a correct deciding process decides v, then all correct deciding processes eventually decide v
OK, let’s get Thai food.
OK, let’s get Thai food.
OK, let’s get Thai food.
![Page 16: Distributed Systems: Paxos - Cornell University€¦ · Korean food. I also want Thai food. Agreement: If a correct deciding process decides v, then all correct deciding processes](https://reader033.fdocuments.us/reader033/viewer/2022050508/5f995d60c33e360cae61414c/html5/thumbnails/16.jpg)
What is consensus?More formally, consensus is the problem of satisfying the following properties:
● Validity○ If all processes that propose a value propose v, then all correct deciding processes eventually
decide v
● Agreement○ If a correct deciding process decides v, then all correct deciding processes eventually decide v
● Integrity○ Every correct deciding process decides at most one value, and if it decides v, then some
process must have proposed v
● Termination
![Page 17: Distributed Systems: Paxos - Cornell University€¦ · Korean food. I also want Thai food. Agreement: If a correct deciding process decides v, then all correct deciding processes](https://reader033.fdocuments.us/reader033/viewer/2022050508/5f995d60c33e360cae61414c/html5/thumbnails/17.jpg)
What is consensus?
I’d like Thai food.
I’m feeling Korean food.
I also want Thai food.
Integrity: Every correct deciding process decides at most one value, and if it decides v, then some process must have proposed v
![Page 18: Distributed Systems: Paxos - Cornell University€¦ · Korean food. I also want Thai food. Agreement: If a correct deciding process decides v, then all correct deciding processes](https://reader033.fdocuments.us/reader033/viewer/2022050508/5f995d60c33e360cae61414c/html5/thumbnails/18.jpg)
What is consensus?More formally, consensus is the problem of satisfying the following properties:
● Validity○ If all processes that propose a value propose v, then all correct deciding processes eventually
decide v
● Agreement○ If a correct deciding process decides v, then all correct deciding processes eventually decide v
● Integrity○ Every correct deciding process decides at most one value, and if it decides v, then some
process must have proposed v
● Termination○ Every correct learning process eventually learns some decided value
![Page 19: Distributed Systems: Paxos - Cornell University€¦ · Korean food. I also want Thai food. Agreement: If a correct deciding process decides v, then all correct deciding processes](https://reader033.fdocuments.us/reader033/viewer/2022050508/5f995d60c33e360cae61414c/html5/thumbnails/19.jpg)
What is consensus?
I’d like Thai food.
I’m feeling Korean food.
I also want Thai food.
Agreement: If a correct deciding process decides v, then all correct deciding processes eventually decide v
OK, let’s get Thai food.
OK, let’s get Thai food.
OK, let’s get Thai food.
Termination: Every correct learning process eventually learns some decided value
![Page 20: Distributed Systems: Paxos - Cornell University€¦ · Korean food. I also want Thai food. Agreement: If a correct deciding process decides v, then all correct deciding processes](https://reader033.fdocuments.us/reader033/viewer/2022050508/5f995d60c33e360cae61414c/html5/thumbnails/20.jpg)
Assumption about our model● Asynchronous, but reliable, network
![Page 21: Distributed Systems: Paxos - Cornell University€¦ · Korean food. I also want Thai food. Agreement: If a correct deciding process decides v, then all correct deciding processes](https://reader033.fdocuments.us/reader033/viewer/2022050508/5f995d60c33e360cae61414c/html5/thumbnails/21.jpg)
Assumption about our model● Asynchronous, but reliable, network
○ Every message is eventually delivered, but can be delayed arbitrarily long
![Page 22: Distributed Systems: Paxos - Cornell University€¦ · Korean food. I also want Thai food. Agreement: If a correct deciding process decides v, then all correct deciding processes](https://reader033.fdocuments.us/reader033/viewer/2022050508/5f995d60c33e360cae61414c/html5/thumbnails/22.jpg)
Assumption about our model● Asynchronous, but reliable, network
○ Every message is eventually delivered, but can be delayed arbitrarily long○ Processes can take arbitrarily long to transition between states
![Page 23: Distributed Systems: Paxos - Cornell University€¦ · Korean food. I also want Thai food. Agreement: If a correct deciding process decides v, then all correct deciding processes](https://reader033.fdocuments.us/reader033/viewer/2022050508/5f995d60c33e360cae61414c/html5/thumbnails/23.jpg)
Assumption about our model● Asynchronous, but reliable, network
○ Every message is eventually delivered, but can be delayed arbitrarily long○ Processes can take arbitrarily long to transition between states
● Processes can only fail by crashing
![Page 24: Distributed Systems: Paxos - Cornell University€¦ · Korean food. I also want Thai food. Agreement: If a correct deciding process decides v, then all correct deciding processes](https://reader033.fdocuments.us/reader033/viewer/2022050508/5f995d60c33e360cae61414c/html5/thumbnails/24.jpg)
Assumption about our model● Asynchronous, but reliable, network
○ Every message is eventually delivered, but can be delayed arbitrarily long○ Processes can take arbitrarily long to transition between states
● Processes can only fail by crashing○ No indication of failure; simply stops responding to messages
![Page 25: Distributed Systems: Paxos - Cornell University€¦ · Korean food. I also want Thai food. Agreement: If a correct deciding process decides v, then all correct deciding processes](https://reader033.fdocuments.us/reader033/viewer/2022050508/5f995d60c33e360cae61414c/html5/thumbnails/25.jpg)
Assumption about our model● Asynchronous, but reliable, network
○ Every message is eventually delivered, but can be delayed arbitrarily long○ Processes can take arbitrarily long to transition between states
● Processes can only fail by crashing○ No indication of failure; simply stops responding to messages○ Failed processes cannot arbitrarily transition or send arbitrary messages
![Page 26: Distributed Systems: Paxos - Cornell University€¦ · Korean food. I also want Thai food. Agreement: If a correct deciding process decides v, then all correct deciding processes](https://reader033.fdocuments.us/reader033/viewer/2022050508/5f995d60c33e360cae61414c/html5/thumbnails/26.jpg)
Timeline
Time, Clocks and OrderingState Machine Replication Paxos Published
1978 1984 1989
![Page 27: Distributed Systems: Paxos - Cornell University€¦ · Korean food. I also want Thai food. Agreement: If a correct deciding process decides v, then all correct deciding processes](https://reader033.fdocuments.us/reader033/viewer/2022050508/5f995d60c33e360cae61414c/html5/thumbnails/27.jpg)
Timeline
Time, Clocks and OrderingState Machine Replication Paxos Published
1978 1984 1989
Paxos Published In Journal
1998
![Page 28: Distributed Systems: Paxos - Cornell University€¦ · Korean food. I also want Thai food. Agreement: If a correct deciding process decides v, then all correct deciding processes](https://reader033.fdocuments.us/reader033/viewer/2022050508/5f995d60c33e360cae61414c/html5/thumbnails/28.jpg)
Timeline
Time, Clocks and OrderingState Machine Replication Paxos Published
1978 1984 1989
Paxos Published In Journal
1998
Paxos Made Simple
2001
![Page 29: Distributed Systems: Paxos - Cornell University€¦ · Korean food. I also want Thai food. Agreement: If a correct deciding process decides v, then all correct deciding processes](https://reader033.fdocuments.us/reader033/viewer/2022050508/5f995d60c33e360cae61414c/html5/thumbnails/29.jpg)
Timeline
Time, Clocks and OrderingState Machine Replication Paxos Published
1978 1984 1989
Paxos Published In Journal
1998
Paxos Made Simple
2001
2015
Paxos Made Moderately Complex
![Page 30: Distributed Systems: Paxos - Cornell University€¦ · Korean food. I also want Thai food. Agreement: If a correct deciding process decides v, then all correct deciding processes](https://reader033.fdocuments.us/reader033/viewer/2022050508/5f995d60c33e360cae61414c/html5/thumbnails/30.jpg)
Recall the Consensus Problem in the State Machine Approach
![Page 31: Distributed Systems: Paxos - Cornell University€¦ · Korean food. I also want Thai food. Agreement: If a correct deciding process decides v, then all correct deciding processes](https://reader033.fdocuments.us/reader033/viewer/2022050508/5f995d60c33e360cae61414c/html5/thumbnails/31.jpg)
Outline1. Consensus2. The Part-Time Parliament3. Single-Decree Paxos4. Liveness5. Multi-Decree Paxos6. Paxos Variants7. Conclusion
![Page 32: Distributed Systems: Paxos - Cornell University€¦ · Korean food. I also want Thai food. Agreement: If a correct deciding process decides v, then all correct deciding processes](https://reader033.fdocuments.us/reader033/viewer/2022050508/5f995d60c33e360cae61414c/html5/thumbnails/32.jpg)
The Part-Time Parliament- The Part-Time Parliament (1998)
Recent archaeological discoveries on the island of Paxos reveal that the parliament functioned despite the peripatetic propensity of its part-time legislators. The legislators maintained consistent copies of the parliamentary record, despite their frequent forays from the chamber and the forgetfulness of their messengers. The Paxon parliament’s protocol provides a new way of implementing the state machine approach to the design of distributed systems.
Leslie Lamport
![Page 33: Distributed Systems: Paxos - Cornell University€¦ · Korean food. I also want Thai food. Agreement: If a correct deciding process decides v, then all correct deciding processes](https://reader033.fdocuments.us/reader033/viewer/2022050508/5f995d60c33e360cae61414c/html5/thumbnails/33.jpg)
The Part-Time Parliament
![Page 34: Distributed Systems: Paxos - Cornell University€¦ · Korean food. I also want Thai food. Agreement: If a correct deciding process decides v, then all correct deciding processes](https://reader033.fdocuments.us/reader033/viewer/2022050508/5f995d60c33e360cae61414c/html5/thumbnails/34.jpg)
The Part-Time Parliament- The Part-Time Parliament (1998)
Recent archaeological discoveries on the island of Paxos reveal that the parliament functioned despite the peripatetic propensity of its part-time legislators. The legislators maintained consistent copies of the parliamentary record, despite their frequent forays from the chamber and the forgetfulness of their messengers. The Paxon parliament’s protocol provides a new way of implementing the state machine approach to the design of distributed systems.
- Paxos Made Simple (2001)
The Paxos algorithm, when presented in plain English, is very simple.
Leslie Lamport
![Page 35: Distributed Systems: Paxos - Cornell University€¦ · Korean food. I also want Thai food. Agreement: If a correct deciding process decides v, then all correct deciding processes](https://reader033.fdocuments.us/reader033/viewer/2022050508/5f995d60c33e360cae61414c/html5/thumbnails/35.jpg)
Paxos Made Moderately Complex- Paxos Made Moderately Complex (2015)
This article explains the full reconfigurable multidecree Paxos (or multi-Paxos) protocol. Paxos is by no means a simple protocol, even though it is based on relatively simple invariants. We provide pseudocode and explain it guided by invariants.
Robbert Van Renesse Deniz Altinbuken
![Page 36: Distributed Systems: Paxos - Cornell University€¦ · Korean food. I also want Thai food. Agreement: If a correct deciding process decides v, then all correct deciding processes](https://reader033.fdocuments.us/reader033/viewer/2022050508/5f995d60c33e360cae61414c/html5/thumbnails/36.jpg)
Outline1. Consensus2. The Part-Time Parliament3. Single-Decree Paxos4. Liveness5. Multi-Decree Paxos6. Paxos Variants7. Conclusion
![Page 37: Distributed Systems: Paxos - Cornell University€¦ · Korean food. I also want Thai food. Agreement: If a correct deciding process decides v, then all correct deciding processes](https://reader033.fdocuments.us/reader033/viewer/2022050508/5f995d60c33e360cae61414c/html5/thumbnails/37.jpg)
Roles in Protocol
● Validity○ If all processes that propose a value propose v, then all correct deciding
processes eventually decide v● Agreement
○ If a correct deciding process decides v, then all correct deciding processes eventually decide v
● Integrity○ Every correct deciding process decides at most one value, and if it decides v,
then some process must have proposed v● Termination
○ Every correct learning process eventually learns some decided value
![Page 38: Distributed Systems: Paxos - Cornell University€¦ · Korean food. I also want Thai food. Agreement: If a correct deciding process decides v, then all correct deciding processes](https://reader033.fdocuments.us/reader033/viewer/2022050508/5f995d60c33e360cae61414c/html5/thumbnails/38.jpg)
Roles in Protocol
● Validity○ If all processes that propose a value propose v, then all correct deciding
processes eventually decide v● Agreement
○ If a correct deciding process decides v, then all correct deciding processes eventually decide v
● Integrity○ Every correct deciding process decides at most one value, and if it decides v,
then some process must have proposed v● Termination
○ Every correct learning process eventually learns some decided value
Proposers Acceptors Learners
![Page 39: Distributed Systems: Paxos - Cornell University€¦ · Korean food. I also want Thai food. Agreement: If a correct deciding process decides v, then all correct deciding processes](https://reader033.fdocuments.us/reader033/viewer/2022050508/5f995d60c33e360cae61414c/html5/thumbnails/39.jpg)
Constructing a ProtocolProposer
Do nothing
Acceptor
Let vdecided = v0 and send decide(v0) to learners
![Page 40: Distributed Systems: Paxos - Cornell University€¦ · Korean food. I also want Thai food. Agreement: If a correct deciding process decides v, then all correct deciding processes](https://reader033.fdocuments.us/reader033/viewer/2022050508/5f995d60c33e360cae61414c/html5/thumbnails/40.jpg)
Constructing a Protocol
decide(v0)
Integrity: Every correct deciding process decides at most one value, and if it decides v, then some process must have proposed v
![Page 41: Distributed Systems: Paxos - Cornell University€¦ · Korean food. I also want Thai food. Agreement: If a correct deciding process decides v, then all correct deciding processes](https://reader033.fdocuments.us/reader033/viewer/2022050508/5f995d60c33e360cae61414c/html5/thumbnails/41.jpg)
Constructing a ProtocolProposer
When have value v to propose
● Send propose(v) to acceptors
Acceptor
On receive propose(v)
● If not yet decided, let vdecided = v and send decide(v) to learners
![Page 42: Distributed Systems: Paxos - Cornell University€¦ · Korean food. I also want Thai food. Agreement: If a correct deciding process decides v, then all correct deciding processes](https://reader033.fdocuments.us/reader033/viewer/2022050508/5f995d60c33e360cae61414c/html5/thumbnails/42.jpg)
Constructing a Protocol
propose(v)
???
propose(v)
propose(v)
Termination: Every correct learning process eventually learns some decided value
![Page 43: Distributed Systems: Paxos - Cornell University€¦ · Korean food. I also want Thai food. Agreement: If a correct deciding process decides v, then all correct deciding processes](https://reader033.fdocuments.us/reader033/viewer/2022050508/5f995d60c33e360cae61414c/html5/thumbnails/43.jpg)
Constructing a ProtocolProposer
When have value v to propose
● Send propose(v) to acceptors
Acceptor
On receive propose(v)
● If not yet decided, let vdecided = v
When majority of correct acceptors have decided v
● Send decide(v) to learners
![Page 44: Distributed Systems: Paxos - Cornell University€¦ · Korean food. I also want Thai food. Agreement: If a correct deciding process decides v, then all correct deciding processes](https://reader033.fdocuments.us/reader033/viewer/2022050508/5f995d60c33e360cae61414c/html5/thumbnails/44.jpg)
Constructing a Protocol
propose(v)
propose(v)
decide(v)
decide(v)
propose(v)
![Page 45: Distributed Systems: Paxos - Cornell University€¦ · Korean food. I also want Thai food. Agreement: If a correct deciding process decides v, then all correct deciding processes](https://reader033.fdocuments.us/reader033/viewer/2022050508/5f995d60c33e360cae61414c/html5/thumbnails/45.jpg)
v’
v’’
v
Constructing a Protocol
propose(v’)
propose(v’’)
propose(v)
???
Agreement: If a correct deciding process decides v, then all correct deciding processes eventually decide v
![Page 46: Distributed Systems: Paxos - Cornell University€¦ · Korean food. I also want Thai food. Agreement: If a correct deciding process decides v, then all correct deciding processes](https://reader033.fdocuments.us/reader033/viewer/2022050508/5f995d60c33e360cae61414c/html5/thumbnails/46.jpg)
prepare(1)promise(1)propose(v’,1)
prepare(0)promise(0)
0
01
0
Constructing a Protocol
1
1propose(v,0)
v’,1
v’,1
v’,1decide(v’)
decide(v’)
decide(v’)
Ballot number: unique natural number associated with each proposal made by any proposer
![Page 47: Distributed Systems: Paxos - Cornell University€¦ · Korean food. I also want Thai food. Agreement: If a correct deciding process decides v, then all correct deciding processes](https://reader033.fdocuments.us/reader033/viewer/2022050508/5f995d60c33e360cae61414c/html5/thumbnails/47.jpg)
Constructing a ProtocolProposer
When have value v to propose
● Send prepare(b) to acceptors, where b is the highest ballot number not yet used that is known to the proposer
When have majority of acceptors’ promises for proposal b
● Send propose(v,b) to acceptors
Acceptor
On receive prepare(b)
● If b > bpromised, let bpromised = b and respond with promise(b)
On receive propose(v,b)
● If b = bpromised, let vdecided = v
When majority of correct acceptors have decided v
● Send decide(v) to learners
![Page 48: Distributed Systems: Paxos - Cornell University€¦ · Korean food. I also want Thai food. Agreement: If a correct deciding process decides v, then all correct deciding processes](https://reader033.fdocuments.us/reader033/viewer/2022050508/5f995d60c33e360cae61414c/html5/thumbnails/48.jpg)
decide(v’)
decide(v’)
decide(v’)
decide(v)
decide(v)
decide(v)
prepare(1)promise(1)propose(v’,1)
prepare(0)promise(0)
0
0v,0
v,0
0v,0
v,1
Constructing a Protocol
v,1
v,1propose(v,0)
v’,1
v’,1
v’,1
vv’
Integrity: Every correct deciding process decides at most one value, and if it decides v, then some process must have proposed v
![Page 49: Distributed Systems: Paxos - Cornell University€¦ · Korean food. I also want Thai food. Agreement: If a correct deciding process decides v, then all correct deciding processes](https://reader033.fdocuments.us/reader033/viewer/2022050508/5f995d60c33e360cae61414c/html5/thumbnails/49.jpg)
Constructing a ProtocolProposer
When have value v to propose
● Send prepare(b) to acceptors, where b is the highest ballot number not yet used that is known to the proposer
When have majority of acceptors’ promises for proposal b
● Send propose(v,b) to acceptors, where v is the value of the highest accepted proposal, or any value if no proposal accepted
Acceptor
On receive prepare(b)
● If b > bpromised, let bpromised = b and respond with promise(b, vdecided)
On receive propose(v,b)
● If b = bpromised, let vdecided = v
When majority of correct acceptors have decided v
● Send decide(v) to learners
![Page 50: Distributed Systems: Paxos - Cornell University€¦ · Korean food. I also want Thai food. Agreement: If a correct deciding process decides v, then all correct deciding processes](https://reader033.fdocuments.us/reader033/viewer/2022050508/5f995d60c33e360cae61414c/html5/thumbnails/50.jpg)
Constructing a Protocol PaxosProposer
When have value v to propose
● Send prepare(b) to acceptors, where b is the highest ballot number not yet used that is known to the proposer
When have majority of acceptors’ promises for proposal b
● Send propose(v,b) to acceptors, where v is the value of the highest accepted proposal, or any value if no proposal accepted
Acceptor
On receive prepare(b)
● If b > bpromised, let bpromised = b and respond with promise(b, vdecided)
On receive propose(v,b)
● If b = bpromised, let vdecided = v
When majority of correct acceptors have decided v
● Send decide(v) to learners
![Page 51: Distributed Systems: Paxos - Cornell University€¦ · Korean food. I also want Thai food. Agreement: If a correct deciding process decides v, then all correct deciding processes](https://reader033.fdocuments.us/reader033/viewer/2022050508/5f995d60c33e360cae61414c/html5/thumbnails/51.jpg)
Outline1. Consensus2. The Part-Time Parliament3. Single-Decree Paxos4. Liveness5. Multi-Decree Paxos6. Paxos Variants7. Conclusion
![Page 52: Distributed Systems: Paxos - Cornell University€¦ · Korean food. I also want Thai food. Agreement: If a correct deciding process decides v, then all correct deciding processes](https://reader033.fdocuments.us/reader033/viewer/2022050508/5f995d60c33e360cae61414c/html5/thumbnails/52.jpg)
Liveness
- Something good eventually happens- Progress is made
- An action is always eventually executed
![Page 53: Distributed Systems: Paxos - Cornell University€¦ · Korean food. I also want Thai food. Agreement: If a correct deciding process decides v, then all correct deciding processes](https://reader033.fdocuments.us/reader033/viewer/2022050508/5f995d60c33e360cae61414c/html5/thumbnails/53.jpg)
Liveness
- Something good eventually happens- Progress is made
- An action is always eventually executed
- In consensus
● Termination○ Every correct learning process eventually learns some decided value
![Page 54: Distributed Systems: Paxos - Cornell University€¦ · Korean food. I also want Thai food. Agreement: If a correct deciding process decides v, then all correct deciding processes](https://reader033.fdocuments.us/reader033/viewer/2022050508/5f995d60c33e360cae61414c/html5/thumbnails/54.jpg)
Liveness
- Something good eventually happens- Progress is made
- An action is always eventually executed
- In consensus
Does Paxos guarantee liveness?
● Termination○ Every correct learning process eventually learns some decided value
![Page 55: Distributed Systems: Paxos - Cornell University€¦ · Korean food. I also want Thai food. Agreement: If a correct deciding process decides v, then all correct deciding processes](https://reader033.fdocuments.us/reader033/viewer/2022050508/5f995d60c33e360cae61414c/html5/thumbnails/55.jpg)
prepare(0)
Scenario
![Page 56: Distributed Systems: Paxos - Cornell University€¦ · Korean food. I also want Thai food. Agreement: If a correct deciding process decides v, then all correct deciding processes](https://reader033.fdocuments.us/reader033/viewer/2022050508/5f995d60c33e360cae61414c/html5/thumbnails/56.jpg)
promise(0)
0
0
0
Scenario
![Page 57: Distributed Systems: Paxos - Cornell University€¦ · Korean food. I also want Thai food. Agreement: If a correct deciding process decides v, then all correct deciding processes](https://reader033.fdocuments.us/reader033/viewer/2022050508/5f995d60c33e360cae61414c/html5/thumbnails/57.jpg)
prepare(1)
0
0
0
Scenario
![Page 58: Distributed Systems: Paxos - Cornell University€¦ · Korean food. I also want Thai food. Agreement: If a correct deciding process decides v, then all correct deciding processes](https://reader033.fdocuments.us/reader033/viewer/2022050508/5f995d60c33e360cae61414c/html5/thumbnails/58.jpg)
promise(1)
1
1
1
Scenario
![Page 59: Distributed Systems: Paxos - Cornell University€¦ · Korean food. I also want Thai food. Agreement: If a correct deciding process decides v, then all correct deciding processes](https://reader033.fdocuments.us/reader033/viewer/2022050508/5f995d60c33e360cae61414c/html5/thumbnails/59.jpg)
propose(v, 0)
1
1
1
Scenario
![Page 60: Distributed Systems: Paxos - Cornell University€¦ · Korean food. I also want Thai food. Agreement: If a correct deciding process decides v, then all correct deciding processes](https://reader033.fdocuments.us/reader033/viewer/2022050508/5f995d60c33e360cae61414c/html5/thumbnails/60.jpg)
prepare(3)
3
3
3
Scenario
![Page 61: Distributed Systems: Paxos - Cornell University€¦ · Korean food. I also want Thai food. Agreement: If a correct deciding process decides v, then all correct deciding processes](https://reader033.fdocuments.us/reader033/viewer/2022050508/5f995d60c33e360cae61414c/html5/thumbnails/61.jpg)
promise(3)
3
3
3
Scenario
._.
![Page 62: Distributed Systems: Paxos - Cornell University€¦ · Korean food. I also want Thai food. Agreement: If a correct deciding process decides v, then all correct deciding processes](https://reader033.fdocuments.us/reader033/viewer/2022050508/5f995d60c33e360cae61414c/html5/thumbnails/62.jpg)
propose(v’, 1)
3
3
3
Scenario
._.
![Page 63: Distributed Systems: Paxos - Cornell University€¦ · Korean food. I also want Thai food. Agreement: If a correct deciding process decides v, then all correct deciding processes](https://reader033.fdocuments.us/reader033/viewer/2022050508/5f995d60c33e360cae61414c/html5/thumbnails/63.jpg)
prepare(4)
3
3
3
Scenario
-_-
![Page 64: Distributed Systems: Paxos - Cornell University€¦ · Korean food. I also want Thai food. Agreement: If a correct deciding process decides v, then all correct deciding processes](https://reader033.fdocuments.us/reader033/viewer/2022050508/5f995d60c33e360cae61414c/html5/thumbnails/64.jpg)
promise(4)
4
4
4
Scenario
![Page 65: Distributed Systems: Paxos - Cornell University€¦ · Korean food. I also want Thai food. Agreement: If a correct deciding process decides v, then all correct deciding processes](https://reader033.fdocuments.us/reader033/viewer/2022050508/5f995d60c33e360cae61414c/html5/thumbnails/65.jpg)
Outline1. Consensus2. The Part-Time Parliament3. Single-Decree Paxos4. Liveness5. Multi-Decree Paxos6. Paxos Variants7. Conclusion
![Page 66: Distributed Systems: Paxos - Cornell University€¦ · Korean food. I also want Thai food. Agreement: If a correct deciding process decides v, then all correct deciding processes](https://reader033.fdocuments.us/reader033/viewer/2022050508/5f995d60c33e360cae61414c/html5/thumbnails/66.jpg)
Consider Input Ordering in SMR
![Page 67: Distributed Systems: Paxos - Cornell University€¦ · Korean food. I also want Thai food. Agreement: If a correct deciding process decides v, then all correct deciding processes](https://reader033.fdocuments.us/reader033/viewer/2022050508/5f995d60c33e360cae61414c/html5/thumbnails/67.jpg)
Paxos Made Moderately Complex
![Page 68: Distributed Systems: Paxos - Cornell University€¦ · Korean food. I also want Thai food. Agreement: If a correct deciding process decides v, then all correct deciding processes](https://reader033.fdocuments.us/reader033/viewer/2022050508/5f995d60c33e360cae61414c/html5/thumbnails/68.jpg)
Paxos Made Moderately Complex
Proposers
![Page 69: Distributed Systems: Paxos - Cornell University€¦ · Korean food. I also want Thai food. Agreement: If a correct deciding process decides v, then all correct deciding processes](https://reader033.fdocuments.us/reader033/viewer/2022050508/5f995d60c33e360cae61414c/html5/thumbnails/69.jpg)
Paxos Made Moderately Complex
ProposersLearners
![Page 70: Distributed Systems: Paxos - Cornell University€¦ · Korean food. I also want Thai food. Agreement: If a correct deciding process decides v, then all correct deciding processes](https://reader033.fdocuments.us/reader033/viewer/2022050508/5f995d60c33e360cae61414c/html5/thumbnails/70.jpg)
Paxos Made Moderately Complex
ProposersLearners
Acceptors
Somewhere here
![Page 71: Distributed Systems: Paxos - Cornell University€¦ · Korean food. I also want Thai food. Agreement: If a correct deciding process decides v, then all correct deciding processes](https://reader033.fdocuments.us/reader033/viewer/2022050508/5f995d60c33e360cae61414c/html5/thumbnails/71.jpg)
Paxos Made Moderately Complex
ProposersLearners
Acceptors
Somewhere here
![Page 72: Distributed Systems: Paxos - Cornell University€¦ · Korean food. I also want Thai food. Agreement: If a correct deciding process decides v, then all correct deciding processes](https://reader033.fdocuments.us/reader033/viewer/2022050508/5f995d60c33e360cae61414c/html5/thumbnails/72.jpg)
Paxos Made Moderately Complex
![Page 73: Distributed Systems: Paxos - Cornell University€¦ · Korean food. I also want Thai food. Agreement: If a correct deciding process decides v, then all correct deciding processes](https://reader033.fdocuments.us/reader033/viewer/2022050508/5f995d60c33e360cae61414c/html5/thumbnails/73.jpg)
Paxos Made Moderately Complex
Prepare
![Page 74: Distributed Systems: Paxos - Cornell University€¦ · Korean food. I also want Thai food. Agreement: If a correct deciding process decides v, then all correct deciding processes](https://reader033.fdocuments.us/reader033/viewer/2022050508/5f995d60c33e360cae61414c/html5/thumbnails/74.jpg)
Paxos Made Moderately Complex
Prepare
Promise
![Page 75: Distributed Systems: Paxos - Cornell University€¦ · Korean food. I also want Thai food. Agreement: If a correct deciding process decides v, then all correct deciding processes](https://reader033.fdocuments.us/reader033/viewer/2022050508/5f995d60c33e360cae61414c/html5/thumbnails/75.jpg)
Paxos Made Moderately Complex
Prepare
Promise
Propose
![Page 76: Distributed Systems: Paxos - Cornell University€¦ · Korean food. I also want Thai food. Agreement: If a correct deciding process decides v, then all correct deciding processes](https://reader033.fdocuments.us/reader033/viewer/2022050508/5f995d60c33e360cae61414c/html5/thumbnails/76.jpg)
Paxos Made Moderately Complex
Prepare
Promise
Propose
![Page 77: Distributed Systems: Paxos - Cornell University€¦ · Korean food. I also want Thai food. Agreement: If a correct deciding process decides v, then all correct deciding processes](https://reader033.fdocuments.us/reader033/viewer/2022050508/5f995d60c33e360cae61414c/html5/thumbnails/77.jpg)
Paxos Made Moderately Complex
-
Prepare
Promise
Propose
can both be preempted by a higher ballot number being
reported
![Page 78: Distributed Systems: Paxos - Cornell University€¦ · Korean food. I also want Thai food. Agreement: If a correct deciding process decides v, then all correct deciding processes](https://reader033.fdocuments.us/reader033/viewer/2022050508/5f995d60c33e360cae61414c/html5/thumbnails/78.jpg)
Outline1. Consensus2. The Part-Time Parliament3. Single-Decree Paxos4. Liveness5. Multi-Decree Paxos6. Paxos Variants7. Conclusion
![Page 79: Distributed Systems: Paxos - Cornell University€¦ · Korean food. I also want Thai food. Agreement: If a correct deciding process decides v, then all correct deciding processes](https://reader033.fdocuments.us/reader033/viewer/2022050508/5f995d60c33e360cae61414c/html5/thumbnails/79.jpg)
Paxos Variants● Fast Paxos● Generalized Paxos● Disk Paxos● Cheap Paxos● Vertical Paxos● Egalitarian Paxos● Mencius● Stoppable Paxos
![Page 80: Distributed Systems: Paxos - Cornell University€¦ · Korean food. I also want Thai food. Agreement: If a correct deciding process decides v, then all correct deciding processes](https://reader033.fdocuments.us/reader033/viewer/2022050508/5f995d60c33e360cae61414c/html5/thumbnails/80.jpg)
Paxos in Real Systems● Chubby● Google Spanner● Megastore● OpenReplica● Bing● WANDisco● XtreemFS● Doozerd● Ceph● Clustrix● Neo4j
![Page 81: Distributed Systems: Paxos - Cornell University€¦ · Korean food. I also want Thai food. Agreement: If a correct deciding process decides v, then all correct deciding processes](https://reader033.fdocuments.us/reader033/viewer/2022050508/5f995d60c33e360cae61414c/html5/thumbnails/81.jpg)
Outline1. Consensus2. The Part-Time Parliament3. Single-Decree Paxos4. Liveness5. Multi-Decree Paxos6. Paxos Variants7. Conclusion
![Page 82: Distributed Systems: Paxos - Cornell University€¦ · Korean food. I also want Thai food. Agreement: If a correct deciding process decides v, then all correct deciding processes](https://reader033.fdocuments.us/reader033/viewer/2022050508/5f995d60c33e360cae61414c/html5/thumbnails/82.jpg)
Conclusion● Paxos is a protocol for solving the consensus problem in an asynchronous
distributed environment with processors that can fail by crashing● A replicated state machine can be built by maintaining a distributed
command log where the command at each position in the log is decided by solving consensus
● Correctly and efficiently implementing a replicated state machine using Paxos is notoriously difficult