[发明专利]一种基于一致性hash算法存储资源的方法有效
申请号: | 201310165280.7 | 申请日: | 2013-05-07 |
公开(公告)号: | CN103281358A | 公开(公告)日: | 2013-09-04 |
发明(设计)人: | 周瑜 | 申请(专利权)人: | 汉柏科技有限公司 |
主分类号: | H04L29/08 | 分类号: | H04L29/08 |
代理公司: | 北京路浩知识产权代理有限公司 11002 | 代理人: | 王莹 |
地址: | 300384 天津市华*** | 国省代码: | 天津;12 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 一致性 hash 算法 存储 资源 方法 | ||
技术领域
本发明涉及云计算技术领域,尤其涉及一种基于一致性hash算法存储资源的方法。
背景技术
在云存储中,存储的资源与存储位置之间的关系往往记录在一台元数据服务器中,在元数据服务器中往往使用hash(哈希)算法进行处理。传统的哈希算法是指一个集合M,通过某种算法,映射到另外一个较小的集合N。比如现在当前存储的资源有1M的文件,存储在100台机器上,1M的文件与100台机器之间通过某种算法进行映射,可以使用IO请求通过该算法查找文件位置。
在现有算法中,在集合N的样本空间变化之后,集合M与集合N的映射关系将会发生变化,这种变化在云存储中会带来很大的影响。例如,在上述100台机器增加到101台时,1M文件的位置需要重新计算和定位,这种运算量是非常大的。一旦元数据服务器死机,会导致云存储服务中断,而云存储使用集中元数据设计的原因,主要是没有合适的弹性哈希算法,来计算存储的资源所在的存储位置。传统的哈希算法比较注重冲突处理,而在云存储中的哈希算法,更注重hash映射空间变化之后,希望能够尽可能地保持资源与hash值关系的稳定。一旦能保持稳定,则可以抛弃元数据服务器,采用无中心结构来存储资源传统的hash值算法。
但是现有技术中的算法还无法实现当用于存储资源的机器数量发生改变时,仍能保持资源与hash值关系的稳定,降低映射关系的变化。
发明内容
(一)要解决的技术问题
针对上述缺陷,本发明要解决的技术问题是如何解决映射空间变化时降低映射关系的变化,对资源的定位产生尽量小的影响。
(二)技术方案
为解决上述问题,本发明提供了一种基于一致性hash算法存储资源的方法,其特征在于,所述方法具体包括:
S1、从资源集合中选取元素,并计算所述元素的哈希值,计算公式为h=m%n,其中h为所述哈希值,m为资源集合M中元素的值,n为大于等于样本空间N的值的最小2次幂;
S2、比较h与n的值的大小,如果h小于n则所述资源集合M中的资源对应于所述样本空间N的h值的位置,否则对应于所述样本空间N的h/2值的位置。
进一步地,步骤S2中对应于所述样本空间N的h/2值的位置还包括:
对于写请求,当存储系统中所述样本空间N的存储空间增大时,n的值变大,并在增加后的样本空间N1的h/2位置处进行写操作。
进一步地,所述步骤S2中对应于所述样本空间N的h/2值的位置还包括:
对于写请求,当存储系统中所述样本空间N的存储空间减小时,n的值变小,并在减小后的样本空间N2的h/2位置处进行写操作。
进一步地,所述步骤S2中对应于所述样本空间N的h/2值的位置还包括:
对于读请求,在所述样本空间N的h/2位置处进行一级查找,如果找到则直接在所述读请求中相应的操作位置进行读操作,否则继续在所述样本空间N的h/4位置处进行二级查找,并循环上述操作在所述样本空间M的h/2s位置进行s级查找,知道找到为止,其中s为整数且s≥3。
进一步地,所述读请求或写请求中包含读操作或写操作的操作位置。
进一步地,在所述读请求中相应的操作位置进行读操作之后还包括根据查找到的位置对所述资源集合中元素的存储位置进行纠正。
(三)有益效果
本发明提供了一种基于一致性hash算法存储资源的方法,通过对计算的hash值进行伙伴处理,避免在映射空间发生变化后hash关系发生激烈变化,解决了云存储的节点发生动态变化时导致资源定位变化的问题,同时还能够提高资源存储和读取的速度。
附图说明
图1为本发明实施例中一种基于一致性hash算法存储资源的方法的步骤流程图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
本发明实施例中提供了本发明提供了一种基于一致性hash算法存储资源的方法,步骤流程如图1所示,具体包括以下步骤:
步骤S1:从资源集合中选取元素,并计算该元素的哈希值。
计算哈希值的公式为h=m%n,其中h为计算得到的哈希值,m为资源集合M中元素的值,n为大于等于样本空间N的值的最小2次幂。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于汉柏科技有限公司,未经汉柏科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310165280.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:介质正反面翻转装置及介质交易装置
- 下一篇:芯片定制技术