Предоставляет ли 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), это означает, что вы ожидаете ответа на свой запрос на запись и после получения успешного ответа выполняете запрос на чтение, тогда да, вы получите самое последнее значение. Поскольку для одного узла данные не распределяются между несколькими узлами, таким образом, не нужно беспокоиться о сохранении согласованности.
Если вы ждете ответа, тогда да. Если вы не ждете ответа на запрос на запись, запрос на чтение может быть обработан раньше.