Replicación y Consistencia de Datos
La replicación de datos mantiene múltiples copias de información para asegurar disponibilidad y rendimiento, mientras que los protocolos de consistencia rigen cómo se concilian las lecturas y escrituras entre esas copias.
Definition
La replicación de datos mantiene copias de un elemento de datos en varios nodos; un modelo de consistencia especifica las garantías sobre los valores que las lecturas pueden devolver dada la historia de las escrituras, que van desde fuerte (cada lectura ve la última escritura) hasta eventual (las réplicas convergen si cesan las actualizaciones).
Scope
Este tema abarca las estrategias de replicación (primario-respaldo, multi-maestro, quórum), los protocolos de lectura/escritura basados en quórum y sus requisitos de intersección, la anti-entropía y el "gossip" para la convergencia eventual, la detección de conflictos con vectores de versión y los tipos de datos replicados libres de conflictos (CRDTs), y el espectro de consistencia desde linealizable hasta eventual. Trata la contraparte a nivel de datos de la replicación de máquinas de estado.
Core questions
- ¿Cómo garantizan los tamaños de quórum para lecturas y escrituras que las lecturas observen la última escritura?
- ¿Cómo convergen las réplicas bajo consistencia eventual y cómo se resuelven los conflictos?
- ¿Qué nivel de consistencia debería elegir una aplicación dadas sus necesidades de latencia y disponibilidad?
Key theories
- Consenso de quórum para datos replicados
- Al asignar votos a las réplicas y requerir quórums de lectura y escritura cuyas sumas de tamaños sean mayores que el total, cada quórum de lectura interseca el último quórum de escritura, garantizando que las lecturas observen datos actualizados.
- Consistencia eventual y anti-entropía
- Los almacenes de alta disponibilidad aceptan escrituras en cualquier réplica y se concilian asincrónicamente a través de "gossip" y vectores de versión, garantizando solo que las réplicas convergen cuando las actualizaciones se detienen, como se ejemplifica en el diseño de Dynamo.
- Tipos de datos replicados libres de conflictos
- Los CRDTs son tipos de datos cuyas operaciones están diseñadas para conmutar o cuyos estados forman un semienrejado de unión, de modo que las actualizaciones concurrentes se fusionan de forma determinista sin coordinación, proporcionando una fuerte consistencia eventual.
Clinical relevance
Estas técnicas definen las garantías de los sistemas de almacenamiento reales: los protocolos de quórum subyacen a los almacenes clave-valor fuertemente consistentes, mientras que la consistencia eventual y los CRDTs impulsan los almacenes de alta disponibilidad, los carritos de compra y los editores colaborativos donde la disponibilidad supera el acuerdo inmediato.
History
El esquema de votación ponderada de Gifford de 1979 estableció la replicación por quórum; el artículo Dynamo de Amazon de 2007 popularizó la consistencia eventual de alta disponibilidad; y la formalización de los CRDTs en 2011 proporcionó una base de principios para la convergencia sin coordinación, dando forma al diseño moderno de datos replicados.
Debates
- ¿Cuánta consistencia deberían proporcionar los datos replicados por defecto?
- La consistencia fuerte facilita el desarrollo de aplicaciones pero limita la disponibilidad y añade latencia, mientras que la consistencia eventual maximiza la disponibilidad a costa de exponer divergencias temporales; los quórums ajustables y los CRDTs son intentos de permitir que las aplicaciones elijan por operación.
Key figures
- David Gifford
- Werner Vogels
- Marc Shapiro
- Andrew S. Tanenbaum
Related topics
Seminal works
- gifford1979
- decandia2007
- shapiro2011
Frequently asked questions
- ¿Cómo garantizan los quórums de lectura y escritura lecturas actualizadas?
- Si una escritura debe alcanzar W réplicas y una lectura debe consultar R réplicas, y R más W excede el número total de réplicas, entonces cualquier quórum de lectura se superpone con el quórum de escritura más reciente en al menos una réplica, por lo que la lectura puede observar el valor más reciente.