我计划建立一个多数据中心Cassandra 2,每个数据中心有2-4个节点,以及几个10s的数据中心。我们在每个数据中心的一定数量的节点上复制了密钥空间。我们有一个基于vnode的部署。因此,令牌应该自动分配给节点。
t.html的文档表明,添加新节点需要在集群的所有其他节点上运行清理。但是,它并没有阐明多数据中心设置中的过程。
我的理解是nodetool清理删除不再属于该节点的数据。当建立一个新的数据中心时,我们正在创建全新的副本和AFAICT,它不会导致数据在这个新数据中心之外的移动/再平衡,因此在其他数据中心的节点上不需要清理。是否有人能够确认我的理解是否正确,并且其他数据中心的节点不需要清理?
发布于 2014-08-26 15:12:15
您的理解是正确的,但问题的答案因创建密钥空间时所设置的复制策略而异。如果您在所有的键空间上使用NetworkTopologyStrategy,那么多个数据中心将按照您的理解和解释进行操作,并且不需要在添加新的数据中心之后进行清理。但是,如果您在任何密钥空间上使用SimpleStrategy,那么所有的数据中心都将作为该密钥空间的单个集群工作,因此在添加新的节点/节点后需要进行清理。
可以在cqlsh上使用以下命令检查当前复制策略:
describe KEYSPACE keyspacename希望能帮上忙!
https://stackoverflow.com/questions/25099855
复制相似问题