Saltar al contenido

¿Qué parte del teorema CAP sacrifica Cassandra y por qué?

Solución:

Cassandra generalmente se clasifica como un sistema AP, lo que significa que la disponibilidad y la tolerancia de partición generalmente se consideran más importantes que la coherencia. Sin embargo, los sistemas del mundo real rara vez caen claramente en estas categorías, por lo que es más útil ver CAP como un continuo. La mayoría de los sistemas harán un esfuerzo para ser consistentes, disponibles y tolerantes a las particiones, y muchos (incluida Cassandra) se pueden ajustar según lo que sea más importante. Girar botones como el factor de replicación y el nivel de consistencia puede tener un impacto dramático en C, A y P.

Incluso definir lo que significan los términos puede ser un desafío, ya que varios casos de uso tienen diferentes requisitos para cada uno. Entonces, en lugar de clasificar un sistema como CP, AP o lo que sea, es más útil pensar en términos de las opciones que proporciona para ajustar estas propiedades según corresponda para el caso de uso.

Aquí hay una discusión interesante sobre cómo han cambiado las cosas en los años desde que se introdujo por primera vez el teorema CAP.

GORRA representa Consistencia, Disponibilidad y Tolerancia de partición. En general, es imposible que un sistema distribuido garantice más de tres en un punto dado.

Apache Cassandra cae bajo el sistema AP, lo que significa que Cassandra es válido para Disponibilidad y Tolerancia de partición pero no para Consistencia pero esto se puede ajustar aún más a través del factor de replicación (cuántas copias de datos) y el nivel de coherencia (lectura y escritura).

Para más información: https://docs.datastax.com/en/cassandra/3.0/cassandra/dml/dmlConfigConsistency.html

Curiosamente, depende de la configuración de Cassandra. Cassandra puede ser como máximo AP sistema. Pero si lo configura para leer o escribir según el quórum, no permanece disponible en CAP (disponible según la definición del teorema CAP) y solo PAG sistema.

Solo para explicar las cosas con más detalle, el teorema CAP significa:

  1. C: (Linealización o consistencia fuerte) aproximadamente significa

Si la operación B se inició después de que la operación A se completó con éxito, entonces la operación B debe ver el sistema en el mismo estado en el que estaba al completar la operación A, o en un estado más nuevo. (pero nunca un estado más antiguo).

  1. A:

“Cada solicitud recibida por un [database] nodo en el sistema debe resultar en un [non-error] respuesta”. No es suficiente que algún nodo pueda manejar la solicitud: cualquier nodo que no falle debe poder manejarla. Muchos de los sistemas denominados “altamente disponibles” (es decir, con poco tiempo de inactividad) no cumplen en realidad esta definición de disponibilidad.

  1. PAG

Partition Tolerance (terriblemente mal llamado) básicamente significa que se está comunicando a través de una red asincrónica que puede retrasar o eliminar mensajes. Internet y todos nuestros centros de datos tienen esta propiedad, por lo que realmente no tiene otra opción en este asunto.

Fuente: impresionante trabajo de Martin kleppmann

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *