4

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

最初的Akamai 论文似乎没有明确描述 vnode,并且各种其他来源似乎可以互换使用这两个术语(例如, 虚拟节点”,它们是循环中缓存点的副本,来自来源)。

节点散列的文档给出了示例40 个散列(vnodes)和每个散列 4 个副本 = 每个服务器 160 个点。尽管阅读了源代码,但我无法完全弄清楚这两个不同的参数的作用。

4

1 回答 1

1

vnode 与副本不同。vnodes 只是在一致性哈希环中为物理节点提供的标签,以保持数据的更均匀分布。而副本是相邻服务器存储的数据的副本,当该服务器出现故障或从环中移除时,这些数据就会发挥作用。例如。如果node1有40个虚拟节点,那么所有hash值在vnodes范围内的数据都将由node1存储和服务。此外,node1 可以有 4 个副本,这意味着 4 个相邻的服务器将存储 node1 的数据副本,并在 node1 宕机时为它们提供服务。

于 2019-11-10T19:01:00.703 回答