Paxos e il quorum W + R> N cercano di risolvere problemi leggermente diversi. Paxos viene solitamente descritto come un modo per replicare una macchina a stati, ma in realtà è più un log distribuito: ogni elemento scritto nel log riceve un indice e i diversi server alla fine conservano gli stessi elementi del registro + il loro indice. (La macchina a stati replicati può essere raggiunta scrivendo nel log gli input sulla macchina a stati e ogni server riproduce la macchina a stati sugli ingressi concordati in base al loro indice). Puoi leggere di più su Paxos in un post sul blog che ho scritto here.
Il quorum W + R> N risolve il problema della condivisione di un singolo valore tra più server. Nel mondo accademico è chiamato "registro condiviso". Un registro condiviso ha due operazioni: lettura e scrittura, dove ci aspettiamo che la lettura restituisca il valore della scrittura precedente.
Quindi, Paxos e il quorum W + R> N vivono in domini diversi e hanno proprietà diverse (ad esempio, Paxos salva un elenco ordinato di elementi). Tuttavia, Paxos può essere utilizzato per implementare un registro condiviso e un quorum W + R> N può essere utilizzato per implementare un registro distribuito (anche se in modo molto inefficiente).
Dicendo tutto quanto sopra, a volte i quorum W + R> N non sono implementati nel loro modo "completamente robusto", poiché richiederà più di un round di comunicazione. Pertanto, nei sistemi che richiedono bassa latenza, è possibile che la loro implementazione dei quorum W + R> N fornisca proprietà più deboli (ad esempio, possono coesistere valori in conflitto).
Per riassumere, in teoria, Paxos e W + R> N possono raggiungere gli stessi obiettivi. In pratica, sarebbe molto inefficiente, e ognuno è migliore per qualcosa di leggermente diverso. Ancora più praticamente, W + R> N non è sempre implementato completamente, quindi scarificare alcune proprietà di coerenza per la velocità.
Aggiornamento: Paxos supporta un modello di errore molto generale: i messaggi possono essere eliminati, i nodi possono bloccarsi e riavviarsi. Lo schema del quorum W + R> N ha implementazioni dfferent, molte delle quali assumono fallimenti meno generali. Quindi, la differenza tra i due dipende anche dall'ipotesi sui possibili errori supportati.
fonte
2013-09-22 20:01:32
FWIW, Zookeeper non è basato su Paxos, è un protocollo di commit a due fasi (senza aborti) con un protocollo di elezione dei leader personalizzato separato quando il master scende. Certo, puoi considerarlo come un'implementazione di Vertical Paxos, ma alla fine, tutti gli algoritmi di consenso corretti possono essere mappati su Paxos. –