Compromiso y Consenso Distribuidos
Los protocolos de compromiso y consenso distribuidos permiten que múltiples nodos de bases de datos acuerden atómicamente el resultado de una transacción y un orden consistente de operaciones, incluso cuando los nodos y las redes pueden fallar.
Definition
El compromiso atómico es el problema de asegurar que todos los nodos participantes en una transacción distribuida acuerden confirmarla o abortarla; el consenso es el problema más general de lograr que los nodos distribuidos acuerden un único valor o un registro ordenado a pesar de las fallas, utilizado para mantener consistentes las réplicas de la base de datos.
Scope
Este tema cubre el compromiso atómico de transacciones que abarcan sitios —el protocolo de compromiso en dos fases, su debilidad de bloqueo y el compromiso en tres fases sin bloqueo— y los protocolos de consenso (Paxos, Raft) utilizados para mantener consistentes las máquinas de estado replicadas y los registros de compromiso. Trata estos mecanismos en su función de base de datos para garantizar la atomicidad y el acuerdo de réplicas. Difiere la teoría general de sistemas distribuidos de consenso, modelos de fallas y resultados de imposibilidad a temas de computación distribuida, citándolos en lugar de duplicarlos.
Core questions
- ¿Cómo logra el compromiso en dos fases el compromiso atómico entre nodos?
- ¿Por qué el compromiso en dos fases puede bloquearse y cómo lo aborda el compromiso en tres fases?
- ¿Cómo mantienen los protocolos de consenso como Paxos y Raft las réplicas en acuerdo?
- ¿Cómo se relaciona el consenso con el compromiso atómico en bases de datos replicadas?
- ¿Cómo afectan las fallas y las particiones de red las garantías que proporcionan estos protocolos?
Key concepts
- compromiso atómico
- compromiso en dos fases (2PC)
- coordinador y participantes
- bloqueo y el problema de falla del coordinador
- compromiso en tres fases (3PC)
- Paxos
- Raft
- registro replicado / replicación de máquina de estado
Key theories
- Compromiso en dos fases
- Un coordinador pide a todos los participantes que se preparen (voten) y luego, solo si todos votan sí, les indica que confirmen; el protocolo garantiza la atomicidad pero se bloquea si el coordinador falla mientras los participantes están inciertos.
- Compromiso sin bloqueo
- El compromiso en tres fases añade una fase de pre-compromiso para que los participantes puedan alcanzar una decisión consistente incluso si el coordinador falla, eliminando el comportamiento de bloqueo del compromiso en dos fases bajo ciertas suposiciones de falla.
- Consenso para estado replicado
- Paxos y el más comprensible Raft permiten que un conjunto de réplicas acuerden un registro ordenado de operaciones a pesar de los fallos, proporcionando el acuerdo tolerante a fallas que las bases de datos modernas utilizan para replicar decisiones de compromiso y configuración.
Clinical relevance
El compromiso y el consenso distribuidos son lo que hace que las bases de datos multinodo sean confiables: aseguran que una transacción que afecta a varios fragmentos se confirme en todas partes o en ninguna, y que los sistemas replicados no diverjan después de fallas, lo cual es esencial para la corrección en sistemas de datos financieros y distribuidos globalmente.
History
El compromiso en dos fases fue el estándar inicial para la atomicidad distribuida; Skeen y Stonebraker analizaron su comportamiento de bloqueo en 1983 y motivaron el compromiso en tres fases. Paxos de Lamport (publicado en 1998) proporcionó un consenso tolerante a fallas, y Raft (Ongaro y Ousterhout, 2014) ofreció una alternativa más comprensible; ambos ahora sustentan la replicación en bases de datos distribuidas ampliamente utilizadas.
Debates
- Compromiso atómico versus consenso para transacciones replicadas
- El compromiso en dos fases garantiza la atomicidad pero se bloquea ante la falla del coordinador, mientras que la replicación basada en consenso tolera fallas a un costo mayor; los diseñadores de sistemas debaten cómo combinar el compromiso y el consenso para obtener tanto atomicidad como disponibilidad en datos replicados y particionados.
Key figures
- Leslie Lamport
- Dale Skeen
- Diego Ongaro
- John Ousterhout
Related topics
Seminal works
- lamport1998
- skeen1983
- ongaro2014
Frequently asked questions
- ¿Por qué se bloquea el compromiso en dos fases y es eso un problema?
- Si el coordinador falla después de que los participantes han votado para confirmar pero antes de que conozcan la decisión, esos participantes quedan atascados manteniendo bloqueos y no pueden confirmar o abortar de forma segura por sí mismos. Este bloqueo consume recursos hasta que el coordinador se recupera, razón por la cual se desarrollaron el compromiso en tres fases y los enfoques basados en consenso para reducirlo o eliminarlo.
- ¿En qué se diferencia el consenso del compromiso atómico?
- El compromiso atómico requiere un acuerdo unánime para confirmar; cualquier voto negativo o falla puede forzar un aborto. El consenso solo requiere que la mayoría esté de acuerdo en un valor y puede avanzar a pesar de una minoría de nodos fallidos. Las bases de datos utilizan el compromiso atómico para transacciones entre fragmentos y el consenso para mantener la consistencia de las réplicas de cada fragmento.