会面协议 vs 一致性哈希

4
我读到了维基百科上的一篇文章
与一致性哈希不同,HRW(最高随机权重,又称会合散列)无需预先计算或存储令牌。
为什么?
我的理解是:
在一致性哈希中,我们将对象和站点独立地哈希(即Oi 和Sj ),然后针对给定的对象,在哈希空间中找到最近的站点。
在HRW(会合散列)中,我们同时哈希对象和站点,即h(Oi, Sj),然后选择最高的哈希结果来决定对象的目标站点。
因此,如果说有什么区别的话,看起来在一致性哈希中,一个人可以选择预先计算和预先存储h(Sj),但你并不需要这样做。换句话说,一致性哈希提供了这种灵活性,而HRW则没有。
我错了吗?如果是的话,为什么?
以下是同一链接中有关HRW的参考描述:

2个回答

2
你说得对。我们可以预先计算和存储h(Sj)这一事实,对于一致性哈希来说是一个优势。
维基百科指出,Rendezvous哈希的优势在于它的概念更简单易懂,更容易实现(尽管我个人不同意)。
它还提到了另一个优点:
Rendezvous哈希还有一个极大的优势,即为其他重要问题提供简单的解决方案,如分布式k协议。

0

关于Rendezvous哈希的圆形解释是错误的。

RendezVous哈希: Hash(object + Site):具有最高结果(最高随机权重(HRW)哈希)的站点将存储对象。 如果您删除一个站点,则对于该站点上的每个对象,重新执行操作Hash(object + Site),以查找具有最高结果的每个站点。

一致性哈希: 为每个站点分配一个站点密钥号码(站点密钥号码越高,对象的分布就越均匀,可以通过以下方式生成它们:Hash(site + number))。将它们放在一个圆上。(所有这些都是可以预先计算的部分)。 要存储一个对象,请使用Hash(Object)获取对象密钥,在圆上放置它并顺时针查找最近的站点密钥。具有此站点密钥的站点将存储对象 如果您删除一个站点,则在圆上删除站点拥有的站点密钥。对于存储在该站点上的每个对象,您需要再次顺时针在圆上查找最近的站点密钥。


谢谢Louis,回到我的问题:你认为维基百科上这个声明的基础是什么?“与一致性哈希不同,HRW(最高随机权重,又称约会哈希)不需要预计算或存储令牌。”? - Josh
HRW hashing不需要事先计算或存储令牌,首先因为HRW没有令牌(站点密钥),其次,要找到要存储对象的位置,您必须哈希(对象+站点)(以查找最高随机权重)。由于您无法预先知道要存储哪个对象,因此无法预先计算哈希。 但是,这并不是一个很大的劣势,因为您只需要执行一次哈希(就像使用一致性哈希一样)即可了解要存储对象的位置。 - Louis Moreau
好的,谢谢。我提到这个是因为维基百科中的措辞似乎在暗示 HRW 不需要预先计算/存储令牌是一件好事,但你似乎同意我的观点,即没有一个需要预先计算这些哈希值,因此,如果有什么的话,一致性哈希提供了预先计算/存储这些哈希值的灵活性。对吗? - Josh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接