Lecture 10: Single-decree Paxos — Whiteboard Descriptions
These are text descriptions of the whiteboard PDF from the lecture on April 20, 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.
Diagram: A client-primary-backup sketch. Three boxes labeled C (client), P (primary), and B (backup) from left to right. An arrow from C to P and a return arrow from P to C. A pair of arrows between P and B in both directions.
Log based SMR
- MultiPaxos
- log
- decides values for each slot
slot = index into a log
Diagram: Three replica log drawings arranged around the page. Each replica is a rectangular box containing a row of log slots drawn as small vertical cells (like a strip of film), with some slots filled in. The three replicas all hold copies of the same log; the idea is that they decide on a value for each slot.
Single Decree Paxos
- Consensus problem
- agree on a value — choose
- nodes propose values
- Requirements
- chosen value was proposed
- at most 1 chosen value
- nobody thinks a value is chosen unless it was
Roles
Roles (≈ nodes, but not exactly):
- proposer — proposes values
- acceptor — votes on proposals
- learner — learns results
An execution has a fixed number of each role.
Ballots (Rounds)
- ballot number (monotonically increasing)
- proposed value
- allocate ballot numbers to proposers
- even/odd numbers for two proposers
Protocol Overview
Diagram: A message-sequence chart with five vertical lines for participants, labeled left-to-right: P (proposer), A_1, A_2, A_3 (three acceptors), and L (learner). Time flows downward. Annotations on the right split the chart into two phases, marked with arrows: phase 1 (upper portion) and phase 2 (lower portion), separated by a horizontal dashed line.
- Phase 1: Arrows labeled
1a(r)go fromPrightward to each ofA_1,A_2,A_3. Each acceptor replies with an arrow labeled1b(r, summary)back toP. - Phase 2: Arrows labeled
2a(r, v)go fromPto each acceptor. Each acceptor replies with an arrow labeled2b(r, v)going further right to the learnerL.
Phase 1
- proposer picks a round number
r - send
1a(r)to all acceptors - acceptors respond with
1b(r, summary)- summary:
- "I have never voted in round <
r" - TODO: if you voted (non-null summary case, to be filled in)
- "I have never voted in round <
- summary:
Phase 2
- proposer waits for a majority of
1b - look at all
1bmsgs- if all have summary = null, then propose any value
- TODO: non-null summary case
- 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)