.
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)