riak_core vnode分布
riak_core vnode distribution
我在 2 节点集群上安装了 riak_core 应用程序。该应用程序的模板是在 https://github.com/rzezeski/try-try-try/tree/master/2011/riak-core-first-multinode
之后生成的
当我查看跨 2 个节点的 vnode 分布时:
{ok, Ring} = riak_core_ring_manager:get_my_ring(),
riak_core_ring:chash(ring).
,我明白了:
{64,
[{0, 'node1@127.0.0.1'},
{22835963083295358096932575511191922182123945984, 'node1@127.0.0.1'},
{45671926166590716193865151022383844364247891968, 'node2@127.0.0.1'},
{68507889249886074290797726533575766546371837952, 'node2@127.0.0.1'},
{91343852333181432387730302044767688728495783936, 'node1@127.0.0.1'},
{114179815416476790484662877555959610910619729920, 'node1@127.0.0.1'},
{137015778499772148581595453067151533092743675904, 'node2@127.0.0.1'},
{159851741583067506678528028578343455274867621888, 'node2@127.0.0.1'},
{182687704666362864775460604089535377456991567872, 'node1@127.0.0.1'},
{205523667749658222872393179600727299639115513856, 'node1@127.0.0.1'},
{228359630832953580969325755111919221821239459840, 'node2@127.0.0.1'},
...............<the rest of vnodes>.......................
]
}
因此 vnode 成对出现,使得 2 个相邻分区属于同一个物理节点。从文档中我希望相邻的分区属于不同的物理节点。如果有人可以详细说明以上是错误还是功能,或者我这边的配置错误,我将不胜感激。
此致,
鲍里斯
Riak_core 将默认为 target_n_val
共 4 个(在 https://github.com/basho/riak_core/blob/riak_core-0.14.2/ebin/riak_core.app#L73). This is the preflist size used by the riak_core_claim 模块。
声明算法将尝试确保在任何 target_n_val
个连续 vnode 链中没有 2 个驻留在同一节点上。
如果您在 app.config 中将 target_n_val 设置为 2,则最好不要将相邻的 vnode 放在同一节点上。
我还得到了所有相邻 vnode 驻留在不同物理节点上的分布,通过设置:
{wants_claim_fun, {riak_core_claim, wants_claim_v3}},
{choose_claim_fun, {riak_core_claim, choose_claim_v3}}
用于 riak_core 个应用程序。
'target_n_val' 似乎不影响这种情况下的分配。
我在 2 节点集群上安装了 riak_core 应用程序。该应用程序的模板是在 https://github.com/rzezeski/try-try-try/tree/master/2011/riak-core-first-multinode
之后生成的当我查看跨 2 个节点的 vnode 分布时:
{ok, Ring} = riak_core_ring_manager:get_my_ring(),
riak_core_ring:chash(ring).
,我明白了:
{64,
[{0, 'node1@127.0.0.1'},
{22835963083295358096932575511191922182123945984, 'node1@127.0.0.1'},
{45671926166590716193865151022383844364247891968, 'node2@127.0.0.1'},
{68507889249886074290797726533575766546371837952, 'node2@127.0.0.1'},
{91343852333181432387730302044767688728495783936, 'node1@127.0.0.1'},
{114179815416476790484662877555959610910619729920, 'node1@127.0.0.1'},
{137015778499772148581595453067151533092743675904, 'node2@127.0.0.1'},
{159851741583067506678528028578343455274867621888, 'node2@127.0.0.1'},
{182687704666362864775460604089535377456991567872, 'node1@127.0.0.1'},
{205523667749658222872393179600727299639115513856, 'node1@127.0.0.1'},
{228359630832953580969325755111919221821239459840, 'node2@127.0.0.1'},
...............<the rest of vnodes>.......................
]
}
因此 vnode 成对出现,使得 2 个相邻分区属于同一个物理节点。从文档中我希望相邻的分区属于不同的物理节点。如果有人可以详细说明以上是错误还是功能,或者我这边的配置错误,我将不胜感激。
此致, 鲍里斯
Riak_core 将默认为 target_n_val
共 4 个(在 https://github.com/basho/riak_core/blob/riak_core-0.14.2/ebin/riak_core.app#L73). This is the preflist size used by the riak_core_claim 模块。
声明算法将尝试确保在任何 target_n_val
个连续 vnode 链中没有 2 个驻留在同一节点上。
如果您在 app.config 中将 target_n_val 设置为 2,则最好不要将相邻的 vnode 放在同一节点上。
我还得到了所有相邻 vnode 驻留在不同物理节点上的分布,通过设置:
{wants_claim_fun, {riak_core_claim, wants_claim_v3}},
{choose_claim_fun, {riak_core_claim, choose_claim_v3}}
用于 riak_core 个应用程序。
'target_n_val' 似乎不影响这种情况下的分配。