¿Cómo Héctor/Cassandra maneja operaciones secuenciales?
-
27-10-2019 - |
Pregunta
Usando un mutador héctor, actualizo alguna fila sobre n operación secuencial. ¿Existe una garantía, que los cambios ocurren en el orden en que se agregan a Mutator?
El ejemplo más simple, si elimino alguna fila y luego la recrearán inmediatamente. ¿No podría suceder, que la eliminación ocurra después de insertar?
¿Cómo lo maneja Cassandra Cluster, si se envían dos solicitudes secuenciales a diferentes nodos? Siempre es posible que haya pocos milisegundos entre nodos ...
Solución
Cassandra resuelve conflictos utilizando marcas de tiempo suministradas por el cliente. En su ejemplo, el 'recrear' de la fila tendrá una marca de tiempo más alta que la fila eliminar, por lo que no importa si de alguna manera llegan al servidor en el orden incorrecto.
Una consecuencia de las marcas de tiempo suministradas por el cliente es que necesita sincronizar los relojes en sus máquinas cliente o diseñar su modelo de datos para que diferentes clientes no entren en conflicto entre sí.