Saltar al contenido

Cassandra – soporte de transacciones

Solución:

Respuesta corta: No.

Por diseño, Cassandra valora la disponibilidad y la tolerancia de partición sobre la coherencia1. Básicamente, no es posible obtener una latencia aceptable mientras se mantienen las tres cualidades: hay que sacrificar una. Esto se llama teorema de CAP.

La cantidad de coherencia se puede configurar en Cassandra mediante niveles de coherencia, 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 se realiza correctamente.

Si no desea crear una aplicación con transacciones o bloqueos sobre Cassandra, probablemente quiera mirar Zookeeper, que puede usarse para proporcionar sincronización distribuida.

Puede que ya lo hayas adivinado, pero Cassandra no tiene claves externas ni nada de eso. Esto debe manejarse manualmente. No estoy tan familiarizado con Héctor, 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.

En la versión 2.x puede combinar declaraciones CQL en un lote registrado que es atómico. O todas o ninguna de las declaraciones tienen éxito. También puede leer sobre transacciones ligeras. Más que eso: hay varios administradores de persistencia para Cassandra. Puede lograr el comportamiento de claves externas a nivel de cliente con ellas. Por ejemplo, Achilles y Kundera.

Si Zookeeper puede manejar transacciones que tienen calidad de Oracle, entonces es un trato hecho. Las relaciones y la integridad de las relaciones no son un problema para implementar sobre CUALQUIER base de datos. Una clave externa es solo otro campo de datos. ACID / Transactions es el tema clave.

¡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 *