我的问题非常简单。是否可以以任何方式检索在tombstone
期限到期之前标记为GCGraceSeconds
的列(默认为10天)。如果是,那么确切的CQL查询是什么?
如果我理解删除过程,则在MemTables上标记逻辑删除,并且SSTable是不可变的,等待压缩仍然有已删除的数据等待压缩。那么在压缩发生之前有没有办法从Memtable或SSTable中读取逻辑删除的数据?
在CQLSH命令提示符上使用CQL 3.0& Cassandra 2.0。
答案 0 :(得分:2)
你是对的,当插入墓碑时,它通常不会立即删除基础数据(除非所有数据都在记忆中)。但是,您无法控制它何时发生。如果您没有太多数据并且压缩很快就会发生,那么基础数据可能会很快被删除,比10天还要快。
没有查询来读取已删除的数据,但您可以使用sstable2json检查所有SSTable,以查看它们是否包含已删除的数据。
答案 1 :(得分:0)
只是添加到上一个评论。对于频繁删除的列族,gc_grace_seconds值较低。 gc需要一些时间,但预计墓碑会被清除。