In Paxos, can an Acceptor take on a different meaning after it has already accepted it?

In the Multi-Paxos algorithm, consider this message flow in terms of an acceptor:

receive: Prepare (N)

reply: Promise (N, null)

receive: Accept! (N, V1)

reply: Accepted (N, V1)

receive: Accept! (N + 1, V2)

answer:?

What should be the reaction of the acceptor in this case, according to the protocol? Should he answer Accepted (N + 1, V2) or should he ignore the second Accept !?

I believe that this case can happen in Multi-Paxos, when the second interlocutor goes online and believes that he (and always has been) a leader, so he sends his Acceptance without preparation. Or, if its preparation simply did not reach the acceptor. If this case cannot happen, can you explain why?

+5
4

.

  • Multi-Paxos , ; , . . Multi-Paxos - , node () . , , , , Basic-Paxos.

  • accept Paxos. , . ( , , , .)

  • . (N + 1 ).

:

  • , ( Paxos).
  • , node Paxos ( Multi-Paxos). Paxos .
    : , , ( 3.1), , , ( 3.3.1). ELECT_NEW_LEADER: <node> , Paxos.
  • "" ; Paxos .

. Accept. id ( INITIAL_ROUND_ID) , , . id -1, 0, Integer.MIN_VALUE.

, node ( ) Paxos, , , INITIAL_ROUND_ID. , : , , Stewart Prepare.

, , Basic-Paxos.

, node, Stewart , , Basic-Paxos.

, Stewart , INITIAL_ROUND_ID, Accept- a node, , Nack.

, . (. INITIAL_ROUND_ID).


, OP , OP : Nack.

  • : (N)
  • : Promise (N, null)
  • receive: Accept! (N, V1)
  • : (N, V1)
  • receive: Accept! ( N-1, V2)
  • : Nack (N, V1)

, , ; Accept!

  • : (N)
  • : Promise (N, null)
  • receive: Accept! (N, V1)
  • : (N, V1)
  • receive: Accept! ( N + 1, V2)
  • : ! (N + 1, V2)
+6

Multi-Paxos โ€‹โ€‹, (.. ) Paxos. 3.1 ( ):

, [a.k.a. Multi-Paxos] [a.k.a. ] . , [a.k.a. /] , .
[ .]

Multi-Paxos , , , - , ( ) , . , Multi-Paxos. - Prepare - , Accept!, , a Prepare, Promised . N, Prepare N. Accept!(N+1,V2) N.

: , :

[ ] , .
- , 4.1

0

, , , Prepare (N + 1) , .

: , (N + 1), Accept (N + 1, x) , - Accepted (N + 1), .

.

0

( .)

My real understanding is that I should not accept a value in N + 1 (i.e. do not reply or send NACK at all), thereby forcing the leader, perhaps, to start another round using Prepare (if most have not reached consensus so far ) After receiving Prepare (N + 2), I will answer Promise (N + 2, V1) and continue as usual.

-2
source

All Articles