hash - 会合与一致散列

标签 hash distributed-computing consistent-hashing

我读了 on Wikipedia :

Unlike consistent hashing, HRW (Highest Random Weight, aka Rendezvous Hashing) requires no precomputing or storage of tokens.


为什么?
我的理解是:
  • 在一致性散列中,将对象和站点独立(即 h(Oi)h(Sj) )散列到单位圆,然后对于给定的对象,它在散列空间中找到最近的站点。
  • 在 HRW(Rendezvous 散列)中,同时散列对象和站点,即 h(Oi, Sj) ,然后选择最高的哈希结果来决定对象的目标站点。

  • 所以,如果有的话,在我看来,在一致性哈希中,人们可以选择预计算和预存储 h(Sj) s 但你不是 需要 这样做。换句话说,一致散列提供了这种灵活性,而 HRW 则没有。
    我错了吗?如果是为什么?
    以下是来自同一链接的 HRW 引用描述:

    最佳答案

    你是对的。
    我们可以预先计算和预先存储的事实h(Sj)是一致性哈希的一个优势。
    维基百科指出,Rendezvous 散列的优势在于它在概念上更易于理解和实现(尽管我个人不同意)。
    它还提到了另一个优势:

    Rendezvous hashing also has the great advantage that it provides simple solutions to other important problems, such as distributed k-agreement.

    关于hash - 会合与一致散列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63000573/

    相关文章:

    load-balancing - 一致散列与集合(HRW)散列 - 有什么权衡?

    Python hash_ring 分布不均匀,什么是一致的哈希替代方案?

    perl - 我们可以在绑定(bind)哈希上使用 Storable 的存储方法吗?

    arrays - 我如何制作 Perl "array of arrays of hashes"?

    arrays - 字符串数组作为哈希函数键?

    python-3.x - 属性错误 : module 'concurrent' has no attribute 'futures' when I try parallel processing in python 3. 6

    java - 如何构建分布式 Java 应用程序?

    javascript - url 哈希更改时强制重新加载

    tensorflow - Google Cloud ML 引擎中的分布式 Tensorflow 设备放置

    散列VS索引