一种实现关系数据库Hash分区高效扩展的方法

文档序号:9687573阅读:818来源:国知局
一种实现关系数据库Hash分区高效扩展的方法
【技术领域】
[0001]本发明涉及关系数据库分区存储技术领域,尤其是一种实现关系数据库Hash分区高效扩展的方法。
【背景技术】
[0002]随着关系数据库的普及,越来越多的应用系统使用关系数据库来进行数据的存储,但随着时间的推移,关系数据库对于大数据表的反应会越来越迟缓,从而需要进行数据库表的优化、设计存储架构等;
[0003]传统的关系数据库支持为了支持对大数据表读写,经常通过对大数据表的存储通过分区,存储在多个物理分区上,从而降低对同一个文件进行读取的频率来提高数据的调取效率,分区的类型包括范围分区、列表分区、Hash分区、复合分区等,其中的Hash分区是经常使用的分区方法,通过对关键因子的Hash计算,从而把数据均衡地分布于多个物理分区上;
[0004]但是现在的数据库Hash分区方法,在分区的数量上都建议是按2的N次方进行分,在进行Hash扩展时,还需按原有的分区数量的1倍进行操作,同时增加分区时,还需对新的分区的关键因子的Hash值进行重新计算,导致应用系统需要扩展新分区时,需一次性扩展比较多的物理空间,同时还会因为Hash值的重新计算,导致耗费大量的时间。

【发明内容】

[0005]本发明解决的技术问题在已提供一种实现关系数据库Hash分区高效扩展的方法;使数据库物理空间的增加与删除可以根据应用系统的需要而自主定义增加或删除物理空间的数量,同时还提高了增加物理分区时的效率,从而大大提高数据库的分区管理。
[0006]本发明解决上述技术问题的技术方案是:
[0007]设定一个足够大的环形Hash空间,把Hash空间划分为固定大小的多个子空间;仓1|建一定数量的系统物理分区,并与各子空间进行映射;在增加数据时对关键因子由CRC32算法进行哈希计算,从而选择相应的逻辑空间并映射存储到具体的物理空间上;当增加系统物理分区时,修改系统的物理分区与各子空间的映射关系,并把存储在上个拆分子空间上、按照新的映射关系需转移到新物理分区上的数据,转移到新增的物理空间上;当删除系统物理分区时,把要删除的物理分区的数据合并到邻近的物理分区上,并在逻辑分区上也进行合并,从而实现物理分区的高效快速扩展。
[0008]由程序系统中间件设定环形Hash空间,此空间满足特大数据量的存储;并把此存储空间按每500万的大小,划分为N多个逻辑子空间,用于逻辑空间的映射。
[0009]应用系统根据数据量的需要,创建N个物理分区,N个物理分区按已经分配好的逻辑子空间把足够大的环形Hash空间平均为N个逻辑分区,逻辑分区由多个逻辑子分区组成,逻辑分区、逻辑子分区、物理分区组成映射关系。
[0010]当增加数据时,中间件对数据的关键因子进行CRC32哈希计算,得出哈希值并找到对应的逻辑空间上,从而把数据存储映射到特定的物理空间上。
[0011]当增加物理分区时,中间件对原有的逻辑分区进行判断,获取逻辑子分区中最大的逻辑分区,对其进行对半拆分,同时对其映射的物理分区,通过相应的数据库语句,把存储的数据按拆分的哈希值的范围,转移到新的物理分区上;
[0012]在增加了物理分区,并对物理分区中的数据进行拆分、对逻辑分区中的逻辑子分区进行拆分后,保存相应的逻辑分区、逻辑子分区、物理分区的映射关系,从而为后续的数据读写提供保证。
[0013]当删除物理分区时,中间件对原有的逻辑分区进行分析判断,选择要删除的物理分区对应的逻辑分区相邻的逻辑分区,并通过把要删除的物理分区的数据合并到相邻的物理分区上,再把物理分区进行删除;
[0014]删除物理分区后,把要删除的物理分区映射的逻辑分区合并到对应的逻辑分区上,保存相应的逻辑分区、逻辑子分区、物理分区的映射关系,从而为后续的数据读写提供保证。
[0015]本发明方法是参考一致性Hash算法,通过设定足够大的Hash空间,再把Hash空间进行均等的分列,通过逻辑分区、逻辑子分区、物理分区的一一对应关系,从而保证在增加或删除物理分区时,只需修改逻辑分区、逻辑子分区、物理分区的映射关系,并拆分或合并物理分区上的数据,就能大致物理分区的增加或删除,也无需对Hash值进行重新计算,从而大大减少一次性操作物理分区的数量、时间,为数据库的分区管理一个方便高效的扩展方法。本发明可广泛应用于大数据量的关系数据库表一开始无法预估具体的数量、后续需不断增加物理分区的应用系统上,从而可节省扩展分区时时间与空间。
【附图说明】
[0016]下面结合附图对本发明进一步说明:
[0017]附图1是本发明系统逻辑图;
[0018]附图2是本发明的增加物理分区流程图;
【具体实施方式】
[0019]如图1、2所示,本发明是设定一个足够大的环形Hash空间,把Hash空间划分为固定大小的多个子空间;创建一定数量的系统物理分区,并与各子空间进行映射;在增加数据时对关键因子由CRC32算法进行哈希计算,从而选择相应的逻辑空间并映射存储到具体的物理空间上;当增加系统物理分区时,修改系统的物理分区与各子空间的映射关系,并把存储在上个拆分子空间上、按照新的映射关系需转移到新物理分区上的数据,转移到新增的物理空间上;当删除系统物理分区时,把要删除的物理分区的数据合并到邻近的物理分区上,并在逻辑分区上也进行合并,从而实现物理分区的高效快速扩展。
[0020]具体而言,由程序系统中间件设定环形Hash空间,此空间满足特大数据量的存储;并把此存储空间按每500万的大小,划分为N多个逻辑子空间,用于逻辑空间的映射。应用系统根据数据量的需要,创建N个物理分区,N个物理分区按已经分配好的逻辑子空间把足够大的环形Hash空间平均为N个逻辑分区,逻辑分区由多个逻辑子分区组成,逻辑分区、逻辑子分区、物理分区组成映射关系。
[0021]当增加数据时,中间件对数据的关键因子进行CRC32哈希计算,得出哈希值并找到对应的逻辑空间上,从而把数据存储映射到特定的物理空间上。
[0022]当增加物理分区时,中间件对原有的逻辑分区进行判断,获取逻辑子分区中最大的逻辑分区,对其进行对半拆分,同时对其映射的物理分区,通过相应的数据库语句,把存储的数据按拆分的哈希值的范围,转移到新的物理分区上;
[0023]在增加了物理分区,并对物理分区中的数据进行拆分、对逻辑分区中的逻辑子分区进行拆分后,保存相应的逻辑分区、逻辑子分区、物理分区的映射关系,从而为后续的数据读写提供保证。
[0024]当删除物理分区时,中间件对原有的逻辑分区进行分析判断,选择要删除的物理分区对应的逻辑分区相邻的逻辑分区,并通过把要删除的物理分区的数据合并到相邻的物理分区上,再把物理分区进行删除;
[0025]删除物理分区后,把要删除的物理分区映射的逻辑分区合并到对应的逻辑分区上,保存相应的逻辑分区、
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1