java - tutorial - descargar cassandra para windows
Cassandra-soporte de transacciones (3)
Estoy pasando por Apache Cassandra y trabajando en la inserción de datos de muestra, recuperación, etc.
La documentación es muy limitada.
Estoy interesado en saber
- ¿podemos reemplazar completamente la relación db como mysql / oracle con cassandra?
- ¿Cassandra soporta rollback / commit?
- ¿Cassandra clients (thrift / hector) admite la obtención de objetos asociados (objetos en los que guardamos la clave de una súper columna en otra familia de súper columnas)?
Esto me ayudará mucho para seguir adelante.
gracias de antemano.
En la versión 2.x puede combinar declaraciones CQL en un batch registrado que es atómico. O todas o ninguna de las afirmaciones tienen éxito. También puedes leer sobre transacciones ligeras . Más que eso, hay varios gestores de persistencia para Cassandra. Puede lograr el comportamiento de claves externas en el nivel de cliente con ellos. Por ejemplo, Achilles y Kundera .
Respuesta corta: No.
Por diseño, Cassandra valora la disponibilidad y la tolerancia de partición sobre la consistencia 1 . Básicamente, no es posible obtener una latencia aceptable mientras se mantienen las tres cualidades: una tiene que ser sacrificada. Esto se llama teorema de CAP.
La cantidad de consistencia es configurable en Cassandra usando niveles de consistencia, pero no existe ninguna semántica para la reversión. No hay garantía de que pueda revertir sus cambios incluso si la primera escritura tiene éxito.
Si no desea compilar una aplicación con transacciones o bloqueos sobre Cassandra, es probable que desee ver a Zookeeper, que se puede usar para proporcionar sincronización distribuida.
Es posible que ya hayas adivinado esto, pero Cassandra no tiene llaves externas ni nada de eso. Esto tiene que ser manejado manualmente. No estoy muy familiarizado con Hector, pero un cliente de nivel superior podría hacer esto de forma semiautomática.
Si puede o no usar Cassandra para reemplazar fácilmente un RDBMS depende de su caso de uso específico. En su caso de uso (basado en sus preguntas), puede ser difícil hacerlo.
Si Zookeeper es capaz de manejar transacciones que tienen la calidad de Oracle, entonces es un trato hecho. Las relaciones y la integridad de las relaciones no es un problema para implementar sobre CUALQUIER base de datos. Una clave externa es simplemente otro campo de datos. ACID / Transacciones es el tema clave.