在一个节点或所有节点中调用Major Compaction

时间:2015-04-10 21:35:43

标签: cassandra

大家好。我仍然是卡桑德拉的菜鸟,所以请耐心等待我。

我的问题是,当我运行一个主要的压缩时,我是否必须在所有节点中运行它,或者我只需要在一个节点中运行它并且会在所有剩余节点中触发主要压缩吗?

2 个答案:

答案 0 :(得分:3)

如果使用nodetool compact,它将仅在您运行nodetool的cassandra节点上执行主要压缩。我会避免在生产中同时对所有节点进行主要压缩,因为压缩会影响性能。您也应该有充分的理由进行重大压缩,因为这是一项昂贵的操作,而且在大多数用例中都不会这样做。

答案 1 :(得分:2)

您的数据模型听起来非常像一个队列,这是一个众所周知的cassandra反模式。

一般来说,如果您希望您的数据一次只能存活5分钟,那么强制进行重大压缩可能是您可以做的最糟糕的事情 - 理想情况下您想要使用TTL,或者可能非常放弃GCGS低并考虑使用日期分层压缩而不是大小分层或水平,以便可以快速有效地删除整个sstables。