Rangos y réplicas

Qué es un rango, cómo se replica, quién lo lidera y qué pasa cuando cae un nodo.

Un rango es un intervalo [inicio, fin) del espacio de claves ordenado. Es la unidad de replicación, de reparto y de división: cada rango tiene su propio grupo Raft.

Líder y seguidores

Una réplica de cada rango es la líder: propone las escrituras y, con su lease, responde lecturas sin preguntar a las demás. Las otras réplicas siguen su log. Un seguidor puede servir lecturas hasta su marca cerrada, que el líder publica 3 segundos por detrás de su reloj; así funcionan readPreference: secondary y nearest.

Cuando cae un nodo

Las réplicas de los rangos que lideraba eligen un líder nuevo entre las que quedan, y el rango sigue aceptando lecturas y escrituras mientras responda la mayoría de sus réplicas. Los drivers reintentan la operación en curso; una escritura reintentada no se aplica dos veces.

División y fusión

Un rango se divide al superar 64 MiB de datos vivos o 512 MiB en disco con sus versiones, o por carga. Dos vecinos de menos de 16 MiB, fríos durante 10 minutos y con las mismas réplicas se fusionan. Una colección limitada ocupa un rango propio que nunca se divide ni se fusiona.

Mira tus rangos

Shell
teseladb admin ranges --collection tienda.pedidos