当前位置:  开发笔记 > 编程语言 > 正文

为什么在cassandra中进行nodetool清理后丢失了一些数据

如何解决《为什么在cassandra中进行nodetool清理后丢失了一些数据》经验,为你挑选了1个好方法。

我们向数据中心添加了一个新节点,然后nodetool cleanup根据cassandra中的现有集群添加新节点运行.但是在清理完成后,我们注意到我们丢失了一些数据.

可能是什么原因?



1> Aaron..:

是的,重要的是要了解这nodetool cleanup是一种潜在的破坏性工具.您的群集需要处于完全修复状态(从nodetool repair之前的常规成功运行).

向集群添加新节点时,将调整每个节点负责的令牌范围,并降低每个节点的令牌范围.这会在他们不再负责的原始节点上留下数据.这是设计的.

我们的想法是,如果由于某种原因,节点添加进程失败并且您必须将群集保留为其原始大小,那么数据仍然存在.但是,如果您无法保证您的群集首先处于完全修复状态并且运行了清理,则可能并非所有副本都会将其转移到正确的节点.但是像nodetool getendpoints引导程序一样会假设它是.

这就是为什么确保运行之前定期nodetool repair在群集上运行很重要的原因.nodetool cleanup

推荐阅读
小色米虫_524
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有