Cassandra 卡桑德拉在读墓碑吗?这个痕迹是什么意思?
我在启用跟踪的情况下进行选择,并查看:Cassandra 卡桑德拉在读墓碑吗?这个痕迹是什么意思?,cassandra,Cassandra,我在启用跟踪的情况下进行选择,并查看: Skipped 0/1 non-slice-intersecting sstables included 0 due to tombstones [ReadStage-<N>] 很清楚:它正在读墓碑假设有一列a 将值x添加到列A 然后删除了A列 Cassandra不会立即删除值x,而是为a列添加一个标记,称为墓碑。墓碑本身也是一个单独的记录,就像原始值x一样 假设这两个更新是在不同的SSTABLE(Cassandra存储)中编写的 现在,当您
Skipped 0/1 non-slice-intersecting sstables
included 0 due to tombstones [ReadStage-<N>]
很清楚:它正在读墓碑假设有一列a
这基本上证实了这一点。根据与一些Cassandra管理员的交谈: “跳过sstables是Cassandra告诉我们它有效地消除了墓碑,这没关系
“删除分区中的所有内容通常有助于确保Cassandra不会陷入墓碑泥潭Cassandra在删除数据时使用“墓碑”标记,因为删除需要在网络上分发。考虑这种情况:我们试图对存在于六个商店的记录执行删除操作,然后其中一个“删除”操作失败。系统无法很容易地判断一条剩余记录是否是失败的删除,因此它可能认为该记录是有效数据并重新分发它。墓碑标志着记录正在被删除,直到所有副本都消失,然后墓碑被删除。这是正常的。对于Cassandra,所有记录都是不可变的,没有
为列a添加标记,该列称为墓碑。
。相反,C*将创建一个带有墓碑标记和较新时间戳的新记录。当发出一个查询时,引擎将找到2条记录(一条在创建时,第二条在删除时),并根据最新的时间戳决定该记录的当前状态。我所说的标记是指一条新记录,但也许我可以让语言更清楚。感谢您指出,“删除分区中的所有内容通常有助于确保Cassandra不会陷入墓碑困境”,即使删除分区,也会创建墓碑。
Read 0 live rows and 2 tombstone cells