【问题标题】:Cassandra node - rebuild v.s. repairCassandra 节点 - 重建 vs.修理
【发布时间】:2016-03-21 22:00:11
【问题描述】:

有什么区别:

a)nodetool rebuild

b)nodetool repair [-pr]

换句话说,各个命令究竟做了什么?

【问题讨论】:

标签: cassandra


【解决方案1】:

nodetool rebuild:类似于引导过程(向集群添加新节点时),但针对的是数据中心。这里的过程主要是从已经活跃的节点到新节点的流式传输(新节点是空的)。所以在为节点定义了非常快的键范围之后,剩下的可以看作是一个复制操作。

nodetool repair -pr:不是复制操作,被修复的节点不是空的,它已经包含数据但是如果复制因子大于1,则需要将数据与其余副本上的数据进行比较如果有差异,它将被纠正。该过程涉及大量流式传输,但不是数据流式传输:正在修复的节点请求一个默克尔树(基本上是一棵哈希树),以验证两个节点拥有的信息是否相同,如果不是,它请求一个有任何差异的数据部分的完整流(因此所有副本都具有相同的数据)。如果流式传输此哈希值比流式传输验证之前的整个数据更快,则这是在假设两个节点上的大多数数据相同的情况下工作的,除了这里和那里的一些差异。此过程还会删除从数据库中删除时创建的墓碑,定义为一个新的“检查点”,在删除数据后将创建新的墓碑,但不再使用旧的墓碑。

希望对你有帮助!

【讨论】:

    猜你喜欢
    • 2016-10-07
    • 2019-08-29
    • 2015-05-20
    • 1970-01-01
    • 2019-05-28
    • 2019-08-22
    • 2021-10-18
    • 2019-05-29
    • 1970-01-01
    相关资源
    最近更新 更多