【问题标题】:How are Cassandra Tombstones deleted in old SSTables?如何在旧的 SSTables 中删除 Cassandra 墓碑?
【发布时间】:2018-07-13 22:41:06
【问题描述】:

如果我启用了压缩,比如SizeTieredCompaction,我的SSTables 会被压缩,直到达到某个大小级别。当我“删除”一个位于SSTable 分区中的旧条目时,该条目相当旧并且在不久的将来不会再次被压缩,什么时候删除?

假设您删除了 100 个条目,它们都是一个非常旧的 SSTable 的一部分,该 SSTable 被压缩了几次,没有热数据并且已经相当大了。需要很长时间才能再次压缩并移除墓碑,对吧?

【问题讨论】:

    标签: cassandra tombstone


    【解决方案1】:

    当墓碑与压缩中的数据合并时,数据将从磁盘中删除。何时发生取决于添加新数据的速率和您的压缩策略。直到 gc_grace_seconds 之后才会清除墓碑,以防止数据复活(确保在这段时间内完成修复)。

    如果你覆盖或删除了很多数据,并且对磁盘上的大量过时数据不满意,你可能应该使用LeveledCompactionStrategy 代替(如果使用 ssds,我建议始终默认为 LCS)。如果使用 STCS,压缩最大的 sstable 可能需要 很长时间。 STCS 更多的是用于不断附加数据(如日志或事件)。如果条目随着时间的推移而过期并且您严重依赖 TTL,那么您可能需要使用定时窗口策略。

    【讨论】:

      猜你喜欢
      • 2017-10-03
      • 2019-02-16
      • 2015-06-04
      • 2023-03-08
      • 2015-11-18
      • 2021-04-22
      • 2015-02-25
      • 2019-07-09
      • 2014-09-09
      相关资源
      最近更新 更多