插入Cassandra不一致/部分记录

时间:2019-10-12 07:38:09

标签: cassandra cassandra-3.0 gocql

我有一个表,其中有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为空。 同样,在执行上述任何查询时都没有收到错误。

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

Cassandra版本3.7。 我正在使用golang的gocql驱动程序来执行查询。

编辑-1

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

0 个答案:

没有答案