发布question并阅读this和that条款后,我仍然不理解这三种操作之间的关系 -
在压缩任务运行时是否可以处理修复任务,还是在压缩任务运行时进行清理?清理是一项需要每周执行修复的操作吗?为什么修复操作需要手动执行,而不是Cassandra默认行为?
健康集群维护的基本规则是什么?
答案 0 :(得分:17)
cleanup
是一种压缩,它只删除节点令牌范围之外的内容。 repair
有一个"验证压缩"构建一个merkle树以与其他节点进行比较,因此nodetool repair
的一部分将进行压缩。
在压缩任务运行时是否可以处理修复任务,还是在压缩任务运行时进行清理?
对于正常压缩,修复,清理,清理等压缩,存在共享池。这是cassandra.yaml中的concurrent_compactors
设置,默认为核心数据和数据目录的组合:https://github.com/apache/cassandra/blob/cassandra-2.1/src/java/org/apache/cassandra/config/DatabaseDescriptor.java#L572
清理是一项需要每周执行修复的操作吗?
不,仅在拓扑发生变化后才会发生。
为什么修复操作需要手动执行,而且不是Cassandra的默认行为?
其手册,因为其要求可能会因您的数据和gc_grace
要求而有很大差异。 https://issues.apache.org/jira/browse/CASSANDRA-10070将它带入Cassandra,尽管如此,它将是自动的。
健康集群维护的基本规则是什么?
我愿意(意见)说: