Paxos: intersection carries information only with invariants
Trace a single-decree Paxos prepare and accept exchange, including persistent promises and the highest-accepted-value selection rule.
On this page
The question for today
What you’ll understand
- Calculate a lower bound on majority intersection.
- Select a phase-two value from phase-one responses correctly.
- Explain why persistent promises and accepted records are essential to the argument.
Two majorities overlap, but a common machine can vote for contradictory decisions unless the protocol constrains what it remembers and how later proposals use that memory. Single-decree Paxos makes those constraints explicit. We study one value slot, with unique ordered ballot numbers, correct acceptors, and crash-recovery storage. This is a foundation for replicated logs, not an instruction to build a production multi-decree implementation from three messages and a majority formula.
Why a shared acceptor is only the beginning
A proposal pairs a ballot number with one value. Ballots are globally unique and totally ordered, often represented by a counter and proposer identity with a defined comparison. The same ballot must never be reused for a different value. A value becomes chosen when the protocol's accepting quorum has accepted that proposal. This fact can be true even if the proposer crashes before reporting success, so a later proposer must preserve possibly chosen history rather than requiring an old client acknowledgement as evidence.
For the ordinary majority version, any preparing quorum intersects every accepting quorum. That shared acceptor is an information bridge only because it retains its accepted ballot and value and honors its promises. If it could forget them on restart, set intersection would remain mathematically true while the safety argument collapsed. Generalized quorum systems can use different phase-one and phase-two shapes, but their required cross-phase intersection and selection invariants must be proved; arbitrary small quorums cannot be substituted into the majority example.
Prepare establishes a promise and collects history
A proposer begins with a fresh ballot and sends prepare requests. An acceptor that can promise that ballot records a promise not to accept lower ballots and reports its highest accepted proposal, if any. The promise and relevant records must survive a crash before the response is sent. Once the proposer has a qualifying set of responses, it chooses the value attached to the highest accepted ballot among them. It may choose a new proposed value only if none reports an accepted proposal for this slot.
The selection rule is deliberately conservative. An accepted proposal reported by one responder might never have reached a quorum, yet another earlier value might already have been chosen. The induction behind Paxos ensures the highest reported accepted proposal carries the value that must be preserved when a prior choice exists. Do not replace the rule with the most common reported value, the newest client request, or the proposer's preferred value. A quorum is not an informal opinion poll: ballots determine which reported history controls the next proposal.
Accept, learn, and retry without changing the meaning
In phase two the proposer asks acceptors to accept its selected ballot-value pair. An acceptor must reject a request below a promise it has already made. Accepted state is persisted before a positive acceptance response is allowed to count. Reaching the required accepting quorum chooses the value, while notifying a learner or client is a later observation. Competing proposers can repeatedly preempt each other with larger ballots, preserving safety while preventing progress. Stable proposer selection or suitable backoff addresses progress without weakening the selection rule.
The reliability lab can display a majority threshold, not this two-phase history. Choose Reset, explicitly set n=5 and k=2, predict three available acceptors, then Play or Step. Reset and explicitly set n=7 and k=3 for another four-voter majority. The lab does not reveal quorum membership identities, promised ballots, accepted values, or persistence. Use the numerical readout alongside a hand-written set intersection and response table; it cannot demonstrate that the highest-accepted-value rule was followed.
Work it through
Carry forward an earlier accepted value
Five acceptors A through E use majority three. Ballot seven with value X was accepted by A, B, and C. A new proposer obtains valid prepare promises for ballot twelve from C, D, and E. C reports (7,X), while D and E report no accepted proposal.
The earlier accepting quorum {A,B,C} and new preparing quorum {C,D,E} intersect at C. Their cardinality bound is 3+3−5=1, matching the visible intersection.
Among the three prepare responses, the highest reported accepted ballot is seven, attached to X. Therefore the new proposal at ballot twelve must carry X, even if the proposer originally wanted Y and the original client never received a reply.
If the selected ballot-twelve proposal is accepted durably by another majority, it chooses X again. A delayed ballot-seven acceptance request must be rejected by any acceptor that has promised twelve, preventing old work from ignoring the new phase-one constraints.
Quorum overlap transports the accepted record, and the value-selection rule preserves X. Overlap without memory and selection would not establish this conclusion.
The living notebook
Explore the model
Interactive lab · reliability
A quorum count is not an accepted-value table
Reset, explicitly set both n=5 and k=2, predict the majority readout, then Play or Step. For a fresh comparison Reset and explicitly set n=7 and k=3. This toy omits acceptor identities, ballot promises, phase-one reports, and chosen values.
- Available replicas
- 4 of 5
- Majority needed
- 3
- Majority available?
- Yes
A replica count and a majority threshold, without a consensus protocol. Playback highlights fixed replica states. Having a majority alone does not establish linearizability, durability or failure independence. Parameter changes pause playback and recompute the model at the current elapsed time. Reset restores both parameters and returns time to zero. Playback starts paused. Adjust either parameter, then choose Play or Step.
Look forUse the lab for counts, then construct the actual intersecting sets and accepted-ballot table by hand; the animation does not run Paxos.
Pause & reason
Check your understanding
Your turn
Try it yourself
Seven acceptors use majority four. Let Q1={A,B,C,D} and Q2={D,E,F,G}. Find the intersection and its lower bound. If D reports an accepted proposal but loses that record after acknowledging its new promise, which proof assumption has failed?
Take a moment to make a prediction or work it out on paper. Open a hint when you need one.
Give me a hint
Apply inclusion-exclusion to the common seven-node universe, then identify what makes the shared acceptor informative across a crash.
Compare with the solution
The intersection is {D}, and the bound is 4+4−7=1. D is the only common member in this example. Losing acknowledged promise or accepted state violates the stable-storage assumption that connects earlier acceptance to later preparation. The two sets still intersect, but the returning node can no longer supply or enforce the history the protocol requires. Availability counts alone cannot detect or repair this broken invariant.
Keep the idea
Take it with you
- Cross-phase quorum intersection needs persistent records to carry history.
- The highest reported accepted ballot determines the phase-two value.
- A chosen value and a client learning that fact are separate events.
Read further
Original sources and deeper explanations to follow at your own pace.
Optional progress, saved in this browser when available. Revisit any lesson at any time.
Lesson not marked complete.