Кассандра вставлены противоречивые / частичные записи - PullRequest
0 голосов
/ 12 октября 2019

У меня есть таблица, где у меня есть 4 столбца A, B, C, D, а именно. Я использую LWT для всех операций создания / обновления / удаления в этой таблице. А мой единственный первичный ключ. Мои запросы выглядят примерно так: -

INSERT INTO xTable(A,B,D) Values ('123','','456') IF NOT EXISTS.
UPDATE INTO xTable SET B = '789' AND C = '' WHERE A = '123' IF EXISTS.
UPDATE INTO xTable SET B = '789' AND C = '456789' WHERE A = '123' IF EXISTS.
DELETE FROM xTable where A = '123' IF B = '789'. 

В любой момент времени у нас не может быть значения C в записи, но B пусто. Но когда я читаю из этой таблицы,

select * from xTable where A = '123';

, я получаю правильные значения A, C, D, то есть '123', '789', '456' соответственно, но Bпустой. Также нет ошибок, полученных при выполнении любого из вышеупомянутых запросов.

Что может быть возможной причиной этих противоречивых данных ??

Cassandra версии 3.7. Я использую gocql драйвер golang для выполнения запросов.

EDIT - 1

Я использую согласованность уровня QUORUM для всех запросов. Также это прерывистая проблема. Это происходит редко и не воспроизводится легко

...