一致散列中副本和虚拟节点之间的差异

时间:2016-11-16 01:13:16

标签: hash consistent-hashing

这可能特定于我正在查看的实现(node-hashring),但是在一致的哈希环中虚拟节点(vnodes)和副本之间有什么区别?

原始Akamai paper似乎没有明确地描述vnodes,并且各种其他来源似乎可以互换地使用这两个术语(例如" 虚拟节点&#34 ;来自source)的圈子中副本

node-hashring的文档给出了示例 40哈希(vnodes)和每个哈希4个副本=每个服务器160个点。尽管阅读了源代码,但我无法弄清楚这两个不同的参数是做什么的。

1 个答案:

答案 0 :(得分:0)

vnode与副本不同。 vnode只是在一致的哈希环中分配给物理节点的标签,以维持数据的更均匀分布。而副本是由相邻服务器存储的数据的副本,当该服务器宕机或从环网中删除时,该副本将起作用。 例如。如果node1具有40个虚拟节点,则其hash值落在vnode范围内的所有数据将由node1存储并提供服务。另外,node1可以有4个副本,这意味着4个相邻的服务器将存储node1的数据副本,并在node1发生故障时为它们提供服务。