Vous êtes sur la page 1sur 9

Université: USTO Département : d’Informatique

Master 2eme année Modèle pour système distribués

INTITULE DU PROJET :

algorithme de paxos

Effectué par : DJEBBAR RANIA


&
BELMENOUER ASMA
Option: RSID Groupe: 01

Supervisé par:…. mr.messabih


Le consensus dans les systèmes distribués :

Pour facilite la description du problème de consensus et du protocole PAXOS nous considérons


que le nombre de ces machines ne varie pas au cours du temps ces problèmes par ailleurs
communiquent à l’aide d’un réseau de communication.

On peut supposer que chaque machine peut tomber en panne et on considère un modèle de
faute qu’on appelle « cruch recovery » qui peut signifier que chaque machine peut cesser de
fonctionner à tout moment mais également peut redémarrer.

Le protocole de consensus :

Permet au diffèrent machine de proposer des valeurs :

Exemple : p1 propose v1

P2 propose v2 ;

P3 propose v3 ;

P4 n’a aucune valeur ;

Le but de ce protocole de consensus est que chacune de ces machines choisisse une et une seule
valeur afin d’empêcher des implantations triviales du protocole de consensus il également
imposé que la valeur choisit est était proposé par une des machines.

le consensus est une brique de base ce que l’on appelle réplication de machine a états.

Protocole de réplication machine a état SMR (state machine réplication) :

La réplication d’une machine a états est une technique de tolérance aux fautes, l’idée de cette
technique est la suivante :lorsqu’on a un système critique prenons par exemple le cas d’une base
de données utilisée par un système de commerce électronique en ligne on ne souhaite pas que le
service s’interrompe dès lors que la machine hébergent le système en question a savoir la base
de données de ce cas tombe en panne .

Ce qu’on fait donc utiliser un protocole de réplication de machine a état qui va consister au lieu
de tourner un seule exemplaire de cette base de données d’en exécuter plusieurs en parallèle.

Exemple : les clients d'un système bancaire distribué peuvent être des caissiers, et l'état de la
machine d'état peut consister en les soldes des comptes de tous les utilisateurs. Un retrait serait
effectué en exécutant une commande de machine d'état qui diminue le solde d'un compte si et
seulement si le solde est supérieur au montant retiré, produisant en sortie l'ancien et le nouveau
solde. Une implémentation qui utilise un seul serveur central échoue si ce serveur échoue.
Nous utilisons donc à la place une collection de serveurs, chacun indépendamment mise en
œuvre de la machine d'état. Parce que la machine d'état est déterministe, tous les serveurs
produiront les mêmes séquences d'états et de sorties s'ils exécutent tous la même séquence de
commandes. Un client émet une commande peut alors utiliser la sortie générée pour lui par
n'importe quel serveur.

Pour garantir que tous les serveurs exécutent la même séquence de machine d'état commandes,
nous implémentons une séquence d'instances distinctes du Paxos.

Quel est le lien entre consensus et réplication machine ?

Le lien est simple afin de garantir la cohérence de nos diffèrent réplications les chercheur
remarquer qu’il suffit de fournir à chacun réplica les mêmes requête dans la même ordre le
protocole de consensus va être utilise pour choisir cet ordre.

Le protocole de consensus choisit quelle est la 1ere requête a exécuté et la 2emme et la 3emme...

Pour chaque requête on fait se qu’on appelle une instance consensus.

Paxos permet de réaliser une instance de consensus.

Algorithme de paxos :
Paxos a été proposé dans les années 90 par Leslie lamport ; paxos est un algorithme
fondamentale l’un des plus utilises dans les systèmes distribue de nombreux systèmes que vous
utilises quotidiennement repose sur l’utilisation de paxos comme par exemple amazon ; yahoo….

Un nœud Paxos peut assumer l’un ou l’ensemble des trois rô les : proposant, accepteur et
apprenant.

Paxos distingue 3 rô les distincts on a d’une part des machines appelées proposant : ces
machines ont pour rô le de proposer des valeurs pour le consensus, le second rô le est le rô le
d’accepteurs ces machine ont pour rô le de choisir une valeur propose, enfin les apprenants
( learners) qui sont des machine qui apprennent quelle valeurs ont été choisisse et agissent sur
ces valeurs une machine peut jouer l’un des trois rô les deux des trois rô les ou 3 des 3 rô les.

L’algorithme de Paxos se déroule en 2 phases :

Phase1 :

Un proposant sélectionne un numéro de proposition n et envoie une préparation demande avec


le numéro n à une majorité d'accepteurs. Si un accepteur reçoit une demande de préparation
avec un nombre n supérieur que celle de toute demande préparée à laquelle il a déjà répondu,
puis il répond à la demande en promettant de ne plus accepter les propositions numérotées
inférieures à n et avec la proposition la plus numérotée (le cas échéant) qu'il a acceptées.

Phase2 :

- Si le proposant reçoit une réponse à ses demandes de préparation (numéroté n) d'une majorité
d'accepteurs, puis il envoie un accept demande à chacun de ces accepteurs une proposition
numérotée n avec une valeur v, où v est la valeur de la proposition la plus élevée parmi les
réponses, ou est n'importe quelle valeur si les réponses n'ont signalé aucune proposition.

- Si un accepteur reçoit une demande d'acceptation d'une proposition numérotée n, il accepte la


proposition à moins qu'il n'ait déjà répondu à une demande requête ayant un nombre supérieur
à n.
Exemple 2 : Déroulement :

Considérons 3accepteurs et 2 proposeurs :

Dans l'algorithme Paxos standard, les proposants envoient deux types de messages aux
accepteurs : préparer et accepter les requêtes. Dans la première étape de cet algorithme, un
proposant envoie une demande de préparation à chaque accepteur contenant une valeur
proposée, v, et un numéro de proposition, n. Le numéro de proposition de chaque proposant doit
être un nombre naturel positif, croissant de manière monotone, unique, par rapport aux
numéros de proposition des autres proposants.

Il y a deux proposants, tous deux faisant des demandes de préparation. La demande du


proposant P1 atteint les accepteurs α et β avant la demande du proposant P2, mais la demande
du proposant P2 atteint l'accepteur c en premier.

Si l'accepteur recevant une demande de préparation n'a pas vu d'autre proposition, l'accepteur
répond par une réponse de préparation qui promet de ne jamais accepter une autre proposition
avec un numéro de proposition inférieur.

Les accepteurs envois leurs réponses à la première demande de préparation qu’il reçoit.
Finalement, l'accepteur c reçoit la demande du proposant P1, et les accepteurs α et β reçoivent la
demande du proposant P2. Si l'accepteur a déjà vu une demande avec un numéro de proposition
plus élevé, la demande de préparation est ignorée, comme c'est le cas avec la demande du
proposant P1 à l'accepteur c. Si l'accepteur n'a pas vu de demande avec un numéro plus élevé, il
promet à nouveau d'ignorer toutes les demandes. Avec des numéros de proposition inférieurs, et
renvoie la proposition ayant le numéro le plus élevé qu'il a acceptée avec la valeur de cette
proposition. C'est le cas de la demande du proposant P2 aux accepteurs α et β, comme illustré

Une fois qu'un proposant a reçu des réponses préparées d'une majorité d'accepteurs, il peut
émettre une demande d'acceptation. É tant donné que le proposant P1 n'a reçu que des réponses
indiquant qu'il n'y avait pas de propositions précédentes, il envoie une demande d'acceptation à
chaque accepteur avec le même numéro de proposition et la même valeur que sa proposition
initiale (n = 2, v = 8). Cependant, ces demandes sont ignorées par chaque accepteur car ils ont
tous promis de ne pas accepter les demandes avec un numéro de proposition inférieur à 4 (en
réponse à la demande de préparation du proposant P2).
Le proposant P2 envoie une demande d'acceptation à chaque accepteur contenant le numéro de
proposition qu'il a précédemment utilisé (n = 4) et la valeur associée au numéro de proposition
le plus élevé parmi les messages de réponse de préparation qu'il a reçus (v = 8) .

Si un accepteur reçoit une demande d'acceptation pour un numéro de proposition supérieur ou


égal à celui qu'il a déjà vu, il accepte et envoie une notification à chaque nœud apprenant. Une
valeur est choisie par l'algorithme Paxos lorsqu'un apprenant découvre qu'une majorité
d'accepteurs a accepté une valeur.

Une fois qu'une valeur a été choisie par Paxos, une communication ultérieure avec d'autres
proposants ne peut pas modifier cette valeur. Si un autre proposant, le proposant P3, envoie une
demande de préparation avec un numéro de proposition plus élevé que celui qui a été vu
précédemment et une valeur différente (par exemple, n=6, v=7), chaque accepteur répond avec
la proposition la plus élevée précédente (n= 4, v=8). Cela nécessite que le proposant P3 envoie
une demande d'acceptation contenant [n = 6, v = 8], qui ne fait que confirmer la valeur qui a déjà
été choisie.

Conclusion :

On obtient finalement un algorithme qui choisit une seule valeur parmi plusieurs et assure les
deux propriétés suivantes :

1- Sécurité :

- Une seule valeur peut être choisie.

- Seule la valeur choisie serait apprise.

2- Vivacité :

- Une valeur proposée est finalement choisie.

- Les apprenants finiraient par apprendre la valeur choisie.

Malgré le fait que la transmission des messages peut ne pas être fiable et que les rô les
(proposants/accepteurs/apprenants) peuvent s'arrêter et redémarrer.

References :
L. Lamport, “Paxos Made Simple” in ACM SIGACT News, vol. 32, no. 4, pp. 18–
25, 2001.

Leslie Lamport, “ The part-time parliament”. ACM Transactions on Computer


Systems, 16(2):133–169, 1998.

Vous aimerez peut-être aussi