我的问题很简单。是否有可能在GCGraceSeconds
期限到期(默认为10天)之前检索标记为tombstone
的列?如果是的话,确切的CQL查询是什么?
如果我理解删除过程,墓碑在memtable上被标记,SSTable是不可变的,等待压缩,仍然有被删除的数据等待压缩。因此,在压缩发生之前,是否有任何方法从Memtable或SSTable读取墓碑数据?
在CQLSH命令提示符&卡桑德拉2.0。
您是对的,当插入墓碑时,它通常不会立即删除底层数据(除非您的所有数据都在memtable中)。然而,你无法控制它何时发生。如果你没有太多的数据,压缩发生得很快,底层数据可能会很快被删除,比10天快得多。
没有查询读取已删除的数据,但是你可以使用sstable2json检查所有的sstable,看看它们是否包含已删除的数据。
只是为了添加到前面的注释中。对于频繁删除的列族,设置较低的gc_grace_seconds值。gc需要一些时间,但是墓碑应该会被清除。