在Cassandra中检索“墓碑式”记录

时间:2014-07-18 13:05:01

标签: cassandra cql cql3 cqlsh tombstone

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

如果我理解删除过程,则在MemTables上标记逻辑删除,并且SSTable是不可变的,等待压缩仍然有已删除的数据等待压缩。那么在压缩发生之前有没有办法从Memtable或SSTable中读取逻辑删除的数据?

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

2 个答案:

答案 0 :(得分:2)

你是对的,当插入墓碑时,它通常不会立即删除基础数据(除非所有数据都在记忆中)。但是,您无法控制它何时发生。如果您没有太多数据并且压缩很快就会发生,那么基础数据可能会很快被删除,比10天还要快。

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

答案 1 :(得分:0)

只是添加到上一个评论。对于频繁删除的列族,gc_grace_seconds值较低。 gc需要一些时间,但预计墓碑会被清除。