Présentation algorithme RAFT

in ULille blockchain2 years ago

(Présentation de l'algorithme de RAFT pour l'UE PPD)

L'algorithme de RAFT est algorithme de consensus se proposant comme une alternative à l'algorithme de Paxos. Il se veut simple à comprendre et réduit aussi le nombre de communications que Paxos peut provoquer.

Quelques termes

  • Term : Unité de temps avec une durée aléatoire comprise entre 150ms et 300ms.
  • Battement de coeur : Message envoyé par le leader aux autres noeuds dans un intervalle de temps régulier.
  • Client : rôle souhaitant ajouter une valeur dans le cluster.

Les différents états des noeuds

Dans l'algorithme un noeud doit avoir un des rôles suivants :

  • Suiveur : est un noeud qui va attendre les informations du leader.
  • Candidat : est un noeud qui quand il n'a reçu aucun battement de coeur du leader et que son term est expiré souhaite devenir leader.
  • Leader : est un noeud qui va transmettre des informations via ces battements de coeur au système.

Règles de RAFT

  • On peut avoir au plus un leader par term.
  • Le leader peut seul faire des ajouts, il ne peut pas faire de suppression.
  • Si un ajout est accepté, cet ajout sera alors présent dans les logs du leader à partir de son term.
  • Si un cluster à ajouter une commande dans une entrée de ses logs alors aucun autre cluster ne peut avoir une autre commande à la même entrée de ses logs.

Élection du leader

L'algorithme de RAFT se base sur l'utilisation d'un leader. Pour créer un leader il y un processus d'élection. Pour déclencher une élection il y a 2 situations. La première situation est lors du démarrage aucun leader existe. La seconde situation ce déclenche quand les battements de coeur du leader ne sont plus reçus par un suiveur.

Déroulement d'une élection

Quand un suiveur atteint la fin de son term sans recevoir de message du leader alors il devient candidat. Une fois devenu candidat le noeuds envoie un message à tous les autres noeuds pour qu'ils votent. Si le candidat reçoit la majorité de votes alors il devient le leader et commence créer des battements de coeur.

Si plusieurs candidats se présente en même temps et qu'aucun n'obtient de majorité alors au prochain term une nouvelle élection est lancé et ainsi de suite jusqu'à ce qu'un leader soit élu.

Réplication des données

Quand un client souhaite faire un ajout sur le cluster, il envoie ce qu'il souhaite rajouter au leader. Le leader envoie durant un de ces battements de coeur la valeur du client. Lorsqu'un suiveur reçoit cette demande d'ajout il envoie au leader un message qu'il a bien pris en compte cette demande. Une fois que le leader a reçu une majorité de réponse des suiveurs il écrit alors la valeur dans les logs et prévient les suiveurs qu'ils peuvent en faire autant.

Fusion de 2 réseaux

Avec RAFT si à la suite d'une panne le réseau se retrouve séparer, les plusieurs sous-réseaux fonctionne toujours indépendamment et ont chacun leur leader. Au moment où les deux sous réseaux refusionnent pour n'en former qu'un se pose la question de qui devient le leader. Pour choisir le leader dans cette situation il n'y pas d'élection. Parmi les leaders existant RAFT garder le leader ayant le term le plus élevé. Suite à ça le leader restant envoie dans ses battements de coeur les informations pour mettre à jour les informations dans tous les noeuds du cluster.

source

Sort:  

Bienvenue dans Hive.
Et bonne chance dans vos études.

!PGM.


ItharaGaian
Principauté du Bastion (@hive-143869 Community)
Curation Manuelle

BlasonPrincipautéBastionTransparentSmall.png

Sent 0.1 PGM - 0.1 LVL- 1 STARBITS - 0.05 DEC - 15 SBT - 0.1 THG - tokens to @itharagaian

remaining commands 4

BUY AND STAKE THE PGM TO SEND A LOT OF TOKENS!

The tokens that the command sends are: 0.1 PGM-0.1 LVL-0.1 THGAMING-0.05 DEC-15 SBT-1 STARBITS-[0.00000001 BTC (SWAP.BTC) only if you have 2500 PGM in stake or more ]

5000 PGM IN STAKE = 2x rewards!

image.png
Discord image.png

Support the curation account @ pgm-curator with a delegation 10 HP - 50 HP - 100 HP - 500 HP - 1000 HP

Get potential votes from @ pgm-curator by paying in PGM, here is a guide

I'm a bot, if you want a hand ask @ zottone444


Congratulations @ofreo! You have completed the following achievement on the Hive blockchain and have been rewarded with new badge(s):

You received more than 10 upvotes.
Your next target is to reach 50 upvotes.

You can view your badges on your board and compare yourself to others in the Ranking
If you no longer want to receive notifications, reply to this comment with the word STOP

Check out the last post from @hivebuzz:

World Cup Contest - New Sponsor and Prizes - dCrops adds 30000 CROP and 300 NFTs
HiveBuzz World Cup Contest - New Sponsor - 50000 Ecency Points added to the prize pool!
HiveBuzz World Cup Contest - Collect badges and win prizes - More than 4500 HIVE to win
Support the HiveBuzz project. Vote for our proposal!

Bonjour !

En tant que membre francophone de Hive, vous avez été ajouté à l'auto-vote de @laruche et avez reçu un vote à 100% en guise de cadeau de bienvenu.

La puissance de vote de base est de 25%, deux votes par tranche de 24h et 7 max par semaine.
Vous pouvez augmenter la puissance de vote en déléguant à la Ruche si vous le souhaitez. Voici notre serveur Discord si vous avez des questions ou juste pour discuter avec d'autres francophones de Hive !

https://discord.gg/46gdrud

Bienvenue dans la Ruche !



✒️ Pour vous encourager dans vos études, nous vous offrons 💝50 points-fr💝, un reblogue, un mini-upvote
🎁 Recevez en plus un bonus de 3 points-fr pour votre sélection et ce pourboire : !LUV !GIF algorithm
💰 Plus de Tokens de 2eme couches vous attendent dans les posts de sélections et de récompenses

Cumulez facilement les points-fr
Récompense Multi-engagements des Francophones



Dsl pour le upvote en retard! C'est marrant il y a des termes blockchain que je n'utilise jamais en Français, content de pouvoir ajouter certain mots à mon vocabulaire! Cheers!