Как Гектор / Кассандра обрабатывает последовательные операции? - PullRequest
1 голос
/ 12 января 2012

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

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

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

1 Ответ

3 голосов
/ 13 января 2012

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

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

...