Tolerancia a fallos
Qué pasa cuando cae un nodo, un disco o la red entre máquinas.
TeselaDB sigue sirviendo cuando cae una minoría de las réplicas de cada rango. Lo que cambia al caer un nodo es quién lidera cada rango y dónde viven sus réplicas.
Cómo funciona
cae n2
│
├─▶ rangos que lideraba n2: las réplicas de n1 y n3 eligen líder nuevo
├─▶ drivers: reintentan la operación en curso en otro nodo
└─▶ equilibrador: crea en n1 y n3 las réplicas que faltan, si n2 no vuelveCuando cae un nodo, los rangos que lideraba eligen un líder nuevo entre las réplicas que quedan. Los rangos que solo tenían una réplica seguidora en él siguen igual. Si el nodo no vuelve, el equilibrador repara las réplicas que faltan en otros nodos. Si la red separa a un nodo de los demás, ese nodo deja de aceptar escrituras en los rangos donde no tiene la mayoría.
Qué implica para tu aplicación
Tu aplicación ve, como mucho, errores transitorios que el driver reintenta. Con w: "majority", una escritura confirmada no se pierde por la caída de una minoría.
Límites
Si un rango pierde la mayoría de sus réplicas a la vez, deja de aceptar escrituras hasta que vuelven. Las reparaciones siguen aunque pares el equilibrador.