这是我一遍又一遍地阅读文档并没有弄清楚的事情。
一个。我有一个不健康的、不可访问的节点——我们称它为节点 A——我想将其从 Riak 集群中移除并替换为一个新的、健康的节点 B。
我想在执行此操作的同时最大程度地减少集群流量,以使用节点 A 应该拥有的数据“重新填充”节点 B。
我想我可以通过启动节点 B 来做到这一点,甚至可以从节点 A 数据的小时备份
但是,由于节点的名称发生变化(从节点 A 更改为节点 B),我必须首先 join
节点 B 作为集群上的一个全新节点,然后使用 cluster force- replace
将节点 A 替换为节点 B。
我的问题是 - 这个过程会导致:
一个。节点 B 上的现有备份数据得到尊重,只有上一小时的空白由 Read Repair
或者,节点 B 上的备份数据被完全忽略(因为备份是针对“节点 A”而运行的节点是“节点 B”)并且节点 B 被来自其他节点的流量刷新,试图用数据填充它 < b>从头开始。
也许我只是没有阅读正确的内容或花了太多时间思考这个问题。让我知道这将如何运作。
谢谢!!
最佳答案
开发:
riak-admin cluster force-replace
所做的是将分区的所有权重新分配给加入的节点。您将在 (A) 处结束:将使用现有数据,并通过读取修复填充剩余时间。
流水线中的一些文档更改应该会使此过程更加清晰。对于您的任何困惑,我们深表歉意。
希望对您有所帮助,
查理·沃伊塞尔
cvoiselle@basho.com
关于database - 优雅的 Riak 强制替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14581106/