Consistencia en el teorema ACID y CAP, ¿son iguales?

18

Según tengo entendido, la consistencia en ACID es garantizar la integridad de los datos.

Sin embargo, la consistencia en CAP significa que los datos pueden aparecer rápidamente en el sistema distribuido.

¿Eso significa que no son el mismo concepto?

Yang Xia
fuente

Respuestas:

18

No son realmente lo mismo, debido al alcance de los datos.

ÁCIDO

GORRA

  • Consistencia (todos los nodos tienen los mismos datos a través de la consistencia eventual)
  • Disponibilidad
  • Tolerancia de partición: el sistema continúa funcionando a pesar de la pérdida arbitraria de mensajes o la falla de parte del sistema

SINOPSIS

  • ACID aborda la consistencia de datos de un nodo individual
  • CAP aborda la consistencia de datos en todo el clúster
RolandoMySQLDBA
fuente
1
Eventual. Eventualmente debería haber sido en negrita, Rolando. Es el factor decisivo :) ¡Feliz año nuevo!
Philᵀᴹ
3

Teorema de CAP : especifica que un sistema distribuido puede proporcionar dos servicios (por ejemplo, disponibilidad y tolerancia de partición) pero nunca tres. Si, por ejemplo, un servicio proporciona disponibilidad y particionamiento, nunca puede garantizar la coherencia, no inmediatamente, por lo tanto, se utiliza la coherencia eventual, lo que permite que la infraestructura fluya entre inconsistencia y consistencia, sin embargo, en un momento, tarde o temprano, la infraestructura se volverá consistente , resultando en una consistencia eventual. Los servicios en la nube funcionan de esta manera y Simple DB de Amazon utiliza la consistencia eventual.

Las características de ACID generalmente se aplican a bases de datos relacionales. Si desea aplicar ACID de forma distribuida (DB distribuida), ACID utiliza 2PC (confirmación en dos fases) para forzar la coherencia entre las particiones. Sin embargo, dado que ACID proporciona consistencia y particionamiento, la aplicación del teorema CAP para (entornos distribuidos) significará que la disponibilidad está comprometida.

Debido a esto, se usa BASE (Básicamente disponible, estado blando, eventualmente consistente) que puede proporcionar niveles de escalabilidad que no se pueden obtener con ACID.

Espero que esto ayude.

Stefan M
fuente
-1

Con respecto a la consistencia en el teorema de CAP, Julian Brown escribe en su artículo ( http://www.julianbrowne.com/article/brewers-cap-theorem ):

Un servicio que es consistente funciona completamente o no funciona en absoluto. Gilbert y Lynch usan la palabra "atómico" en lugar de coherente en su prueba, lo que tiene más sentido técnicamente porque, estrictamente hablando, consistente es la C en ACID aplicada a las propiedades ideales de las transacciones de la base de datos y significa que los datos nunca serán persistentes. rompe ciertas restricciones preestablecidas. Pero si considera que es una restricción preestablecida de los sistemas distribuidos que no se permiten múltiples valores para el mismo dato, entonces creo que la fuga en la abstracción está tapada (además, si Brewer hubiera usado la palabra atómica, se llamaría AAP teorema y todos estaríamos en el hospital cada vez que tratamos de pronunciarlo).

Por lo tanto, la C en CAP correspondería a la A en ACID.

Con Gilbert y Lynch se refiere al artículo "Seth Gilbert y Nancy Lynch: la conjetura de Brewer y la viabilidad de servicios web consistentes, disponibles y tolerantes a la partición"

white_gecko
fuente
1
La coherencia CAP se aplica a un sistema distribuido, mientras que ACID se abstrae de ese nivel de la arquitectura del sistema. La coherencia de CAP puede ser necesaria para la implementación de la atomicidad de ACID, pero no es lo mismo.
mustaccio
Como Brewer, él mismo pone su teorema de CAP en relación con ACID ( people.eecs.berkeley.edu/~brewer/cs262b-2004/PODC-keynote.pdf, páginas 2 y 3), creo que es perfectamente válido profundizar en la correlación entre ambos.
white_gecko