web-dev-qa-db-fra.com

paxos vs radeau pour l'élection du chef

Après avoir lu paxos et le journal sur radeau, la confusion qui s’ensuit: Le document sur paxos ne décrit que le consensus sur une entrée de journal unique, ce qui équivaut à la partie de l’élection de leader de l’algorithme radeau. Quel est l'avantage de l'approche de paxos par rapport à la simple approche du délai d'attente aléatoire lors de l'élection du chef de radeau?

6
Oliver Young

Il est communément admis que les papiers originaux de Paxos n’utilisent pas de guide stable. Dans Paxos Made Simple à la page 6 de la section intitulée «La mise en œuvre», Lamport a écrit:

L'algorithme choisit un chef qui joue le rôle du proposant distingué Et de l'apprenant distingué.

Ceci est simplement réalisé en utilisant la messagerie de phase 1 de préparation et promesses. 

Ensuite, aux pages 9 et 10 de la section «Implémentation d’une machine à états», nous avons:

En fonctionnement normal, un seul serveur est choisi pour être le leader, Qui agit en tant que proposant distingué (le seul à tenter de D'émettre des propositions) dans toutes les instances de l'algorithme de consensus.

Ici, il utilise le terme «machine à états» au sens le plus générique, couvrant les cas évidents tels qu'un magasin de valeurs de clé ou un serveur de base de données où nous répliquons un journal des actions appliquées au magasin. 

Les gens sont désorientés à ce sujet à cause de la façon dont Lamport a prouvé que Paxos est ce qui est maintenant enseigné. Lamport a prouvé l'exactitude d'une classe d'applications appelée Paxos en la réduisant à un modèle mathématique sur lequel il est possible de raisonner. Il a appelé cela "Le Synode à décret unique" dans le document original Le Parlement à temps partiel :

Les chefs religieux de Paxon ont demandé aux mathématiciens de formuler un protocole Pour choisir le décret du Synode. Les exigences du protocole et les hypothèses Étaient essentiellement les mêmes que celles du Dernier Parlement, sauf qu’au lieu de contenir une série de décrets, un grand livre aurait au plus un décret. Le protocole Synod résultant est Décrit ici; le protocole parlementaire est décrit à la section 3.

Si vous trouvez cette déclaration déroutante, ne vous inquiétez pas, c’est une mauvaise blague; Littéralement. Une traduction de ceci dans mes propres mots serait:

«Afin de prouver l'exactitude de l'algorithme de consensus pour Choisir un flux de commandes, nous pouvons d'abord démontrer l'exactitude D'un modèle mathématique qui choisit une seule commande. Le modèle mathématique Permettant de sélectionner une seule commande peut ensuite être étendu À l'algorithme pratique permettant de sélectionner un flux de commandes (Section 3), à condition que les hypothèses de cette seule commande modèle mathématique ne sont pas violés. ”- simbo1905

Afin de justifier mon interprétation, nous pouvons examiner la section 3 intitulée «Le Parlement à décrets multiples», qui se lit comme suit:

Au lieu d'adopter un seul décret, le Parlement de Paxon a dû adopter une série de Décrets numérotés. Comme dans le protocole synodal, un président a été élu . Toute personne souhaitant faire adopter un décret en informerait le président, , Qui attribuerait un numéro au décret et tenterait de le faire passer. Logiquement, le protocole parlementaire utilisait un exemple distinct du compléter le protocole Synod pour chaque numéro de décret. Cependant, un seul président A été sélectionné pour toutes ces instances et il a exécuté les deux premières étapes du protocole. Une seule fois.

Pour souligner ce point, le document original intitulé «Le Parlement à temps partiel» présente Paxos comme intéressant pour les informaticiens en raison de son algorithme à plusieurs degrés. le protocole du parlement. Cela et le document de clarification «Paxos Made Simple» définissent tous deux Paxos comme un leader distingué attribuant des numéros de séquence à un flux de commandes. En outre, le dirigeant distingué n’envoie des messages «préparés» que lorsqu’il assume le leadership; après cela, le chef distingué ne diffuse que des messages «acceptés». Il a également dit également où, dans le document, réduire les rôles et faire en sorte que tous les serveurs exécutent les trois rôles de l'algorithme. 

11
simbo1905

Après avoir lu la question et la réponse de @ simbo1905, j’ai l’impression de devoir verser mes 2 centimes, car je ne pense pas avoir répondu à la question.

Quel est l'avantage de l'approche de paxos par rapport à la simple approche du délai d'attente aléatoire lors de l'élection du chef de radeau?

tl; dr: Paxos est optimal, mais Raft est plus fort pratique garantie de vivacité.

Pour plus d'informations, lisez la suite.

Comme le dit Lamport dans la section 3 de Paxos Made Simple

On peut montrer que la phase 2 de l’algorithme de consensus de Paxos a le coût minimum possible de tout algorithme permettant de s’accorder en présence de fautes [2] . Par conséquent, l'algorithme de Paxos est essentiellement optimal.

Paxos met donc en œuvre le consensus de manière efficace au maximum, en l'absence de fautes. 

D'autre part dans la même section, il indique également

Si plusieurs serveurs pensent être des leaders, ils peuvent tous proposer des valeurs dans la même instance de l'algorithme de consensus, ce qui pourrait empêcher toute valeur d'être choisie. Cependant, la sécurité est préservée: deux serveurs différents ne seront jamais en désaccord sur la valeur choisie comme commande de la machine d'état. L’élection d’un seul dirigeant n’est nécessaire que pour assurer le progrès.

Ce qui signifie pratiquement / Paxos peut constater des violations de sa garantie de qualité de vie.

2
KeatsKelleher