一致哈希

✍ dations ◷ 2025-11-21 14:09:22 #Hashing

一致哈希 是一种特殊的哈希算法。在使用一致哈希算法后,哈希表槽位数(大小)的改变平均只需要对 K / n {\displaystyle K/n} 个关键字重新映射,其中 K {\displaystyle K} 是关键字的数量, n {\displaystyle n} 是槽位数量。然而在传统的哈希表中,添加或删除一个槽位的几乎需要对所有关键字进行重新映射。

一致哈希由MIT的Karger及其合作者提出,现在这一思想已经扩展到其它领域。在这篇1997年发表的学术论文中介绍了“一致哈希”如何应用于用户易变的分布式Web服务中。哈希表中的每一个代表分布式系统中一个节点,在系统添加或删除节点只需要移动 K / n {\displaystyle K/n} 项。

一致哈希也可用于实现健壮缓存来减少大型Web应用中系统部分失效带来的负面影响。

一致哈希的概念还被应用于分布式散列表(DHT)的设计。DHT使用一致哈希来划分分布式系统的节点。所有关键字都可以通过一个连接所有节点的覆盖网络高效地定位到某个节点。

在使用n台缓存服务器时,一种常用的负载均衡方式是,对资源o的请求使用 hash ( o ) = o mod n {\displaystyle {\mbox{hash}}(o)=o\mod n} 来映射到某一台缓存服务器。当增加或减少一台缓存服务器时这种方式可能会改变所有资源对应的hash值,也就是所有的缓存都失效了,这会使得缓存服务器大量集中地向原始内容服务器更新缓存。因此需要一致哈希算法来避免这样的问题。一致哈希尽可能使同一个资源映射到同一台缓存服务器。这种方式要求增加一台缓存服务器时,新的服务器尽量分担存储其他所有服务器的缓存资源。减少一台缓存服务器时,其他所有服务器也可以尽量分担存储它的缓存资源。一致哈希算法的主要思想是将每个缓存服务器与一个或多个哈希值域区间关联起来,其中区间边界通过计算缓存服务器对应的哈希值来决定。(定义区间的哈希函数不一定和计算缓存服务器哈希值的函数相同,但是两个函数的返回值的范围需要匹配。)如果一个缓存服务器被移除,则它所对应的区间会被并入到邻近的区间,其他的缓存服务器不需要任何改变。

一致哈希将每个对象映射到圆环边上的一个点,系统再将可用的节点机器映射到圆环的不同位置。查找某个对象对应的机器时,需要用一致哈希算法计算得到对象对应圆环边上位置,沿着圆环边上查找直到遇到某个节点机器,这台机器即为对象应该保存的位置。当删除一台节点机器时,这台机器上保存的所有对象都要移动到下一台机器。添加一台机器到圆环边上某个点时,这个点的下一台机器需要将这个节点前对应的对象移动到新机器上。更改对象在节点机器上的分布可以通过调整节点机器的位置来实现。

David Karger及其合作者列出了使得一致哈希在互联网分布式缓存中非常有用的几个特性:

在亚马逊的云存储系统Dynamo的数据划分功能模块中使用一致哈希。

相关

  • 神经解剖学异常心理学 行为遗传学 生物心理学 心理药物学 认知心理学 比较心理学 跨文化心理学 文化心理学 差异心理学(英语:Differential psychology) 发展心理学 演化心理学 实验心理学
  • 台北医学大学中华民国台湾 校本部:台北市信义区吴兴街250号 中华民国台湾 大安校区:台北市大安区基隆路二段172-1号台北医学大学(Taipei Medical University,TMU),简称北医、北医大、台北医大
  • 枕肌枕肌(Occipitalis muscle)是一块薄薄的人体肌肉,呈四边形。其开端于枕骨上項線两侧三分之二处的腱纤维和颞部的乳突部分,而其终端于帽状腱膜中。某些资料并不列枕肌自身为一块肌
  • 比丘比丘( 梵语:भिक्षु,转写:bhikṣu,巴利语:bhikkhu),佛教术语,又译为苾刍、苾礇、碹刍、备刍、比呼、比库,意译为乞士、乞士男、除士、薰士、破烦恼、除馑、怖魔。佛教受具足戒之
  • 居伊·罗帕茨约瑟夫·居伊·罗帕茨(法语:Joseph Guy Ropartz,1864年6月15日-1955年11月22日),法国布列塔尼作曲家,指挥家。生于阿摩尔滨海省的一个小村庄,后来到巴黎音乐学院学习,师从马斯内和弗
  • 昆达尔瓦迪昆达尔瓦迪(Kundalwadi),是印度马哈拉施特拉邦Nanded县的一个城镇。总人口14355(2001年)。该地2001年总人口14355人,其中男性7211人,女性7144人;0—6岁人口2182人,其中男1150人,女1032
  • 麻省理工学院校园麻省理工学院校园坐落在美国马萨诸塞州剑桥市的一片168-英亩(68-公顷)的土地上。校园在查尔斯河流域北部,就在麻省波士顿后湾社区正对面,跨度大约为一英里(1.6公里)。校园有几十栋
  • 金山三岛自然保护区金山三岛自然保护区是上海市在金山区附近海域设立的一个直辖市级自然保护区,以保护这一区域的海洋生态。它是上海为数不多受人类活动影响较少的地区之一,拥有丰富的野生动植物
  • 朱有花朱有花(英文名:You-Hua Chu,1953年-),台湾女性天文学家,曾任伊利诺伊大学香槟分校天文系系主任,现为该系荣誉退休教授。主要研究领域在星际介质和星球之间的交互作用以及系外行星的
  • 双面情人双面情人可以指: