Ticketing
Documentación

Parámetros de Raft

ElementoValor
Intervalo de heartbeat250 ms
Timeout de elección500-1000 ms — se inicia una nueva elección de líder dentro de esta ventana tras un fallo del líder
Número de nodos3 o 5 (impuesto al cargar la configuración — cualquier otro valor rechaza el arranque)
ID de nodosu posición (cluster_self) en la lista cluster_peers — por eso el orden de la lista debe ser idéntico en todos los nodos
Bootstrap500 ms tras el arranque, todos los nodos se inicializan con la misma membresía — se ignora si se une a un clúster ya inicializado
Almacenamiento del logen memoria (volátil) — un nodo reiniciado se recupera vía replicación/snapshot
Detección de expiración de leaseel líder comprueba cada 100 ms y confirma Expire mediante consenso
Granularidad del timeout de waitel timeout de espera (T) también se decide en el mismo tick de 100 ms — puede llegar hasta 100 ms tarde

Por qué 3 o 5 nodos

Un commit necesita una mayoría. Una configuración con un número par de nodos solo añade coste sin añadir tolerancia a fallos, así que el servidor la rechaza.

Número de nodosMayoríaFallos simultáneos tolerados
220 — un solo fallo detiene el clúster. No mejor que el modo único
321
431 — igual que con 3 nodos, solo que cuesta más
532

Resumen del comportamiento ante fallos

SituaciónComportamiento
Solicitud de cliente a un nodo que no es el líderM (dirección del líder), o E no_leader si el líder se desconoce
Fallo del lídernuevo líder elegido en 500-1000 ms. Las solicitudes durante esa ventana reciben E no_leader → el cliente reintenta
Durante el cambio de líderlas solicitudes de adquisición pendientes se resuelven con M/E no_leader, y el cliente reintenta contra el nuevo líder
Reinicio de nodoarranca con estado vacío → se pone al día vía la replicación del log/snapshot de un par
Pérdida de la mayoríalos commits se vuelven imposibles → las escrituras se detienen (seguridad ante todo), y se reanudan automáticamente en cuanto se restaura la mayoría

Terminología

  • Quorum — más de la mitad de todos los nodos (2 de 3, o 3 de 5). Como cualquier decisión requiere el acuerdo del quorum, dos grupos separados por una partición nunca pueden confirmar decisiones contradictorias a la vez.
  • Timeout de elección — cuánto espera un seguidor sin heartbeat antes de concluir que el líder ha muerto e iniciar una elección. Se aleatoriza por nodo para reducir candidaturas simultáneas.