这可能特定于我正在查看的实现(node-hashring),但是在一致的哈希环中虚拟节点(vnodes)和副本之间有什么区别?
原始Akamai paper似乎没有明确描述vnode,并且其他各种来源似乎也可互换使用这两个术语(例如“ virtual nodes”,它们是圆圈,来自source。用于节点哈希的文档给出了示例40个哈希(vnode)和每个哈希4个副本=每个服务器160点
。尽管阅读了源代码,我还是不太清楚这两个不同的参数的作用。
这可能是我正在查看的实现(节点哈希),但是在一致的哈希环中虚拟节点(vnode)和副本之间有什么区别?原始的...
vnode与副本不同。 vnode只是在一致的哈希环中分配给物理节点的标签,以维持更均匀的数据分布。而副本是由相邻服务器存储的数据的副本,当该服务器宕机或从环网中删除时,该副本将起作用。例如。如果node1有40个虚拟节点,则其hash值落在vnode范围内的所有数据将由node1存储和提供服务。另外,node1可以具有4个副本,这意味着4个相邻的服务器将存储node1的数据副本,并在node1发生故障时为它们提供服务。