database - 优雅的 Riak 强制替换

标签 database nosql riak

这是我一遍又一遍地阅读文档并没有弄清楚的事情。

一个。我有一个不健康的、不可访问的节点——我们称它为节点 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/

相关文章:

php - 使用 JQuery AJAX 和 php 获取数据到 mysql 数据库

javascript - 优化 IndexedDB 查询

sharding - 对于以写入为主的 30 亿行,使用什么 NoSQL 数据存储

riak - Riak(开源)是否支持某种形式的多站点复制?

indexing - Riak 二级索引数据类型的用途是什么?

erlang - 使用 Riak 进行映射

mysql - 我的 SQL 语法有什么问题?我在其中使用了 DISTINCT 和 EXCEPT

mysql - 从表中选择具有不同列值的行

mysql - 查询3张表,永远持续

mysql - 如何在 Django 中混合使用 Mysql 和 MongoDB