Cassandra在读墓碑吗?这个痕迹是什么意思?

3lxsmp7m  于 2021-06-14  发布在  Cassandra
关注(0)|答案(2)|浏览(306)

我在启用跟踪的情况下进行选择,并看到:

Skipped 0/1 non-slice-intersecting sstables
included 0 due to tombstones [ReadStage-<N>]

那么,忽视墓碑是否有效呢?跟踪:

Read 0 live rows and 2 tombstone cells

很明显:它正在读墓碑

o75abkj4

o75abkj41#

假设有一个a列。
您在a列中添加了值x。
然后删除了a列。
cassandra不会立即删除值x,而是为列a添加一个称为tombstone的标记。墓碑本身也是一个单独的记录,就像原始值x一样。
假设这两个更新是在不同的sstable(cassandra存储)中编写的。
现在,当您读取值时,cassandra将获得值x和列a的墓碑。它将看到tombstone写在值x之后,因此它不会返回任何值。
由于逻辑删除,跳过了0/1个非切片相交的SS0表
这基本上证实了这一点。

ht4b089n

ht4b089n2#

根据与一些Cassandra管理人员的谈话:
“跳过sstables是cassandra告诉我们它有效地消除了墓碑,这没关系
一般来说,删除分区中的所有内容有助于确保cassandra不会陷入墓碑的泥潭

相关问题