Saltar al contenido principal
Fiabilidad y manejo de fallos

Membresía honesta ante fallos

Detectar bien los fallos es la parte difícil del clustering. Nodus usa latidos, alcanzabilidad por par y una ventana de sospecha para distinguir un nodo lento de uno ido — y luego reelige de forma determinista para que el clúster se repare sin oscilaciones y sin un hueco de liderazgo.

Detección de fallos

Distinguir lo "lento" de lo "ido"

Expulsa con demasiada premura y una pausa del GC parece una caída; expulsa demasiado tarde y los clientes se quedan colgados de un nodo muerto. Nodus está construido en torno a ese equilibrio.

Latidos

Los miembros intercambian latidos sobre el transporte persistente. Un par que sigue respondiendo está sano; uno que se queda en silencio es candidato a la sospecha — sin un servicio de comprobación de salud aparte.

Alcanzabilidad por par

La alcanzabilidad se rastrea por par, de modo que una partición que aísla un enlace no condena a todo el clúster. Cada miembro juzga a cada par según su propia evidencia.

Una ventana de sospecha

Antes de expulsar a un par silencioso, se lo mantiene como "sospechoso" durante una ventana (unos 20 segundos por defecto). Esa ventana distingue lo "lento" de lo "ido" y evita que un breve contratiempo haga oscilar la membresía.

Salida ordenada frente a terminación abrupta

Un apagado limpio difunde una baja para que los pares lo expulsen de inmediato y la conmutación por error sea rápida. Una terminación abrupta no tiene tal señal, así que la ventana de sospecha es lo que acaba por eliminarlo.

Autorreparación

Qué ocurre cuando un nodo muere

La conmutación por error es automática. Los supervivientes detectan la pérdida, reeligen si es necesario y readmiten el nodo cuando vuelve — todo sin acción del operador.

Detectar

Los latidos de un par se detienen; tras la ventana de sospecha se lo declara ido y se lo elimina de la lista de miembros.

Reelegir

Si el par perdido era el líder, cada superviviente ejecuta la misma elección determinista y la época avanza — de modo que nunca hay un hueco sin coordinador ni dos reclamando el rol.

Readmitir

Cuando el nodo vuelve, se reincorpora desde su conjunto de pares, se dispara un evento de alta, y la lista de miembros y el liderazgo se asientan de nuevo.

La garantía que importa

Ni dos líderes, ni un hueco sin líder

Como el liderazgo se sustenta en una época que aumenta de forma monótona y cada superviviente ejecuta la misma elección sobre los mismos pares alcanzables, la conmutación por error converge en exactamente un nuevo líder en una época superior. Un mensaje de un líder depuesto es reconociblemente obsoleto, de modo que los reclamos de cerebro dividido se rechazan en lugar de actuarse sobre ellos.

Ajustado para tu carga de trabajo

Rápido donde cuenta

  • Las salidas ordenadas expulsan de inmediato — sin esperar un tiempo de espera
  • La ventana de sospecha (~20s por defecto) absorbe los parpadeos transitorios
  • La reelección es un cálculo local, no una votación de múltiples rondas
  • La liberación deja el clúster limpiamente para que los pares se recuperen rápido

Resiliencia que no tienes que construir

Latidos, sospecha y conmutación por error — incorporados, para que tu servicio simplemente los tenga.