【问题标题】:What happens if a Cassandra node runs out of disk space during a compaction?如果 Cassandra 节点在压缩期间用完磁盘空间会怎样?
【发布时间】:2017-06-12 15:38:33
【问题描述】:

我们有一个 Cassandra 节点,它接收到一些非常大的写入;每个大约 2.9MB,写入约 200 次。通常,我们集群上的每个节点大约有 800GB 的使用量;我们的 EC2 实例上大约有 1.5TB 空间。

当该节点进行压缩时,该过程持续的时间比正常情况要长得多,并且磁盘使用量几乎达到了 1.5TB 的限制。压缩持续了 2 多天,我们很幸运地完成了 1.4TB 多一点。

如果节点在压缩期间耗尽磁盘空间会怎样?能恢复吗?它会自行清理并重试吗?还是节点满了需要下线?

【问题讨论】:

    标签: database cassandra


    【解决方案1】:

    视情况而定,它可以从版本到版本和配置进行更改。如果有足够的空间来完成它的压缩,并且希望取决于数据模型,它会返回。一些压缩策略需要更多 (SizeTieredCompactionStrategy STCS ~50%) 或更少 (LeveledCompactionStrategy LCS ~80%) 可用空间才能“安全”运行。您的数据模型会对其产生重大影响。

    如果你真的用完了磁盘,你可以期待的是:

    • disk failure policy 启动,可以关闭 C* 或忽略它。
    • 压缩执行程序上未捕获的 IOException,它会杀死线程。最终,如果这继续下去,所有的压缩线程都会死掉,你会遇到很多麻烦。这不应该发生,而是由于非常特定于版本的杂项错误。

    【讨论】:

      猜你喜欢
      • 2015-03-05
      • 1970-01-01
      • 2018-11-10
      • 2017-04-06
      • 1970-01-01
      • 1970-01-01
      • 2018-03-02
      • 2022-06-29
      • 2019-06-10
      相关资源
      最近更新 更多