【问题标题】:Retrieving "tombstoned" records in Cassandra在 Cassandra 中检索“墓碑”记录
【发布时间】:2014-09-09 15:17:10
【问题描述】:

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

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

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

【问题讨论】:

    标签: cassandra cql cql3 cqlsh tombstone


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 只要您定期运行修复(至少每次 gc_grace)或不关心已删除的值被复活。
      猜你喜欢
      • 2023-03-08
      • 2015-06-14
      • 2017-08-22
      • 2019-07-09
      • 2018-11-20
      • 2017-02-09
      • 2018-12-11
      • 2017-10-03
      • 2017-02-09
      相关资源
      最近更新 更多