WO2014180139A1 - 一种基于一致性hash算法存储资源的方法 - Google Patents

一种基于一致性hash算法存储资源的方法 Download PDF

Info

Publication number
WO2014180139A1
WO2014180139A1 PCT/CN2013/089254 CN2013089254W WO2014180139A1 WO 2014180139 A1 WO2014180139 A1 WO 2014180139A1 CN 2013089254 W CN2013089254 W CN 2013089254W WO 2014180139 A1 WO2014180139 A1 WO 2014180139A1
Authority
WO
WIPO (PCT)
Prior art keywords
value
sample space
resource
space
hash
Prior art date
Application number
PCT/CN2013/089254
Other languages
English (en)
French (fr)
Inventor
周瑜
Original Assignee
汉柏科技有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 汉柏科技有限公司 filed Critical 汉柏科技有限公司
Publication of WO2014180139A1 publication Critical patent/WO2014180139A1/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9014Indexing; Data structures therefor; Storage structures hash tables
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Definitions

  • the present invention relates to the field of cloud computing technologies, and in particular, to a method for storing resources based on a consistent hash algorithm. Background technique
  • the relationship between stored resources and storage locations is often recorded in a metadata server, which is often processed using a hash algorithm in the metadata server.
  • the traditional hash algorithm refers to a set M, which is mapped to another smaller set N by some algorithm.
  • the currently stored resources have 1M files, which are stored on 100 machines.
  • the 1M files are mapped to 100 machines by some algorithm. You can use 10 requests to find the file location through this algorithm.
  • the mapping relationship between the set M and the set N will change, and this change will have a great influence on the cloud storage. For example, when the above 100 machines are added to 101, the position of the 1M file needs to be recalculated and positioned. This amount of operation is very large.
  • the cloud storage service is interrupted, and the reason why cloud storage uses centralized metadata design is that there is no suitable elastic hash algorithm to calculate the storage location of the stored resources.
  • the traditional hash algorithm pays more attention to conflict processing, while the hash algorithm in cloud storage pays more attention to the hash map space change, and hopes to keep the relationship between resource and hash value as stable as possible. Once stable, you can discard the metadata server and use a non-central structure to store the resource's traditional hash value algorithm.
  • the technical problem to be solved by the present invention is how to reduce the change of the mapping relationship when the mapping space changes, and minimize the influence on the positioning of resources.
  • the present invention provides a method for storing resources based on a consistent hash algorithm, where the method specifically includes:
  • the position of the h/2 value corresponding to the sample space N in the step S2 further includes: for the write request, when the storage space of the sample space N in the storage system increases, the value of n becomes larger, and A write operation is performed at the h/2 position of the increased sample space N1.
  • the position corresponding to the h/2 value of the sample space N in the step S2 further includes: for the write request, when the storage space of the sample space N in the storage system decreases, the value of n becomes smaller, And a write operation is performed at the h/2 position of the reduced sample space N2.
  • the position corresponding to the h/2 value of the sample space N in the step S2 further includes: performing a first-level search at the h/2 position of the sample space N for the read request, if found directly Performing a read operation at a corresponding operation position in the read request, otherwise continuing to perform a secondary lookup at the h/4 position of the sample space N, and looping the above operation at the h/2 s position of the sample space M
  • the s-level lookup knowing to find it, where s is an integer and 8 ⁇ 3.
  • the read request or the write request includes an operation position of a read operation or a write operation. Further, after the reading operation is performed on the corresponding operation location in the read request, the method further includes correcting the storage location of the elements in the resource set according to the found location.
  • FIG. 1 is a flow chart of steps of a method for storing resources based on a consistent hash algorithm according to an embodiment of the present invention. detailed description
  • the present invention provides a method for storing resources based on a consistent hash algorithm.
  • the process of the steps is as shown in FIG. 1 , and specifically includes the following steps:
  • Step S1 Select an element from the resource collection and calculate a hash value of the element.
  • the sample space N is a machine set for storing resources in the resource set M, and there is no explicit size relationship between m and n, m may be greater than or equal to n, or may be smaller than n, but the value of n is based on the sample space.
  • the hash algorithm in this embodiment is obtained by referring to an existing buddy algorithm.
  • the fixed partition scheme limits the number of active processes.
  • the size of the available partitions is very different from the process size, and the space utilization is very low.
  • the maintenance of dynamic partitioning is complex and requires a tight overhead.
  • An attractive compromise is the partner algorithm.
  • the size of the memory block is 2k, L ⁇ K ⁇ U, where 2L is the size of the smallest block allocated and 2u is the size of the largest block allocated.
  • the partner algorithm efficiently allocates and reclaims memory and avoids the generation of memory fragmentation, thereby increasing the utilization of physical memory.
  • the buddy algorithm allocates and releases the power of 2 pages at a time, and the number n of resources in the sample space N in the hash algorithm in this embodiment is greater than or equal to the minimum power of the sample space N.
  • Step S2 Compare the magnitudes of the values of h and n. If h is less than n, the resource in the resource set M corresponds to the position of the h value of the sample space N, otherwise it corresponds to the position of the h/2 value of the sample space N.
  • a level 1 lookup is performed at the h/2 position of the sample space N, and if found, the read operation is performed directly at the corresponding operation position in the read request, otherwise the second level search is continued at the h/4 position of the sample space N. and the above-described operation cycle stage sample space M s 11/25 location lookup, to find so far known, wherein s is an integer and 8 ⁇ 3.
  • a read or write request contains the location of a read or write operation.
  • the storage space changes or not, only the value of n is changed, and the algorithm does not change.
  • the method further includes correcting the storage location of the elements in the resource set based on the found location.
  • the hash relationship is drastically changed after the mapping space changes, and the problem of resource location change caused by the dynamic change of the cloud storage node is solved. Reduce relocation changes to a minimum, while also increasing resource storage and read speed.
  • the present invention provides a method for storing resources based on a consistent hash algorithm.
  • the hash relationship is drastically changed after the mapping space changes, and the cloud storage node dynamically changes.
  • the problem of resource location changes can also increase the speed of resource storage and reading.

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种基于一致性hash算法存储资源的方法,通过从资源集合中选取元素,并计算元素的哈希值,计算公式为h=m%n,其中h为哈希值,m为资源集合M中元素的值,n为大于等于样本空间N的值的最小2次幂;比较h与n的值的大小,如果h小于n则资源集合M中的资源对应于样本空间N的h值的位置,否则对应于样本空间N的h/2值的位置。本发明对计算的hash值进行伙伴处理,避免在映射空间发生变化后hash关系发生激烈变化,也避免资源定位变化的问题,减小变化带来的运算量,同时还能够提高资源存储和读取的速度。

Description

—种基于一致性 hash算法存储资源的方法 技术领域
本发明涉及云计算技术领域, 尤其涉及一种基于一致性 hash算法存储资 源的方法。 背景技术
在云存储中, 存储的资源与存储位置之间的关系往往记录在一台元数据 服务器中, 在元数据服务器中往往使用 hash (哈希)算法进行处理。 传统的 哈希算法是指一个集合 M, 通过某种算法, 映射到另外一个较小的集合 N。 比如现在当前存储的资源有 1M的文件, 存储在 100台机器上, 1M的文件与 100台机器之间通过某种算法进行映射, 可以使用 10请求通过该算法查找文 件位置。
在现有算法中, 在集合 N的样本空间变化之后, 集合 M与集合 N的映 射关系将会发生变化, 这种变化在云存储中会带来很大的影响。 例如, 在上 述 100台机器增加到 101台时, 1M文件的位置需要重新计算和定位,这种运 算量是非常大的。 一旦元数据服务器死机, 会导致云存储服务中断, 而云存 储使用集中元数据设计的原因, 主要是没有合适的弹性哈希算法, 来计算存 储的资源所在的存储位置。 传统的哈希算法比较注重冲突处理, 而在云存储 中的哈希算法, 更注重 hash映射空间变化之后, 希望能够尽可能地保持资源 与 hash值关系的稳定。 一旦能保持稳定, 则可以抛弃元数据服务器, 釆用无 中心结构来存储资源传统的 hash值算法。
但是现有技术中的算法还无法实现当用于存储资源的机器数量发生改变 时, 仍能保持资源与 hash值关系的稳定, 降低映射关系的变化。 发明内容
(一) 要解决的技术问题
针对上述缺陷, 本发明要解决的技术问题是如何解决映射空间变化时降 低映射关系的变化, 对资源的定位产生尽量小的影响。
(二)技术方案 为解决上述问题, 本发明提供了一种基于一致性 hash算法存储资源的方 法, 其特征在于, 所述方法具体包括:
51、 从资源集合中选取元素, 并计算所述元素的哈希值, 计算公式为 h=m%n, 其中 h为所述哈希值, m为资源集合 M中元素的值, n为大于等于 样本空间 N的值的最小 2次幂;
52、 比较 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为整数且8≥3。
进一步地, 所述读请求或写请求中包含读操作或写操作的操作位置。 进一步地, 在所述读请求中相应的操作位置进行读操作之后还包括根据 查找到的位置对所述资源集合中元素的存储位置进行纠正。
(三)有益效果
本发明提供了一种基于一致性 hash算法存储资源的方法, 通过对计算的 hash值进行伙伴处理,避免在映射空间发生变化后 hash关系发生激烈变化,解 决了云存储的节点发生动态变化时导致资源定位变化的问题, 同时还能够提 高资源存储和读取的速度。 附图说明 图 1为本发明实施例中一种基于一致性 hash算法存储资源的方法的步骤 流程图。 具体实施方式
下面结合附图和实施例, 对本发明的具体实施方式作进一步详细描述。 以下实施例用于说明本发明, 但不用来限制本发明的范围。
本发明实施例中提供了本发明提供了一种基于一致性 hash算法存储资源 的方法, 步骤流程如图 1所示, 具体包括以下步骤:
步骤 S1 : 从资源集合中选取元素, 并计算该元素的哈希值。
计算哈希值的公式为 h=m%n, 其中 h为计算得到的哈希值, m为资源集 合 M中元素的值, n为大于等于样本空间 N的值的最小 2次幂。
样本空间 N中是用于存储资源集合 M中资源的机器集合, 而且 m和 n 之间无明确的大小关系, m可大于等于 n, 也可小于 n, 但是 n值的取值是根 据样本空间 N的值计算的, 一定要大于等于样本空间 N的值的最小 2次幂, 例如: 样本空间 N中有 3个用于存储资源的机器, 则 n的值为 22=4>3; 如果 样本空间 N中有 5个用于存储资源的机器, 则 n的值为 23=8>5。
本实施例中的 hash算法是参考现有的伙伴算法得到的。 对于固定分区和 动态分区方案都存在一定的缺陷, 固定分区方案限制活跃进程的数目, 而且, 可用分区的大小与进程大小非常不匹配, 空间的利用率非常低。 动态分区的 维护十分复杂, 而且需要紧凑的开销。 一个比较有吸引力的折衷方案是伙伴 算法。 在伙伴系统中, 内存块的大小为 2k, L<K<U, 其中 2L为分配的最小 块的尺寸, 2u为分配的最大块的尺寸。伙伴算法能够高效的分配和回收内存, 并可以避免内存碎片的产生, 从而提高了物理内存的利用率。 伙伴算法一次 分配和释放 2的幂次方个页面,而本实施例中的 hash算法中的样本空间 N中 资源的数目 n就是大于等于样本空间 N的最小 2次幂。
步骤 S2: 比较 h与 n的值的大小,如果 h小于 n则资源集合 M中的资源 对应于样本空间 N的 h值的位置, 否则对应于样本空间 N的 h/2值的位置。
具体的: 对于写请求, 当存储系统中样本空间 N 的存储空间增大时, n 的值变大, 并在增加后的样本空间 的 h/2位置处进行写操作; 对于写请求, 当存储系统中样本空间 N的存储空间减小时, n的值变小, 并在减小后的样本空间 N2的 h/2位置处进行写操作;
对于读请求, 在样本空间 N的 h/2位置处进行一级查找, 如果找到则直 接在读请求中相应的操作位置进行读操作, 否则继续在样本空间 N的 h/4位 置处进行二级查找,并循环上述操作在样本空间 M的 11/ 25位置进行 s级查找, 知道找到为止, 其中 s为整数且8≥3。
读请求或写请求中包含读操作或写操作的操作位置。 对于读请求, 存储 空间改变与否, 改变的只是 n的值, 而算法不会改变。
在读请求中相应的操作位置进行读操作之后还包括根据查找到的位置对 资源集合中元素的存储位置进行纠正。
通过使用本实施例中提供的方法, 通过对计算的 hash值进行伙伴处理, 避免在映射空间发生变化后 hash关系发生激烈变化, 解决了云存储的节点发 生动态变化时导致资源定位变化的问题, 将重新定位的变化降低到最小范围 内, 同时还能够提高资源存储和读取的速度。
以上实施方式仅用于说明本发明, 而并非对本发明的限制, 有关技术领 域的普通技术人员, 在不脱离本发明的精神和范围的情况下, 还可以做出各 种变化和变型, 因此所有等同的技术方案也属于本发明的范畴, 本发明的专 利保护范围应由权利要求限定。 工业实用性
本发明提供了一种基于一致性 hash算法存储资源的方法, 通过对计算的 hash值进行伙伴处理, 避免在映射空间发生变化后 hash关系发生激烈变化, 解决了云存储的节点发生动态变化时导致资源定位变化的问题, 同时还能够 提高资源存储和读取的速度。

Claims

权 利 要 求 书
1、 一种基于一致性 hash算法存储资源的方法, 其特征在于, 所述方法 具体包括:
Sl、 从资源集合中选取元素, 并计算所述元素的哈希值, 计算公式为 h=m%n, 其中 h为所述哈希值, m为资源集合 M中元素的值, n为大于等于 样本空间 N的值的最小 2次幂;
S2、 比较 h与 n的值的大小, 如果 h小于 n则所述资源集合 M中的资源 对应于所述样本空间 N的 h值的位置,否则对应于所述样本空间 N的 h/2值 的位置。
2、 如权利要求 1所述的方法, 其特征在于, 所述步骤 S2中对应于所述 样本空间 N的 h/2值的位置还包括:
对于写请求, 当存储系统中所述样本空间 N的存储空间增大时, n的值 变大, 并在增加后的样本空间 的 h/2位置处进行写操作。
3、 如权利要求 1所述的方法, 其特征在于, 所述步骤 S2中对应于所述 样本空间 N的 h/2值的位置还包括:
对于写请求, 当存储系统中所述样本空间 N的存储空间减小时, n的值 变小, 并在减小后的样本空间 N2的 h/2位置处进行写操作。
4、 如权利要求 1所述的方法, 其特征在于, 所述步骤 S2中对应于所述 样本空间 N的 h/2值的位置还包括:
对于读请求, 在所述样本空间 N的 h/2位置处进行一级查找, 如果找到 则直接在所述读请求中相应的操作位置进行读操作, 否则继续在所述样本空 间 N的 h/4位置处进行二级查找, 并循环上述操作在所述样本空间 M的 h/ 2s 位置进行 s级查找, 知道找到为止, 其中 s为整数且8≥3。
5、 如权利要求 2-4中任一项所述的方法, 其特征在于, 所述读请求或写 请求中包含读操作或写操作的操作位置。
6、 如权利要求 4所述的方法, 其特征在于, 在所述读请求中相应的操作 位置进行读操作之后还包括根据查找到的位置对所述资源集合中元素的存储 位置进行纠正
PCT/CN2013/089254 2013-05-07 2013-12-12 一种基于一致性hash算法存储资源的方法 WO2014180139A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201310165280.7A CN103281358B (zh) 2013-05-07 2013-05-07 一种基于一致性hash算法存储资源的方法
CN201310165280.7 2013-05-07

Publications (1)

Publication Number Publication Date
WO2014180139A1 true WO2014180139A1 (zh) 2014-11-13

Family

ID=49063803

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2013/089254 WO2014180139A1 (zh) 2013-05-07 2013-12-12 一种基于一致性hash算法存储资源的方法

Country Status (2)

Country Link
CN (1) CN103281358B (zh)
WO (1) WO2014180139A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103281358B (zh) * 2013-05-07 2016-04-20 汉柏科技有限公司 一种基于一致性hash算法存储资源的方法
CN104270458A (zh) * 2014-10-17 2015-01-07 浪潮(北京)电子信息产业有限公司 一种实现云存储系统数据分布管理的方法及装置
CN111031567B (zh) * 2020-01-14 2022-06-24 南通先进通信技术研究院有限公司 一种核心网设备的流量统计方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120078915A1 (en) * 2010-09-29 2012-03-29 Jeffrey Darcy Systems and methods for cloud-based directory system based on hashed values of parent and child storage locations
CN102457571A (zh) * 2011-09-15 2012-05-16 中标软件有限公司 一种云存储中数据均衡分布方法
CN102739622A (zh) * 2011-04-15 2012-10-17 北京兴宇中科科技开发股份有限公司 一种可扩展的数据存储系统
CN102855294A (zh) * 2012-08-13 2013-01-02 北京联创信安科技有限公司 一种智能哈希数据布局方法、集群存储系统及其方法
CN103281358A (zh) * 2013-05-07 2013-09-04 汉柏科技有限公司 一种基于一致性hash算法存储资源的方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101320351A (zh) * 2008-06-27 2008-12-10 华中科技大学 内存的分配、清理和释放方法及内存管理的装置
CN102577241B (zh) * 2009-12-31 2014-07-30 华为技术有限公司 分布式缓存资源调度的方法、装置及系统
CN102387169B (zh) * 2010-08-26 2014-07-23 阿里巴巴集团控股有限公司 分布式缓存的对象删除方法、系统及删除服务器
CN102819599B (zh) * 2012-08-15 2016-06-01 华数传媒网络有限公司 在一致性哈希数据分布基础上构建层次目录的方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120078915A1 (en) * 2010-09-29 2012-03-29 Jeffrey Darcy Systems and methods for cloud-based directory system based on hashed values of parent and child storage locations
CN102739622A (zh) * 2011-04-15 2012-10-17 北京兴宇中科科技开发股份有限公司 一种可扩展的数据存储系统
CN102457571A (zh) * 2011-09-15 2012-05-16 中标软件有限公司 一种云存储中数据均衡分布方法
CN102855294A (zh) * 2012-08-13 2013-01-02 北京联创信安科技有限公司 一种智能哈希数据布局方法、集群存储系统及其方法
CN103281358A (zh) * 2013-05-07 2013-09-04 汉柏科技有限公司 一种基于一致性hash算法存储资源的方法

Also Published As

Publication number Publication date
CN103281358A (zh) 2013-09-04
CN103281358B (zh) 2016-04-20

Similar Documents

Publication Publication Date Title
WO2015143983A1 (zh) 一种对vnf实现加速处理的方法及装置
CN104536724B (zh) 一种多核环境下哈希表并发访问性能优化方法
WO2017020742A1 (zh) 负载均衡方法及设备
JP2015508924A (ja) 複合不揮発性記憶装置のためのデータ移行
WO2017028696A1 (zh) 分布式存储系统的负载监控方法及设备
WO2015078194A1 (zh) 一种哈希数据库的配置方法和装置
WO2014101420A1 (zh) 一种元数据的构建系统及其方法
JP6275119B2 (ja) メモリ要素の割当てのために一方向リンク付けリストを区分化するシステム及び方法
JP2017208096A (ja) データの回収方法及び格納方法並びに重複除去モジュール
CN104407879A (zh) 一种电网时序大数据并行加载方法
CN106599091B (zh) 基于键值存储的rdf图结构存储和索引方法
WO2015043376A1 (zh) 一种页的访问方法和页的访问装置、服务器
WO2015100549A1 (zh) 一种图数据查询方法及装置
CN106534308A (zh) 一种分布式存储系统中解决数据块访问热点的方法及装置
WO2015100674A1 (zh) 数据迁移方法、装置和处理器
US20150074340A1 (en) Electronic device data distribution
US9311153B2 (en) Core affinity bitmask translation
WO2014180139A1 (zh) 一种基于一致性hash算法存储资源的方法
WO2016135618A1 (en) Ordering schemes for network and storage i/o requests for minimizing workload idle time and inter-workload interference
CN115495433A (zh) 一种分布式存储系统、数据迁移方法及存储装置
WO2015176315A1 (zh) 哈希连接方法、装置和数据库管理系统
WO2010012196A1 (zh) 一种数据读写的方法和装置
Feng et al. HQ-Tree: A distributed spatial index based on Hadoop
WO2021207923A1 (zh) 集群扩容方法、装置、存储介质及电子设备
US10901767B2 (en) Data locality for hyperconverged virtual computing platform

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 13884324

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 13884324

Country of ref document: EP

Kind code of ref document: A1