Algorithme de consensus de radeau

L'algorithme de consensus Raft est un algorithme informatique qui distribue une machine d'état sur un cluster de systèmes informatiques. Il garantit que chaque nœud du cluster s'accorde sur la même série de transitions d'état, même en cas de défaillance. L'algorithme a été conçu comme une alternative plus facile à comprendre aux protocoles Paxos pour la résolution des pannes. Il a des implémentations de référence open source telles que C ++, Java et Scala.


Qu'est-ce que le consensus

Le consensus est le processus consistant à amener plusieurs serveurs à se mettre d'accord sur une valeur spécifique en fonction des votes de chaque serveur. Une fois qu'une décision a été prise sur une valeur, la décision est définitive. La valeur décidée doit être soumise par un serveur, ce qui signifie que l'algorithme de consensus ne peut pas concevoir lui-même une valeur. Plus simplement, la valeur peut être 0 ou 1, permettant à tous les serveurs de décider de faire quelque chose ou non. Le consensus est utilisé dans le contexte de machines à états répliquées, un modèle mathématique de calcul.

Comment fonctionne Raft

Raft fonctionne en élisant un leader du cluster. Un serveur dans un cluster est soit un leader soit un suiveur, et peut éventuellement être un candidat si le leader n'est pas disponible. Le leader gère la réplication du journal vers d'autres serveurs et accepte les demandes des clients. Un leader mène jusqu'à ce qu'il échoue ou se déconnecte, auquel cas un nouveau leader est choisi parmi les candidats. Les données circulent dans un seul sens: du leader vers d'autres serveurs.

Raft décompose le consensus en trois sous-problèmes indépendants:

  • Élection du chef: Lorsque le chef actuel échoue, un nouveau chef doit être élu.
  • Réplication du journal: Grâce à la réplication, le leader doit garder son propre serveur synchronisé avec les journaux de tous les autres serveurs.
  • Sécurité: Aucun autre serveur ne peut demander une entrée de journal à un index particulier si un serveur s'est déjà engagé dans une entrée de journal pour cet index. Ceci permet de garantir que les journaux sont cohérents et que l'état usiné exécute le même ensemble de commandes.

Le radeau peut être utilisé pour la réplication dans des systèmes distribués. Il construit des systèmes solides et cohérents sans sacrifier les performances ou la précision. Les bases de données distribuées telles que TiDB et YugabyteDB utilisent Raft pour l'élection du leader et la réplication des données pour la gestion des bases de données NewSQL.


Laisser un commentaire