Paxos vs deux phases de validation
j'essaie de comprendre la différence entre paxos et Two phase commit comme moyen de parvenir à un consensus entre plusieurs machines. Deux phases de commit et trois phases de commit est très facile à comprendre. Il semble aussi que 3PC résolve le problème d'échec qui bloquerait 2PC. Donc je ne comprends pas vraiment ce que Paxos est en train de résoudre. Est-ce que quelqu'un peut m'éclairer sur le problème que Paxos résout exactement?
2 réponses
2PC bloque si le gestionnaire de transaction échoue, nécessitant une intervention humaine pour redémarrer. Algorithmes 3PC (il existe plusieurs algorithmes de ce type) essayez de corriger 2PC en élisant un nouveau gestionnaire de transaction lorsque le gestionnaire original échoue.
Paxos ne bloque pas tant que la majorité des processus (gestionnaires) sont corrects. Paxos résout en fait le problème plus général du consensus, donc, il peut être utilisé pour mettre en œuvre transaction commit aussi bien. Par rapport à 2PC, il nécessite plus messages, mais il résiste aux échecs des gestionnaires. Par rapport à la plupart des algorithmes 3PC, Paxos rend un algorithme plus simple, plus efficace (délai de message minimal), et s'est avéré être correct.
Gray et Lamport comparent 2PC et Paxos dans un excellent papier intitulée "le Consensus sur la validation des Transactions".
(dans la réponse de peter, je pense qu'il mélange 2PC avec 2PL (two-phase locking).)
2-PC est le protocole de commit de transaction le plus traditionnel et alimente le cœur de l'atomicité des transactions. Mais il est de nature bloquante, c'est-à-dire que si le gestionnaire/coordonnateur de la transaction échoue entre les deux, le Protocole sera bloqué et aucun processus ne sera au courant. Il nécessite une intervention manuelle pour réparer le coordonnateur.
Paxos étant un protocole de consensus distribué, il y a plusieurs coordonnateurs de ce genre et si la majorité des les coordinateurs acceptent l'achèvement de la transaction, elle devient une transaction atomique réussie.
Vous devriez lire https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/tr-2003-96.pdf pour comprendre comment ces deux protocoles sont différenciés dans une plus granulaire. Dans le même article, Lesley et Lamport introduisent également un protocole, c'est-à-dire une combinaison de Paxos et de 2-PC pour des performances plus rapides.