Raft

Principe

Raft est un système permettant d’avoir une machine à état répliquée sur plusieurs nœuds. Le but de cet algorithme est de garder la machine à état synchronisée sur le cluster. Pour cela, les valeurs de cette machine ne sont pas directement modifiée mais les opérations sont sauvegardées dans un journal. C’est ce journal qui est répliqué entre les nœuds. Pour qu’un nœud puisse connaître une valeur, il va exécuter toutes les opérations du journal séquentiellement et renvoyer la valeur finale.

Types de nœuds

Il existe trois types de nœuds : le leader, les candidats et les followers. Le leader est le nœud qui sera chargé de prendre en charge les commandes des clients et de les envoyer aux followers. Il faut qu’au moins la moitié des machines du cluster accepte la commande pour que celle-ci soit exécutée sur le cluster.

Quand un nœud ne détecte plus de leader, il passe en mode candidat. Le nœud vote pour lui-même et demande à tous les autres nœuds du cluster de voter pour lui. Si le candidat obtient la majorité, il devient alors le nouveau leader. Ce mécanisme permet de s’assurer qu’il n’y ait qu’un seul leader dans le cluster est que celui-ci est bien à jour avec la majorité des nœuds du cluster.

Ressources complémentaires

  • La visualisation de l’algorithme Raft peut être vue avec ces animations.