Предоставляет ли Cassandra согласованность чтения после записи для одного узла?

На одном узле Кассандра, если я выполняю

write(key=A, value=3)
write(key=A, value=5)
a_value = read(key=A)

было бы a_value быть 3 или 5? Или, другими словами, Кассандра гарантирует согласованность чтения после записи, где мы всегда видим самые последние значения?

2 ответа

Решение

Да, если последовательность запросов на чтение и запись имеет вид Write-> Read. Если ваш запрос является синхронным (session.execute), это означает, что вы ожидаете ответа на свой запрос на запись и после получения успешного ответа выполняете запрос на чтение, тогда да, вы получите самое последнее значение. Поскольку для одного узла данные не распределяются между несколькими узлами, таким образом, не нужно беспокоиться о сохранении согласованности.

Если вы ждете ответа, тогда да. Если вы не ждете ответа на запрос на запись, запрос на чтение может быть обработан раньше.

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