Как Гектор / Кассандра обрабатывает последовательные операции?

Используя гектор Mutator, я обновляю ряд последовательных операций над N. Есть ли гарантия, что изменения происходят в том порядке, в котором они были добавлены в Mutator?

Самый простой пример, если я удаляю какую-то строку, а затем сразу же воссоздаю ее. Может ли случиться так, что удаление происходит после вставки?

Как кластер Cassandra управляет этим, если два последовательных запроса отправляются на разные узлы? Всегда возможно, что разница между узлами составляет несколько миллисекунд...

1 ответ

Решение

Cassandra разрешает конфликты, используя временные метки, предоставленные клиентом. В вашем примере "воссоздание" строки будет иметь более высокую временную метку, чем удаление строки, поэтому не имеет значения, попали ли они на сервер в неправильном порядке.

Одним из следствий предоставленных клиентом временных меток является то, что вам необходимо либо синхронизировать часы на своих клиентских компьютерах, либо спроектировать модель данных так, чтобы разные клиенты не конфликтовали друг с другом.

Другие вопросы по тегам