Contradiction in Lamport's Paxos made simple paper
Master System Design with Codemia
Enhance your system design skills with over 120 practice problems, detailed solutions, and hands-on exercises.
Paxos is one of the most influential algorithms in distributed computing, particularly known for solving consensus in networks where components might experience partial failures. Leslie Lamport's 2001 paper, "Paxos Made Simple," aims to demystify the algorithm. However, there's often discussion about apparent contradictions within the paper and its application. In this article, we delve into one such contradiction, explaining technical nuances where applicable.
Understanding Paxos
Before we explore the contradiction, a brief recap of the Paxos algorithm will be useful. Paxos is designed to achieve consensus among distributed systems by electing a single value among a set of proposed values, ensuring that consensus is reached even if some nodes fail.
Key Components
- Proposers: Nodes that propose values.
- Acceptors: Nodes that accept proposed values.
- Learners: Nodes that learn the consensus result.
Each acceptor can accept only one value per instance, and the algorithm guarantees that only one value is chosen.
Algorithm Rounds
Paxos operates in rounds, consisting of:
- Prepare Phase: A proposer selects a proposal number and sends a prepare request to a majority of acceptors.
- Promise Response: Acceptors respond to preparers with a promise not to accept lower-numbered proposals and optionally a prior accepted proposal.
- Propose Phase: Based on responses, the proposer sends a proposal with value to acceptors.
- Accept Phase: Acceptors may accept the proposal if it meets specific conditions.
The Contradiction
The main contradiction centers around Lamport’s explanation of what values proposers should choose during the propose phase, and how learners become aware of the chosen value.
Claimed Contradiction
- Value Selection:
- In one section, Lamport suggests that a proposer should propose its own value unless it has received a promise from at least one acceptor containing a previously accepted proposal.
- Elsewhere, the suggestion indicates that proposers should always use the value from the highest-numbered proposal in the promise responses.
- Learning the Value:
- Lamport mentions that learners automatically learn the agreed value after it is selected by an acceptor majority.
- However, it's not clear from the text how this information precisely propagates to all learners, since the algorithm does not specify this in detail.
Technical Explanation of the Contradiction
Value Selection in Propose Phase
The contradiction arises from the dual role given to proposers:
- Optimal Strategy: A proposer should pick the value from the highest-numbered previous proposal it receives during the promise phase to prevent conflicts, even if it conflicts with its own intended proposal. This contrasts with the implication that proposers can opt for their own values freely if no accepted proposal exists.
- Conflict Resolution: The underlying logic is to prevent separate proposer decisions that could lead to multiple competing proposals in different rounds, risking non-consensus.
Propagation to Learners
The paper ambiguously describes how all learners become aware of a chosen value:
- Role of Acceptors and Learners: While acceptors know the chosen value, the transition path for this knowledge to reach learners lacks detail. The implication is that acceptors would need to communicate directly with learners, which is not explicitly discussed, leading to uncertainty.
Technical Examples
Consider a scenario where multiple proposers and acceptors exist:
- Scenario:
- Proposer P1 proposes value V1 in round n.
- Proposer P2 enters a new round n + 1 without receiving any accepted values but with a higher proposal number.
- Resolution Strategy:
- P2 must choose V1 if it receives a promise response indicating that V1 was part of an accepted proposal in its prepare phase.
- This guides the system towards achieving consensus on V1 instead of introducing a new conflicting value.
Table: Key Paxos Contradiction and Resolution Points
| Aspect | Contradiction | Resolution |
| Value Selection | Should proposers prefer their own values or the highest-numbered received proposal? | Always choose the value from the highest-numbered proposal received. |
| Propagation to Learners | How do learners automatically learn the chosen value? | Ensure acceptors explicitly transmit chosen values to all learners. |
| Conflicting Proposals | Proposers may introduce conflicting values if working independently. | Proposers need to adhere strictly to the highest-numbered proposal rules. |
| Acceptors-to-Learners Path | Lack of clarity in how values propagate from acceptors to learners. | Propose an explicit communication strategy for select value announcements. |
Enhancing Understanding
Practical Considerations
- Implementation Specifics: For practitioners implementing Paxos, it becomes crucial to address these contradictions through well-defined communication patterns and proposal strategies.
- Fault Tolerance and Scalability: Understanding and reconciling these contradictions contribute to more robust implementations of Paxos in large scale, fault-tolerant systems.
Key Takeaway
The nuances described in Lamport’s original paper can lead to misinterpretations if not clarified. System designers must strictly follow principles like highest-numbered proposal selection and ensure explicit value propagation to avoid potential pitfalls in reaching a distributed consensus.
In summary, while the "Paxos Made Simple" paper is a milestone in consensus algorithm literature, careful scrutiny of its recommendations reveals key areas needing further clarity. Addressing these contradictions aids in implementing a reliable distributed consensus system.

