Teorema de CAP frente a BASE (NoSQL)

12

Teorema de CAP frente a BASE (NoSQL)

Hola, estoy tratando de escribir un pequeño artículo para mi trabajo sobre NoSQL y he descrito el Teorema CAP como, si no todos, a lo que se adhiere la mayoría de las bases de datos NoSQL. Más tarde leí un artículo sobre la diferencia entre NoSQL y RDBMS que decía que las bases de datos NoSQL usan la contraparte ACID BASE.

Conozco las propiedades de BASE, ACID y CAP, pero me resulta difícil descubrir qué relación tienen el teorema de CAP y BASE entre sí. Según tengo entendido, el teorema de CAP lleva al acrónimo BASE, pero ¿es la conclusión correcta? ¿O son dos enfoques diferentes para "construir" una base de datos alrededor de la cual compartir algunas propiedades similares?

En esta publicación de blog (http://www.johndcook.com/blog/2009/07/06/brewer-cap-theorem-base/) el autor escribe:

Es más difícil desarrollar software en el mundo BASE tolerante a fallas en comparación con el exigente mundo de ACID, pero el teorema CAP de Brewer dice que no tiene otra opción si desea escalar. Sin embargo, como Brewer señala en esta presentación, existe un continuo entre ACID y BASE. Puede decidir qué tan cerca quiere estar de un extremo del continuo u otro de acuerdo con sus prioridades.

En otro artículo, el autor escribe:

Muchas de las bases de datos NOSQL, sobre todo, han aflojado los requisitos de coherencia para lograr una mejor disponibilidad y particionamiento. Esto resultó en sistemas conocidos como BASE (Básicamente disponible, Soft-state, Eventualmente consistente). No tienen transacciones en el sentido clásico e introducen restricciones en el modelo de datos para permitir mejores esquemas de partición (como el sistema Dynamo, etc.). Una discusión más completa de CAP, ACID y BASE está disponible en esta introducción.

Esto indica claramente que CAP da como resultado BASE.

Espero que alguien pueda aclararme esto y eliminar mi confusión.

Gracias
- mestika

Mestika
fuente

Respuestas:

15

CAP es básicamente un continuo a lo largo del cual BASE y ACID están en extremos opuestos.

Diagrama CAP

CAP es consistencia, disponibilidad y tolerancia de partición. Básicamente, puedes elegir 2 de esos, pero no puedes hacer los 3.

ACID se centra en la consistencia y la disponibilidad.

BASE se enfoca en la tolerancia y disponibilidad de Partición y arroja consistencia por la ventana.

JNK
fuente
1
Una buena base de datos ACID debería centrarse en la coherencia y la tolerancia de la partición, porque arrojar la tolerancia de la partición por la ventana (para ponerlo en sus palabras) rompería la coherencia cada vez que se produzca una partición.
Peter
ACID no se centra en la disponibilidad. La 'A' significa Atomicidad y cubre cosas como abortar, deshacer, reiniciar.
momo