更新 cassandra 列表集合正在创建墓碑

Updating cassandra list collection is creating tombstones

Cassandra 版本 3.11.3

我有一些集合和列表集合的记录。 使用具有 adding/removing 数据的集合似乎没有或非常有限的墓碑创建。 然而,使用列表列似乎是在为每个查询创建一个墓碑。

我的印象是这个 bug 已经修复了。
我是不是做错了什么?

这样做 10k 次不会生成墓碑:(假设分区之前不存在)

update "Record" Set "AllSetItems" = "AllSetItems" + {'abc'} where "RecordId" = 5 and "Field" = 'xyz';
update "Record" Set "AllSetItems" = "AllSetItems" - {'abc'} where "RecordId" = 5 and "Field" = 'xyz';

因此这个查询工作正常:

Select * from "Record" where "RecordId" = 5 and "Field" = 'xyz';

这样做 10k 次会生成大量墓碑:(假设分区之前不存在)

update "Record" Set "AllListItems" = "AllListItems" + ['abc'] where "RecordId" = 5 and "Field" = 'xyz';
update "Record" Set "AllListItems" = "AllListItems" - ['abc'] where "RecordId" = 5 and "Field" = 'xyz';

由于墓碑太多,更新后此查询失败:

Select * from "Record" where "RecordId" = 5 and "Field" = 'xyz';

我相信这是按预期工作的。阅读这篇文章(虽然有点过时),看看它是否解释了您的情况。

https://jsravn.com/2015/05/13/cassandra-tombstones-collections/#lists