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

StackOverflow https://stackoverflow.com/questions/8835853

Вопрос

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

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

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

Это было полезно?

Решение

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top