【问题标题】:Will cassandra full compaction remove expired data in files generated by previous compaction?cassandra 完全压缩会删除先前压缩生成的文件中的过期数据吗?
【发布时间】:2015-12-04 12:07:32
【问题描述】:

我在cassandra有一张TTL=10days的表,我一般每周一周四做full compaction。

我注意到在星期四压缩后,Cassandra 没有触摸/压缩星期一生成的文件。

这是为什么呢?周一生成的文件是否可能太大?我该如何解决?顺便说一句,我使用 SizeTieredCompactionStrategy。

【问题讨论】:

    标签: cassandra cassandra-2.0


    【解决方案1】:

    当您说您进行“完全压缩”时,您究竟在做什么来触发它?

    通常,SizeTieredCompaction 只会压缩一组大小相似的 SSTable。这意味着如果您的表(表 1)从星期一开始的大小为 X MB,并且您将表上的 min_threshold 设置为 4,那么在表 1 再次被压缩之前,它将需要 4 个 ~X Mbs 的表。这意味着,如果您说每 3 天生成一个约 X MB 的新压缩表,则原始表再次压缩需要 9 天。

    【讨论】:

    • 我不确定我是否理解您的回答。我的意思是“完全压缩”是我运行“nodetool compact”。 “nodetool compact”通常会生成一个非常大的文件。几天后运行“nodetool compact”时,如果“nodetool compact”生成的文件太大,会导致“no suffice disk”异常,忽略。
    • 是的,我正在回答计划压缩运行时会发生什么,或者当您使用指定的表运行 nodetool compact 时会发生什么(次要压缩)。当你按照你指定的方式运行它时,它将要求你有足够的磁盘空间来写入一个包含所有数据的新文件,因为它将所有 SSTables 压缩到一个新的 SSTable 中。听起来您没有足够的磁盘空间,这是您问题的根源。
    猜你喜欢
    • 1970-01-01
    • 2018-03-14
    • 1970-01-01
    • 2011-02-17
    • 1970-01-01
    • 2016-05-02
    • 1970-01-01
    • 2019-01-03
    • 1970-01-01
    相关资源
    最近更新 更多