基于线性哈希表的数据存储平台组织方法和数据存储平台的制作方法

文档序号:6512403阅读:271来源:国知局
基于线性哈希表的数据存储平台组织方法和数据存储平台的制作方法
【专利摘要】本发明公开了一种基于线性哈希表的数据存储平台组织方法和数据存储平台,涉及云计算领域。本发明扩展了哈希表的结构和地址映射模式,在有新的节点加入集群时,保持键值和地址间原有的映射不变,只是扩展地址的有效位数和哈希表长度,将新产生的地址赋予新节点,并在保持系统运行的同时逐渐迁移数据;同理,在有节点离开集群时,保持键值和地址间原有的映射不变,只是收缩地址的有效位数和哈希表长度,并在保持系统运行的同时逐渐迁移数据。这种组织方法,既保留了通过哈希表组织云集群的实时性高的优点,又使集群易于维护和扩展。本发明适用于所有云存储平台,特别是对实时性要求较高、运行在内存数据库上的计费或流量控制等业务平台。
【专利说明】基于线性哈希表的数据存储平台组织方法和数据存储平台

【技术领域】
[0001] 本发明涉及云计算领域,特别涉及一种基于线性哈希表的数据存储平台组织方法 和数据存储平台。

【背景技术】
[0002] 随着大数据时代的来临,云模式是数据存储平台的发展趋势。云存储的组织方法 是指根据键值决定哪些数据存储在哪个节点的方法,可以分为树状组织法和哈希表组织法 两种。其中,哈希表组织法适合单记录查询和修改,优点是结构简单、访问速度快,缺点是集 群不易维护,增加和删除节点都需要停止集群运行并重新组织数据。
[0003] 通过哈希表组织云存储平台的方法如下:
[0004] 1)为简化模型起见,我们认为数据具有唯一的键值k,云存储平台有N个节点,编 号为0?N-1,节点之间对等。
[0005] 2)云存储平台维护一张哈希表,长度为N,表的每一列指向一个节点,并维护一个 哈希函数H,H (k)的结果取值范围在0?N-I之间。哈希本身是一种成熟的技术,现有的哈 希函数能够做到,无论k的分布如何,H(k)的分布基本均匀。
[0006] 3)当有新的数据(键值kl)载入云存储平台时,云存储平台计算H(kl),假设 H (kl)=n,则在哈希表上查找到η号节点,并将该数据存入η号节点;
[0007] 4)当用户向云存储平台请求访问键值为kl的数据时,云存储平台同样根据 H (kl) =n查找哈希表,将这个请求转发给η号节点。
[0008] 图1为现有的哈希表组织原理示意图。如图1所示,如果有新的节点加入集群,则 系统需要扩展哈希表,使其长度达到Ν+1,新节点的地址编号为N ;更换哈希函数,新的哈希 函数H'(k)的取值范围为0?Ν;根据新的哈希函数迁移数据,对于任一k,H'(k)即是k 所代表的数据的存储节点。数据迁移过程涉及到整个集群几乎所有的节点,为此不得不停 止集群服务。
[0009] 节点离开集群的流程与上述加入集群相似,也需要更换哈希函数,数据迁移过程 也涉及到整个集群几乎所有的节点。
[0010] 有上述分析可见,现有的哈希表组织法集群不易维护,增加和删除节点都需要停 止集群运行并重新组织数据,不适用于实时性要求较高的数据存储平台。


【发明内容】

[0011] 本发明实施例所要解决的一个技术问题是:解决现有的哈希表组织法存在的集群 不易维护,增加和删除节点都需要停止集群运行并重新组织数据的问题。
[0012] 根据本发明实施例的一个方面,提出一种基于线性哈希表的数据存储平台组织方 法,包括:对于节点数量为N的一个集群,如果有新节点加入该集群,将哈希表长度扩展为 N+1,新节点的地址编号记为N ;将哈希表分裂指针指向的节点上的部分数据迁移到地址编 号为N的新节点上;哈希表分裂指针后移一位,指向下一个节点;更新哈希表位数计数器的 值

【权利要求】
1. 一种基于线性哈希表的数据存储平台组织方法,包括: 对于节点数量为N的一个集群,如果有新节点加入该集群,将哈希表长度扩展为N+1, 新节点的地址编号记为N; 将哈希表分裂指针指向的节点上的部分数据迁移到地址编号为N的新节点上; 哈希表分裂指针后移一位,指向下一个节点; A/"+l 更新哈希表位数计数器的值log,,其中,d表示哈希表位数计数器的值,I表示向上取整。
2. 根据权利要求1所述的方法,其特征在于,还包括: 用户请求访问键值为k的数据时,根据H(k)=n计算k的哈希值,H表示哈希函数,η表 示计算出的哈希值; 获取哈希表位数计数器的值d; 截取η的后d位得到η' ; 截取η的后d-1位得到η" ; 比较哈希表分裂指针与地址编号η"的位置,如果地址编号为η"的节点在哈希表分裂 指针之后,将请求定位到地址编号为η"的节点,如果地址编号为η"的节点在哈希表分裂指 针之前,将请求定位到地址编号为η'的节点。
3. 根据权利要求2所述的方法,其特征在于,哈希函数的取值范围大于集群中节点的 地址编号的范围。
4. 根据权利要求1所述的方法,其特征在于,所述数据存储平台是云存储平台。
5. -种基于线性哈希表的数据存储平台组织方法,包括: 对于节点数量为Ν+1的一个集群,如果哈希表最末端的地址编号为N的节点离开该集 群,哈希表分裂指针前移一位,指向上一个节点; 更新哈希表位数计数器的值J=Iog^,其中,d表示哈希表位数计数器的值,pi表 示向上取整; 将地址编号为N的节点上的所有数据迁移到哈希表分裂指针指向的节点; 将哈希表长度缩小为N。
6. 根据权利要求5所述的方法,其特征在于,还包括: 用户请求访问键值为k的数据时,根据H(k)=n计算k的哈希值,H表示哈希函数,η表 示计算出的哈希值; 获取哈希表位数计数器的值d; 截取η的后d位得到η' ; 截取η的后d-1位得到η" ; 比较哈希表分裂指针与地址编号η"的位置,如果地址编号为η"的节点在哈希表分裂 指针之后,将请求定位到地址编号为η"的节点,如果地址编号为η"的节点在哈希表分裂指 针之前,将请求定位到地址编号为η'的节点。
7. -种数据存储平台,包括:节点加入处理单元或/和节点离开处理单元; 节点加入处理单元对于节点数量为N的一个集群,如果有新节点加入该集群,将哈希 表长度扩展为N+1,新节点的地址编号记为N;将哈希表分裂指针指向的节点上的部分数据 迁移到地址编号为N的新节点上;哈希表分裂指针后移一位,指向下一个节点;更新哈希表 ,Γι制1 位数计数器的值J=Iog2,其中,d表示哈希表位数计数器的值,f1表示向上取整; 节点离开处理单元对于节点数量为N+1的一个集群,如果哈希表最末端的地址编号为N的节点离开该集群,哈希表分裂指针前移一位,指向上一个节点;更新哈希表位数计数器 的值J=log『,其中,d表示哈希表位数计数器的值,pi表示向上取整;将地址编号为N 的节点上的所有数据迁移到哈希表分裂指针指向的节点;将哈希表长度缩小为N。
8. 根据权利要求7所述的数据存储平台,其特征在于,还包括: 数据访问处理单元,用于用户请求访问键值为k的数据时,根据H(k)=n计算k的哈希 值,H表示哈希函数,η表示计算出的哈希值;获取哈希表位数计数器的值d;截取η的后d 位得到η' ;截取η的后d-Ι位得到η" ;比较哈希表分裂指针与地址编号η"的位置,如果地 址编号为η"的节点在哈希表分裂指针之后,将请求定位到地址编号为η"的节点,如果地址 编号为η"的节点在哈希表分裂指针之前,将请求定位到地址编号为η'的节点。
9. 根据权利要求8所述的数据存储平台,其特征在于,哈希函数的取值范围大于集群 中节点的地址编号的范围。
10. 根据权利要求7所述的数据存储平台,其特征在于,所述数据存储平台是云存储平 台。
【文档编号】G06F17/30GK104462124SQ201310430856
【公开日】2015年3月25日 申请日期:2013年9月22日 优先权日:2013年9月22日
【发明者】郁抒思, 姚良, 何叶 申请人:中国电信股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1