Paramètres Raft
| Élément | Valeur |
|---|---|
| Intervalle de battement de cœur | 250 ms |
| Timeout d'élection | 500-1000 ms — une nouvelle élection de leader démarre dans cette fenêtre après une panne du leader |
| Nombre de nœuds | 3 ou 5 (imposé au chargement de la configuration — tout autre nombre refuse de démarrer) |
| ID de nœud | sa position (cluster_self) dans la liste cluster_peers — c'est pourquoi l'ordre de la liste doit être identique sur chaque nœud |
| Bootstrap | 500 ms après le démarrage, chaque nœud s'initialise avec le même membership — ignoré si le nœud rejoint un cluster déjà initialisé |
| Stockage du journal | en mémoire (volatile) — un nœud redémarré récupère via la réplication ou un snapshot |
| Détection d'expiration de lease | le leader vérifie toutes les 100 ms et valide Expire via consensus |
Granularité du timeout wait | le timeout d'attente (T) est aussi décidé sur ce même cycle de 100 ms — il peut arriver avec jusqu'à 100 ms de retard |
Pourquoi 3 ou 5 nœuds
Un commit nécessite une majorité. Une configuration à nombre pair n'ajoute que du coût sans améliorer la tolérance aux pannes, le serveur la refuse donc.
| Nombre de nœuds | Majorité | Pannes simultanées tolérées |
|---|---|---|
| 2 | 2 | 0 — une seule panne arrête le cluster. Pas mieux que le mode simple |
| 3 | 2 | 1 |
| 4 | 3 | 1 — identique à 3 nœuds, juste plus coûteux |
| 5 | 3 | 2 |
Résumé du comportement en cas de panne
| Situation | Comportement |
|---|---|
| Requête client vers un nœud non-leader | M (adresse du leader), ou E no_leader si le leader est inconnu |
| Panne du leader | nouveau leader élu sous 500-1000 ms. Les requêtes pendant cette fenêtre reçoivent E no_leader → le client réessaie |
| Pendant le changement de leader | les requêtes d'acquisition en attente sont purgées avec M/E no_leader, et le client réessaie auprès du nouveau leader |
| Redémarrage d'un nœud | démarre avec un état vide → rattrape via la réplication du journal ou le snapshot d'un pair |
| Perte de la majorité | les commits deviennent impossibles → les écritures s'arrêtent (sécurité avant tout), reprise automatique une fois la majorité restaurée |
Terminologie
- Quorum — plus de la moitié de tous les nœuds (2 sur 3, ou 3 sur 5). Comme toute décision nécessite l'accord du quorum, deux groupes partitionnés ne peuvent jamais valider des décisions contradictoires en même temps.
- Timeout d'élection (election timeout) — le temps qu'un suiveur attend sans battement de cœur avant de conclure que le leader est mort et de démarrer une élection. Randomisé par nœud pour réduire les candidatures simultanées.