Sistemas Distribuidos · Ingeniería de Datos

Consenso y replicación

Resumir los mecanismos de replicación de estado y los protocolos de consenso como Raft y Paxos para que nodos distribuidos acuerden un único resultado fiable.

Consenso y replicación

Copiar es fácil, acordar no La replicación copia el mismo dato en varios nodos para tolerar fallos. Pero si dos nodos proponen valores distintos, hace falta consenso: un protocolo que obligue a la mayoría a ponerse de acuerdo aunque algunos fallen.

Replicar para tolerar fallos

Guardando varias copias, la caída de un nodo no pierde el dato. La cuestión es mantener las copias consistentes cuando alguien escribe, sobre todo si el que escribe o el que responde falla a medias.

Replicación líder-seguidor

Quórum y mayorías

Un sistema con 2f+1 nodos tolera f fallos si cada decisión exige una mayoría de f+1. Las mayorías se solapan, así que dos decisiones contradictorias no pueden prosperar a la vez: es el truco de fondo.

Un nodo líder con corona envía barras segmentadas idénticas por flechas a varios seguidores: tres muestran insignia de verificación y uno aparece desvaído y agrietado.
El líder replica su registro; con la mayoría confirmada, la caída de algún nodo no rompe el acuerdo.

Paxos y Raft

Paxos acuerda un valor mediante propuestas y promesas en rondas. Raft lo reescribe en términos más comprensibles: elección de líder, registro replicado y seguridad, pensado para implementar y entender.

Registro replicado

El corazón del consenso es un log ordenado y copiado idéntico en la mayoría. Si todos ven el mismo registro en el mismo orden, pueden replicar máquinas de estado y acabar en el mismo resultado.

Límites de CAP

Estos protocolos priorizan consistencia sobre disponibilidad ante partición: sin mayoría no hay escritura. Explica por qué un sistema CP rechaza operar cuando la red parte el clúster.

Para qué sirve

Bases distribuidas, asignación de líderes y configuración coherente dependen de consenso. Sin él, dos líderes escriben a la vez y el dato se pudre en copias irreconciliables.

Errores frecuentes

Ejemplo resuelto: un corte parte el clúster de cinco

La red divide un clúster de cinco nodos en bandos de dos y tres. Lo que ocurre:

  1. Calcular el quórum: con 2f+1 igual a 5, la mayoría necesaria es tres nodos.
  2. El bando de tres alcanza mayoría y puede elegir líder y seguir escribiendo.
  3. El bando de dos no llega a quórum y se niega a escribir, aunque esté vivo.
  4. Al volver la red, el bando minoritario reconoce el registro del mayoritario.
  5. Aceptar el cambio de disponibilidad por consistencia: es la elección CP del protocolo.

¿Para qué sirve en la realidad?

Bases distribuidas, candidatos únicos a líder y configuración coherente de un clúster se sostienen sobre consenso. Sin él, una partición produce dos versiones del mismo dato que ya nunca se reconcilian.

En un clúster de 5 nodos con quórum de mayoría, el número máximo de fallos que puede tolerar siguiendo operando es:

La replicación por sí sola garantiza que todos los nodos se pongan de acuerdo tras un fallo.

Consenso

Nodo que recibe escrituras y las propaga
lider
Mayoría que debe confirmar para decidir
quorum
Protocolo de consenso pensado para entenderse
raft
Registro ordenado y copiado que es el corazón del consenso
log
Con 2f+1 nodos se toleran cuántos fallos
f

Ordena los pasos de una escritura consistente con líder y quórum:

Proponer
Mayoría
Comprometer
Aplicar

Raft
Visualización y explicación del algoritmo de consenso Raft, elegido por su claridad.

Une cada pieza del consenso con su papel.

Copiar es fácil, acordar no

# Consenso y replicación
## Replicar
### copias toleran fallos
### escribir y acordar distinto
## Mayorías
### 2f+1 tolera f
### se solapan y no contradicen
## Protocolos
### Paxos clásico
### Raft comprensible
## Elección
### CP ante partición
### sin mayoría no hay escritura

Animación didáctica de Raft
Visualización interactiva del liderazgo y el registro replicado paso a paso.

Un corte de red divide tu clúster de 5 en 2 y 3 nodos. ¿Puede escribir el bando de 2? Razona por quórum y por qué el sistema es CP en ese instante.