Ticketing
Documentation

Types de RPC

Le tag d'une trame détermine le type de RPC. Chaque payload est un type openraft sérialisé avec postcard.

tagNomPayload requêtePayload réponseRôle
1VoteVoteRequestVoteResponseÉlection du leader — un candidat demande le vote des autres nœuds
2AppendEntriesAppendEntriesRequestAppendEntriesResponseRéplication du journal + battement de cœur — le leader propage les commandes répliquées aux suiveurs
3FullSnapshotun tuple (Vote, SnapshotMeta, snapshot_bytes)SnapshotResponseEnvoie le snapshot complet à un nœud pris de retard
  • Vote — quand le leader meurt, un nœud dont le battement de cœur s'est arrêté devient candidat et demande des votes ; le nœud qui obtient une majorité devient le nouveau leader.
  • AppendEntries — le leader transporte les commandes de verrou à valider comme entrées de journal. Un AppendEntries sans entrée est le battement de cœur — il n'existe pas de message de battement de cœur séparé.
  • FullSnapshot — envoie l'intégralité de l'état actuel à un nœud trop en retard pour rattraper via le journal (ou qui vient de rejoindre le cluster). Envoyé en entier, en une seule trame, sans streaming.

Flux — quand le leader meurt

Nœud A
Nœud B
Nœud C
détecte la disparition du battement de cœur du leader → devient candidat
Vote · demande de vote
Vote · demande de vote
oui
majorité incluant lui-même → nouveau leader
AppendEntries (aucune entrée = battement de cœur)
AppendEntries (aucune entrée = battement de cœur)
RPC de consensus (Raft)

Dès que le premier battement de cœur du leader nouvellement élu arrive, le cluster revient à un service normal — l'écart total est habituellement de 0,5 à 1 seconde. Voir les Commandes répliquées pour le flux AppendEntries (réplication du journal) en fonctionnement normal.

Terminologie

  • Réplication du journal (log replication) — le leader transforme ses commandes décidées en un journal ordonné et fait en sorte que les suiveurs l'enregistrent à l'identique. Appliquer le même journal dans le même ordre amène chaque nœud au même état.
  • Battement de cœur (heartbeat) — un signal périodique « je suis vivant ». Quand il s'arrête, les suiveurs concluent que le leader est mort et déclenchent une élection.