Ho trovato questa spiegazione nel contesto di Cassandra utili transazioni leggere.
Prepare/promise is the core of the algorithm. Any node may propose a value; we call that node the leader. (Note that many nodes may attempt to act as leaders simultaneously! This is not a “master” role.) The leader picks a ballot and sends it to the participating replicas. If the ballot is the highest a replica has seen, it promises to not accept any proposals associated with any earlier ballot. Along with that promise, it includes the most recent proposal it has already received.
If a majority of the nodes promise to accept the leader’s proposal, it
may proceed to the actual proposal, but with the wrinkle that if a
majority of replicas included an earlier proposal with their promise,
then that is the value the leader must propose. Conceptually, if a
leader interrupts an earlier leader, it must first finish that
leader’s proposal before proceeding with its own, thus giving us our
desired linearizable behavior.
Riferimenti
link