2
$\begingroup$

Say we have two proposers (P1, P2), one acceptor (A), and two learners (L1, L2).

What would prevent this sequence of events from occurring?

  1. P1 initiates a round numbered 1. A agrees to participate, and reports that is has not voted on any proposals.
  2. P2 initiates a round numbered 2. A agrees to participate, and reports that is has not voted on any proposals.
  3. P1 asks A to vote for some value v1 in round 1.
  4. A accepts v1 and tries to notify learners. L1 receives the message and declares that v1 is chosen.
  5. P2 asks A to vote for some value v2 in round 2.
  6. A accepts v2 and tries to notify learners. L2 receives the message and declares that v2 is chosen.
$\endgroup$
2
$\begingroup$

I'll assume this is Basic Paxos. Step (4) cannot occur - the acceptor A maintains in nonvolatile memory the largest promise it has made (the highest round it has agreed to vote on). At step (2), the max promise becomes 2. When A recieves P1's accept request in step (3) it will reject it because the accept request is from round 1 (this information is communicated in the accept request).

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.