0

我有一张桌子,其中有 4 列 A、B、C、D。我将 LWT 用于此表中的所有创建/更新/删除操作。A 是我唯一的主键。我的查询有点像这样:-

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 为空白。在执行上述任何查询时也没有收到错误。

这种不一致的数据可能是什么原因?

卡桑德拉 3.7 版。我正在使用 golang 的 gocql 驱动程序来执行查询。

编辑 - 1

我对所有查询都使用了 QUORUM 级别的一致性。这也是一个间歇性问题。它很少发生并且不容易重现

4

0 回答 0