如果Cassandra节点在压缩过程中耗尽磁盘空间会发生什么?

时间:2017-06-12 15:38:34

标签: database cassandra

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

当该节点进行压缩时,该过程比正常情况持续时间更长,磁盘使用率几乎达到1.5TB限制。压实持续了超过2天,我们很幸运,它完成了超过1.4TB。

如果节点在压缩期间耗尽磁盘空间会发生什么?可以恢复吗?它会清理自己并重试吗?或节点是否已满,需要退役?

1 个答案:

答案 0 :(得分:3)

取决于它,它可以从版本更改为版本和配置。如果有足够的空间让其压缩完成,它将会,并希望取决于数据模型,返回。一些压缩策略需要更多(SizeTieredCompactionStrategy STCS~50%)或更少(LeveledCompactionStrategy LCS~80%)自由空间来安全地运行"。您的数据模型可能会对其产生重大影响。

如果你实际上没有磁盘,你可以期待的是:

  • disk failure policy踢,其中可以关闭C *或忽略它。
  • 压缩执行程序上的未捕获IOException,它会终止该线程。最终,如果这样可以保持所有压缩线程都会死亡,那么你将遇到很多麻烦。这不应该发生,但是由于错误的错误,这是特定于版本的。