Cassandra Легкие транзакции и чтение - PullRequest
0 голосов
/ 17 июня 2020

Я читаю Cassandra: The Definitive Guide, 3-е издание. Он имеет следующий текст:

Уровень согласованности последовательного порта также может применяться к чтениям. Если Cassandra обнаруживает, что запрос читает данные, которые являются частью незафиксированной транзакции, она фиксирует транзакцию как часть чтения в соответствии с указанным последовательным уровнем согласованности.

незафиксированная транзакция и не мешает ли она откатить писатель?

Ответы [ 2 ]

1 голос
/ 30 июня 2020

https://community.datastax.com/questions/5769/why-a-read-is-committing-an-uncommitted-transactio.html

  • Committed означает, что мутация (INSERT, UPDATE или DELETE) не добавляется на commitlog.
  • Uncommitted - это когда мутация все еще находится в процессе сохранения в commitlog.
  • Для того, чтобы LWT предоставил гарантии, такие как IF EXISTS или IF NOT EXISTS, он должен добавить любые данные, которые не были записаны в commitlog другой операцией in-flight, в commitlog.
0 голосов
/ 19 июня 2020

Здесь незафиксированные данные не означают, что запись была неудачной. Незавершенные данные - это успешные данные, записанные на какой-то узел в кластере, которые не обновляются в текущем узле.

здесь,

он фиксирует транзакцию как часть чтения

означает, что Cassandra инициирует восстановление чтения и обновит данные в узле перед отправкой данных обратно клиенту.

Откат здесь отсутствует, потому что запись прошла успешно, и это касается только репликации данных между узлами

...