3

我的问题很简单。是否可以以任何方式检索在期限到期(默认 10 天)tombstone之前标记的列。GCGraceSeconds如果是,那么确切的 CQL 查询是什么?

如果我要了解删除过程,则会在 MemTables 上标记墓碑,并且 SSTable 是不可变的等待压缩仍然有已删除的数据等待压缩。那么在压缩发生之前,有什么方法可以从 Memtable 或 SSTable 中读取墓碑数据?

在 CQLSH 命令提示符和 Cassandra 2.0 上使用 CQL 3.0。

4

2 回答 2

2

你是对的,当一个墓碑被插入时,它通常不会立即删除底层数据(除非你所有的数据都在一个内存表中)。但是,您无法控制它何时发生。如果您没有太多数据并且压缩发生得很快,那么底层数据可能会很快被删除,比 10 天快得多。

没有读取已删除数据的查询,但您可以使用 sstable2json 检查所有 SSTable 以查看它们是否包含已删除数据。

于 2014-07-20T18:18:02.100 回答
0

只是为了补充以前的评论。对于经常删除的列族,具有较低的 gc_grace_seconds 值。gc 需要一些时间,但墓碑预计会被清除。

于 2014-07-21T05:57:44.177 回答