Lecture 11: More Paxos — Whiteboard Descriptions
These are text descriptions of the whiteboard PDF from the lecture on April 22, 2026. See also the whiteboard PDF and the notes.
These materials were drafted by AI based on the live whiteboard PDF and audio transcript from the corresponding lecture and then reviewed and edited by course staff. They may contain errors. Please let us know if you spot any.
Protocol Overview (recap from last time)
Diagram: A message-sequence chart with five vertical participant lines labeled left-to-right: P (proposer), A_1, A_2, A_3 (three acceptors), and L (learner). Time flows downward. A horizontal dashed line partway down splits the chart into two phases, annotated on the right as phase 1 (above) and phase 2 (below).
- Phase 1:
Psends1a(r)to each ofA_1,A_2,A_3. Each acceptor replies1b(r, summary)back toP. One reply is annotatedsummary = null. - Phase 2:
Psends2a(r, v)to each acceptor, and each acceptor sends2b(r, v)onward to the learnerL.
Phase 1
1a= prepare1b= prepare response
Protocol:
- proposer picks a round #
r - send
1a(r)to all acceptors - acceptors respond with
1b(r, summary)- summary:
- "I have never voted in round <
r" - new today: the highest #'d vote in a previous round:
2b(r', v')
- "I have never voted in round <
- summary:
- importantly, by sending a
1bmessage, acceptors also promise never again to vote in smaller rounds
Phase 2
2a= Accept2b= AcceptResponse (sent to learner)
Protocol:
- proposer waits for a majority of
1b - look at all
1bmsgs- if all have summary = null, then propose any value
- new today: otherwise, propose the value from the highest round number received
- send
2a(r, v)to all acceptors - acceptors send
2b(r, v)to learner if they can
Learner
- waits for a majority of
2bmsgs (all in the same round)
Chosen
chosen(r, v)= there is a majority of acceptors who have sent2b(r, v)msgschosen(v)= there is a roundrsuch thatchosen(r, v)
Example: Two Proposers, Overlapping Rounds
Diagram: A message-sequence chart with six participant lines labeled
left-to-right: P_1, P_2, A_1, A_2, A_3, L. Time flows downward. The
chart traces a scenario in which round 1 is partially accepted before round 2
begins.
- Near the top of
A_3's line, a vertical ellipsis (⋮) indicates prior activity, followed by an arrow labeled2b(1, v_1)going fromA_3toL. (That is,A_3has already voted forv_1in round 1.) P_2then runs phase 1 of round 2: arrows labeled1a(2)go fromP_2toA_1,A_2, andA_3.- Replies:
A_1andA_2both send1b(2, null)back toP_2(they never voted in previous rounds).A_3sends1b(2, (1, v_1))back toP_2(A_3's highest prior vote was forv_1in round 1).
- If the
1bmessages fromA_1andA_2are delivered toP_2, thenP_2has a majority of1bmessages withnullsummary, givingP_2permission to propose any value it likes. - On the other hand, if
A_3's1bmessage is received byP_2beforeA_2's, then it will contain a non-null summary in its majority of1bmessages, so it will propose the value fromA_3's earlier vote.
Fault handling
Diagram: A larger message-sequence chart showing the whole timeline, again with participants P_1, P_2, A_1, A_2, A_3, L.
- Round 1, driven by
P_1:P_1sends1a(1)toA_1,A_2,A_3.A_1andA_2both reply1b(1, null)toP_1.P_1sends2a(1, v_1)toA_1,A_2,A_3.- All three acceptors send
2b(1, v_1)toL. But the message gets dropped (small red X).
-
Round 2, driven by
P_2:P_2sends1a(2)to the acceptors.A_1andA_2both reply1b(2, (1, v_1))toP_2- the summary reports the previously accepted value
v_1from round 1.
- the summary reports the previously accepted value
P_2sends2a(2, v_1)to the acceptors, reusingv_1because of the non-null summary.- An acceptor sends
2b(2, v_1)toL.
-
The value can be chosen multiple times, but Paxos guarantees it will always be the same value chosen.
Votes Table
Diagram: A table with rows labeled by rounds (on the left, under the label "rounds") and columns labeled by acceptors A_1, A_2, A_3.
| rounds | A_1 | A_2 | A_3 |
|---|---|---|---|
| 1, v_1 | ✗ | ✗ | ✓ |
| 2, v_2 | ✓ | ✓ |
- Row
1, v_1:A_3voted,A_1andA_2did not. - Row
2, v_2:A_2andA_3voted,A_1did not.
Proposing different values in different rounds
Diagram: A message-sequence chart with three acceptor lines A_1, A_2, A_3 on the left and a learner line L on the right. Small vertical ellipses above A_2 and A_3 indicate prior activity. Three arrows head rightward to L, stacked top to bottom:
2b(1, v_1)— fromA_3toL.2b(2, v_2)— from (an acceptor, shown starting betweenA_2andA_3) toL.2b(3, {v_1, v_2})— fromA_1toL, indicating that eitherv_1orv_2could be proposed as its value in round 3.
With only three acceptors, a third different value accepted by at least one acceptor is not possible.