- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一致性哈希算法的应用及其优化
一致性哈希算法的应用及其优化
一.简单哈希算法
哈希(Hash )就是把任意长度的输入通过散列算法,变换成固定长度的输出,该输出
就是散列值。这种转换是一种压缩映射,使得散列值的空间通常远小于输入的空间,不同的
输入可能会散列成相同的输出,而不可能从散列值来唯一的确定输入值。哈希算法是一种消
息摘要算法,虽然哈希算法不是一种加密算法,但由于其单向运算,具有一定的不可逆性使
其成为加密算法中的一个重要构成部分。
二.分布式缓存问题
哈希算法除了在数据加密中的运用外,也可以用在常见的数据分布式技术中。哈希计算
是通过求模运算来计算哈希值的,然后根据哈希值将数据映射到存储空间中。设有由N 个
存储节点组成的存储空间,采用简单哈希计算将一个数据对象 object 映射到存储空间上的
公式为:Hash (object )% N 。
现在假设有一个网站,最近发现随着流量增加,服务器压力越来越大,之前直接读写数
据库的方式已经不能满足用户的访问,于是想引入Memcached 作为缓存机制。现在一共有
三台机器可以作为Memcached 服务器,如下图1 所示。
1
图1.三台memcached 服务器
可以用简单哈希计算:h = Hash(key) % 3 ,其中Hash 是一个从字符串到正整数的哈希
映射函数,这样能够保证对相同 key 的访问会被发送到相同的服务器。现在如果我们将
Memcached Server 分别编号为0、1、2 ,那么就可以根据上式和key 计算出服务器编号h ,
然后去访问。
但是,由于这样做只是采用了简单的求模运算,使得简单哈希计算存在很多不足:
1)增删节点时,更新效率低。当系统中存储节点数量发生增加或减少时,映射公式将
发生变化为Hash(object)%(N ±1),这将使得所有 object 的映射位置发生变化,整个系统数
据对象的映射位置都需要重新进行计算,系统无法对外界访问进行正常响应,将导致系统处
于崩溃状态。
2 )平衡性差,未考虑节点性能差异。由于硬件性能的提升,新添加的节点具有更好的
承载能力,如何对算法进行改进,使节点性能可以得到较好利用,也是亟待解决的一个问题。
3 )单调性不足。衡量数据分布技术的一项重要指标是单调性,单调性是指如果已经有
一些内容通过哈希计算分派到了相应的缓冲中,当又有新的缓冲加入到系统中时,哈希的结
果应能够保证原有已分配的内容可以被映射到新的缓冲中去,而不会被映射到旧的缓冲集合
中的其他缓冲区。
由上述分析可知,简单地采用模运算来计算object 的Hash 值的算法显得过于简单,存
在节点冲突,且难以满足单调性要求。
2
三.一致性哈希算法
一致性哈希算法(Consistent Hashing )最早在David Karger ,Eric Lehman 等人的论文
《Consistent Hashing and Random Trees: Distributed Caching Protocols for Relieving Hot Spots
on the World Wide Web》中被提出,是当前较主流的分布式哈希表协议之一,它对简单哈希
算法进行了修正,解决了热点 (Hot Pot )问题。
一致性哈希的原理:首先,对存储节点的哈希值进行计算,其将存储空间抽象为一个环,
将存储节点配置到环上。环上所有的节点都有一个值。其次,对数据进行哈希计算,按顺时
针方向将其映射到离其最近的节点上去。
现在根据一致性哈希算法原理,重新解决上面分布式缓存问题。
1.一致性哈希将整个哈希值空间组织成一个虚拟的圆环,现在假设某哈希函数H 的值空
间为0 – 232-1 (即哈希值是一个32 位无符号整形),那么整个哈希空间环如下图2 :
32-1
2 0
您可能关注的文档
- 一种提取频移键控信号的独立分量分析算法-太赫兹科学与电子信息学报.pdf
- 一种无纹波频闪线性高压led驱动方案org8510.doc
- 一种融合多种用户行为的协同过滤推荐算法-计算机科学.pdf
- 一种求解机组组合问题的内点半定规划gpu并行算法.pdf
- 一种融合autoencoder与cnn的混合算法用于图像-计算机应用研究.pdf
- 一种模糊神经网络的硬件电路优化设计方式-云南大学.pdf
- 一种面向时序基因的连续列一致演化型双聚类算法.pdf
- 一种面向蜜场环境的蜜罐负载均衡算法-武汉大学学报理学版.pdf
- 一种面向高性能计算的多g=el互连结构及划分方法-计算机应用研究.pdf
- 一种平抑光伏和负荷波动的电动汽车有序充放电策略-燕山大学学报.pdf
文档评论(0)