4

我正在阅读《七周内的七个数据库》一书(到目前为止读得很好),我对书中快速传递的 Riak 细节感到困惑。

默认情况下,Riak 应该将数据分成 64 个分区。这些分区中的每一个都应该在环中的节点之间分割。(如果我用错了术语,请纠正我。)

我正在使用 Riak 源附带的 4 个开发节点。他们都开始了,但是当我curl http://localhost:8091/stats | grep ring,我看到

"ring_ownership": "[{'dev1@127.0.0.1',64}]"

进一步证实了这一点$RIAK_INSTALL/dev/dev4/bin/riak-admin member-status

================================= Membership ==================================
Status     Ring    Pending    Node
-------------------------------------------------------------------------------
joining     0.0%      --      'dev2@127.0.0.1'
joining     0.0%      --      'dev3@127.0.0.1'
joining     0.0%      --      'dev4@127.0.0.1'
valid     100.0%      --      'dev1@127.0.0.1'
-------------------------------------------------------------------------------

这是怎么回事?为什么 dev1 节点要求所有分区,我怎样才能让它共享?

也许相关

我为每个节点(在RIAK_ROOT/dev/devN/etc/app.config)编辑 app.config 以制作 pb_ip0.0.0.0而不是127.0.0.1. 这样我就可以从主机中的浏览器访问 Riak,即使我在 Vagrant VM 中运行 Riak。尽管我对它们中的每一个都进行了相同的更改,但我只能从主机的浏览器(而不是 dev2、dev3 或 dev4)访问 dev1。

如果您认为这会有所帮助,我可以打包此 VM 并使其可用,以帮助您帮助我进行故障排除。(虚拟机很棒的众多原因之一。)

4

2 回答 2

5

我怀疑您看到该输出riak-admin member-status是因为您对集群有未完成的更改需要提交。

riak-admin cluster plan

riak-admin cluster commit

运行riak-admin cluster plan将显示有关未完成的传输的信息(如果有)。然后,您需要使用第二个命令将更改提交到集群。

于 2012-11-27T02:20:52.220 回答
2

在高速项目上发表作品的危险在于,界面会在墨水干之前发生变化。

集群管理在 1.0(本书涵盖的内容)和 1.2(当前版本)之间发生了重大转变。这本书只是直接发出joindev1,就这样收工了。现在您必须执行riak-admin cluster命令,该命令将多个连接/离开批处理并将它们作为单个事务执行。加入后,您必须查看plancommit交易,如另一条评论中所述。

FWIW,剩下的大部分 Riak 信息还是一样的。

于 2012-11-27T17:53:15.503 回答