一致哈希

✍ dations ◷ 2025-06-07 23:22:15 #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的数据划分功能模块中使用一致哈希。

相关

  • 打针注射(英文:Injection)俗称打针,是一种利用注射器与针头穿过皮肤,并将液体送入身体内的方法。是一种给药途径,注射所预期的作用位置,不一定是受注射的位置。目前有多种不同的注射方
  • 鸭肉鸭肉,是从鸭身上取得的肉,为全世界普遍的肉品之一。《本草纲目》:“鸭肉主大补虚劳,最消毒热,利小便,除水肿,消胀满,利脏腑,退疮肿,定惊痫。”中医有认为,鸭肉有养胃、补肾的功效,能清热
  • 撒哈拉地区撒哈拉地区,泛指位于撒哈拉沙漠的非洲,常与撒哈拉以南非洲相对。撒哈拉沙漠是世界上最大的沙漠,有数个国家位于其范围内。本区气候恶劣,降水稀少,是世界上最不适合人类居住的地区
  • 半面痉挛半面痉挛或称面肌痉挛(Hemifacial spasm/ HFS)是一种罕见的神经肌肉疾病,表现为面部一侧不规律,非自主的肌肉收缩反应。 面部肌肉受面部神经(第七脑神经)控制,面部神经起始于脑干终
  • 佐尔坦·塞莱西佐尔坦·塞莱西(匈牙利语:Zoltán Szélesi;1981年11月22日-)是一位匈牙利足球运动员。在场上的位置是后卫。他现在效力于匈牙利足球甲级联赛球队乌伊佩斯特足球俱乐部。他也代表
  • 尼皮萨特岛尼皮萨特岛 (Kalaallisut: "Lumpfish",意思为圆鳍鱼,指的是岛屿的形状) 是一座位于格陵兰凯克卡塔中西部的一座无人岛。该岛主要生长矮小的灌木,矮桦树,北极柳树,排水良好的地衣和
  • 张德才张德才(1929年-1960年4月2日)是平陆事件中的投毒者。1929年生,成分下中农,平陆县张店公社前滩村人。其父张怀阳1942年病故后,其母改嫁。曾被征用为日伪保安中队的勤务员,中国共产党
  • 朱守孚朱守孚(1434年-?),字中孚,湖广郴州桂阳县(今湖南省郴州市汝城县)人,军籍。明朝政治人物。进士出身。湖广乡试第三十九名。成化五年(1469年),参加乙丑科会试,得贡士第一百二十八名。殿试登
  • 超人IV:寻求和平《超人IV:太空对决》(英语:Superman IV: The Quest for Peace)是于1987年由导演Sidney J. Furie执导的超级英雄电影。这部电影是《超人系列电影》的第4部,亦是克里斯多夫·李维最
  • 第一维也纳乐派第一维也纳乐派(First Viennese School),通常指十八世纪晚期在维也纳的三位古典主义古典音乐作曲家:沃夫冈·阿玛迪斯·莫札特(Wolfgang Amadeus Mozart)、约瑟夫·海顿(Franz Jose