riak_core节点重新平衡挂起



我有一个带有3个物理节点的riak_core环。当我加入集群中的前两个节点时(通过riak_admin集群计划;risk_admin-cluster提交),risk_admin成员状态显示集群处于有效状态,但所有节点(100%)仍位于第一个节点上,两个节点都显示挂起50%。

我原以为集群会相对较快地重新平衡,但在重新启动其中一个节点之前,什么都没发生。当节点出现时,成员状态显示25%的节点被移动到第二个节点。另一次重新启动导致节点之间完全重新平衡50%-50%。

我删除了两个节点上的data/ring-dir,并试图将所有3个可用节点连接到一个新的集群中——同样的事情也发生了,但这次挂起节点的拆分大约为33%/33%/34%(正如预期的那样)。只有在我反弹了几次节点之后,集群才重新平衡。

这是预期的行为吗?我原以为提交集群计划的行为会触发物理节点之间的vnode重新定位?

需要澄清的是,这是一款全新的riakcore应用程序,没有实现任何自定义切换功能。

--
请注意,这也被发送到riak用户邮件列表

我想我明白了——这完全是我的错。结果我在node_watcher中用错了名字。

ok = riak_core_node_watcher:service_up(<wrong_name>, self()),

这可能导致集群信息没有正确地通过环传播。我一解决这个问题,就自动解决了在加入集群的新节点上动态分配节点的问题。

非常有趣的是,vnode是在重新启动时分配的。

最新更新