CN105447112A - 一种实现关系数据库Hash分区高效扩展的方法 - Google Patents
一种实现关系数据库Hash分区高效扩展的方法 Download PDFInfo
- Publication number
- CN105447112A CN105447112A CN201510780115.1A CN201510780115A CN105447112A CN 105447112 A CN105447112 A CN 105447112A CN 201510780115 A CN201510780115 A CN 201510780115A CN 105447112 A CN105447112 A CN 105447112A
- Authority
- CN
- China
- Prior art keywords
- physical extents
- partition
- logical partition
- hash
- data
- Prior art date
- Legal status (The legal status 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 status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及关系数据库分区存储技术领域,尤其是一种实现关系数据库Hash分区高效扩展的方法。本发明方法通过设定一个足够大的环形Hash空间,把Hash空间划分为固定大小的多个子空间,通过创建系统物理分区并与各子空间进行映射,由CRC32算法对数据进行哈希计算,从而选择子空间并映射物理空间上,当增加系统物理分区时,只需对最大的子空间进行拆分,并转移原来的物理空间上的数据记录,而不需重新计算各数据记录的Hash值,从而可快速高效地扩展数据表的分区存储空间。本发明解决了关系型数据库进行Hash分区时需要创建2的N次方的分区数量,或是增加分区时,需增加原有的1倍数量的分区,而且需重新计算关键因子的Hash值的问题,从而为大数据量的关系数据库表的分区增加提供一个高效的扩展方法,可应用于大数据量的关系数据库Hash分区上。
Description
技术领域
本发明涉及关系数据库分区存储技术领域,尤其是一种实现关系数据库Hash分区高效扩展的方法。
背景技术
随着关系数据库的普及,越来越多的应用系统使用关系数据库来进行数据的存储,但随着时间的推移,关系数据库对于大数据表的反应会越来越迟缓,从而需要进行数据库表的优化、设计存储架构等;
传统的关系数据库支持为了支持对大数据表读写,经常通过对大数据表的存储通过分区,存储在多个物理分区上,从而降低对同一个文件进行读取的频率来提高数据的调取效率,分区的类型包括范围分区、列表分区、Hash分区、复合分区等,其中的Hash分区是经常使用的分区方法,通过对关键因子的Hash计算,从而把数据均衡地分布于多个物理分区上;
但是现在的数据库Hash分区方法,在分区的数量上都建议是按2的N次方进行分,在进行Hash扩展时,还需按原有的分区数量的1倍进行操作,同时增加分区时,还需对新的分区的关键因子的Hash值进行重新计算,导致应用系统需要扩展新分区时,需一次性扩展比较多的物理空间,同时还会因为Hash值的重新计算,导致耗费大量的时间。
发明内容
本发明解决的技术问题在已提供一种实现关系数据库Hash分区高效扩展的方法;使数据库物理空间的增加与删除可以根据应用系统的需要而自主定义增加或删除物理空间的数量,同时还提高了增加物理分区时的效率,从而大大提高数据库的分区管理。
本发明解决上述技术问题的技术方案是:
设定一个足够大的环形Hash空间,把Hash空间划分为固定大小的多个子空间;创建一定数量的系统物理分区,并与各子空间进行映射;在增加数据时对关键因子由CRC32算法进行哈希计算,从而选择相应的逻辑空间并映射存储到具体的物理空间上;当增加系统物理分区时,修改系统的物理分区与各子空间的映射关系,并把存储在上个拆分子空间上、按照新的映射关系需转移到新物理分区上的数据,转移到新增的物理空间上;当删除系统物理分区时,把要删除的物理分区的数据合并到邻近的物理分区上,并在逻辑分区上也进行合并,从而实现物理分区的高效快速扩展。
由程序系统中间件设定环形Hash空间,此空间满足特大数据量的存储;并把此存储空间按每500万的大小,划分为N多个逻辑子空间,用于逻辑空间的映射。
应用系统根据数据量的需要,创建N个物理分区,N个物理分区按已经分配好的逻辑子空间把足够大的环形Hash空间平均为N个逻辑分区,逻辑分区由多个逻辑子分区组成,逻辑分区、逻辑子分区、物理分区组成映射关系。
当增加数据时,中间件对数据的关键因子进行CRC32哈希计算,得出哈希值并找到对应的逻辑空间上,从而把数据存储映射到特定的物理空间上。
当增加物理分区时,中间件对原有的逻辑分区进行判断,获取逻辑子分区中最大的逻辑分区,对其进行对半拆分,同时对其映射的物理分区,通过相应的数据库语句,把存储的数据按拆分的哈希值的范围,转移到新的物理分区上;
在增加了物理分区,并对物理分区中的数据进行拆分、对逻辑分区中的逻辑子分区进行拆分后,保存相应的逻辑分区、逻辑子分区、物理分区的映射关系,从而为后续的数据读写提供保证。
当删除物理分区时,中间件对原有的逻辑分区进行分析判断,选择要删除的物理分区对应的逻辑分区相邻的逻辑分区,并通过把要删除的物理分区的数据合并到相邻的物理分区上,再把物理分区进行删除;
删除物理分区后,把要删除的物理分区映射的逻辑分区合并到对应的逻辑分区上,保存相应的逻辑分区、逻辑子分区、物理分区的映射关系,从而为后续的数据读写提供保证。
本发明方法是参考一致性Hash算法,通过设定足够大的Hash空间,再把Hash空间进行均等的分列,通过逻辑分区、逻辑子分区、物理分区的一一对应关系,从而保证在增加或删除物理分区时,只需修改逻辑分区、逻辑子分区、物理分区的映射关系,并拆分或合并物理分区上的数据,就能大致物理分区的增加或删除,也无需对Hash值进行重新计算,从而大大减少一次性操作物理分区的数量、时间,为数据库的分区管理一个方便高效的扩展方法。本发明可广泛应用于大数据量的关系数据库表一开始无法预估具体的数量、后续需不断增加物理分区的应用系统上,从而可节省扩展分区时时间与空间。
附图说明
下面结合附图对本发明进一步说明:
附图1是本发明系统逻辑图;
附图2是本发明的增加物理分区流程图;
具体实施方式
如图1、2所示,本发明是设定一个足够大的环形Hash空间,把Hash空间划分为固定大小的多个子空间;创建一定数量的系统物理分区,并与各子空间进行映射;在增加数据时对关键因子由CRC32算法进行哈希计算,从而选择相应的逻辑空间并映射存储到具体的物理空间上;当增加系统物理分区时,修改系统的物理分区与各子空间的映射关系,并把存储在上个拆分子空间上、按照新的映射关系需转移到新物理分区上的数据,转移到新增的物理空间上;当删除系统物理分区时,把要删除的物理分区的数据合并到邻近的物理分区上,并在逻辑分区上也进行合并,从而实现物理分区的高效快速扩展。
具体而言,由程序系统中间件设定环形Hash空间,此空间满足特大数据量的存储;并把此存储空间按每500万的大小,划分为N多个逻辑子空间,用于逻辑空间的映射。应用系统根据数据量的需要,创建N个物理分区,N个物理分区按已经分配好的逻辑子空间把足够大的环形Hash空间平均为N个逻辑分区,逻辑分区由多个逻辑子分区组成,逻辑分区、逻辑子分区、物理分区组成映射关系。
当增加数据时,中间件对数据的关键因子进行CRC32哈希计算,得出哈希值并找到对应的逻辑空间上,从而把数据存储映射到特定的物理空间上。
当增加物理分区时,中间件对原有的逻辑分区进行判断,获取逻辑子分区中最大的逻辑分区,对其进行对半拆分,同时对其映射的物理分区,通过相应的数据库语句,把存储的数据按拆分的哈希值的范围,转移到新的物理分区上;
在增加了物理分区,并对物理分区中的数据进行拆分、对逻辑分区中的逻辑子分区进行拆分后,保存相应的逻辑分区、逻辑子分区、物理分区的映射关系,从而为后续的数据读写提供保证。
当删除物理分区时,中间件对原有的逻辑分区进行分析判断,选择要删除的物理分区对应的逻辑分区相邻的逻辑分区,并通过把要删除的物理分区的数据合并到相邻的物理分区上,再把物理分区进行删除;
删除物理分区后,把要删除的物理分区映射的逻辑分区合并到对应的逻辑分区上,保存相应的逻辑分区、逻辑子分区、物理分区的映射关系,从而为后续的数据读写提供保证。
具体实施步骤包含以下几个步骤:
步骤一、在软件系统中间件运行前根据应用系统需要,创建N个数据库物理分区;
步骤二、把N个数据库物理分区配置到属性文件上,软件系统中间件在启动时,对整个系统的Hash空间进行平均分配,并形成N个逻辑空间,各个逻辑空间包括了多个逻辑子空间,逻辑空间与物理分区一一对应;
步骤三、当增加一条数据,软件系统中间件通过对关键因子进行CRC32算法的哈希计算,从而映射到逻辑空间上并存储在对应的物理空间上;
步骤四、当在数据库上增加一个物理分区时,在程序系统中间件上配置增加的新增的物理分区,程序系统中间件自动对占用最大的逻辑空间从逻辑上、物理上进行拆分,自动生成新的映射关系,以应对新的Hash计算结果的存储;
步骤五、当在数据库上删除上个物理空间时,需先在程序系统中间件上对要删除的物理分区进行删除,系统通过获取要删除的物理分区对应的相临的两个逻辑分区,计算数据量相对较小的分区用于合并要删除的物理分区的数据,然后再从数据库删除物理分区。
Claims (10)
1.一种实现关系数据库Hash分区高效扩展的方法,其特征在于:设定一个足够大的环形Hash空间,把Hash空间划分为固定大小的多个子空间;创建一定数量的系统物理分区,并与各子空间进行映射;在增加数据时对关键因子由CRC32算法进行哈希计算,从而选择相应的逻辑空间并映射存储到具体的物理空间上;当增加系统物理分区时,修改系统的物理分区与各子空间的映射关系,并把存储在上个拆分子空间上、按照新的映射关系需转移到新物理分区上的数据,转移到新增的物理空间上;当删除系统物理分区时,把要删除的物理分区的数据合并到邻近的物理分区上,并在逻辑分区上也进行合并,从而实现物理分区的高效快速扩展。
2.根据权利要求1所述的一种实现关系数据库Hash分区高效扩展的方法,其特征在于:由程序系统中间件设定环形Hash空间,此空间满足特大数据量的存储;并把此存储空间按每500万的大小,划分为N多个逻辑子空间,用于逻辑空间的映射。
3.根据权利要求1所述的一种实现关系数据库Hash分区高效扩展的方法,其特征在于:应用系统根据数据量的需要,创建N个物理分区,N个物理分区按已经分配好的逻辑子空间把足够大的环形Hash空间平均为N个逻辑分区,逻辑分区由多个逻辑子分区组成,逻辑分区、逻辑子分区、物理分区组成映射关系。
4.根据权利要求2所述的一种实现关系数据库Hash分区高效扩展的方法,其特征在于:应用系统根据数据量的需要,创建N个物理分区,N个物理分区按已经分配好的逻辑子空间把足够大的环形Hash空间平均为N个逻辑分区,逻辑分区由多个逻辑子分区组成,逻辑分区、逻辑子分区、物理分区组成映射关系。
5.根据权利要求1至4任一项所述的一种实现关系数据库Hash分区高效扩展的方法,其特征在于:当增加数据时,中间件对数据的关键因子进行CRC32哈希计算,得出哈希值并找到对应的逻辑空间上,从而把数据存储映射到特定的物理空间上。
6.根据权利要求1至4任一项所述的一种实现关系数据库Hash分区高效扩展的方法,其特征在于:当增加物理分区时,中间件对原有的逻辑分区进行判断,获取逻辑子分区中最大的逻辑分区,对其进行对半拆分,同时对其映射的物理分区,通过相应的数据库语句,把存储的数据按拆分的哈希值的范围,转移到新的物理分区上;
在增加了物理分区,并对物理分区中的数据进行拆分、对逻辑分区中的逻辑子分区进行拆分后,保存相应的逻辑分区、逻辑子分区、物理分区的映射关系,从而为后续的数据读写提供保证。
7.根据权利要求5所述的一种实现关系数据库Hash分区高效扩展的方法,其特征在于:当增加物理分区时,中间件对原有的逻辑分区进行判断,获取逻辑子分区中最大的逻辑分区,对其进行对半拆分,同时对其映射的物理分区,通过相应的数据库语句,把存储的数据按拆分的哈希值的范围,转移到新的物理分区上;
在增加了物理分区,并对物理分区中的数据进行拆分、对逻辑分区中的逻辑子分区进行拆分后,保存相应的逻辑分区、逻辑子分区、物理分区的映射关系,从而为后续的数据读写提供保证。
8.根据权利要求1至4任一项所述的一种实现关系数据库Hash分区高效扩展的方法,其特征在于:
当删除物理分区时,中间件对原有的逻辑分区进行分析判断,选择要删除的物理分区对应的逻辑分区相邻的逻辑分区,并通过把要删除的物理分区的数据合并到相邻的物理分区上,再把物理分区进行删除;
删除物理分区后,把要删除的物理分区映射的逻辑分区合并到对应的逻辑分区上,保存相应的逻辑分区、逻辑子分区、物理分区的映射关系,从而为后续的数据读写提供保证。
9.根据权利要求5所述的一种实现关系数据库Hash分区高效扩展的方法,其特征在于:
当删除物理分区时,中间件对原有的逻辑分区进行分析判断,选择要删除的物理分区对应的逻辑分区相邻的逻辑分区,并通过把要删除的物理分区的数据合并到相邻的物理分区上,再把物理分区进行删除;
删除物理分区后,把要删除的物理分区映射的逻辑分区合并到对应的逻辑分区上,保存相应的逻辑分区、逻辑子分区、物理分区的映射关系,从而为后续的数据读写提供保证。
10.根据权利要求6所述的一种实现关系数据库Hash分区高效扩展的方法,其特征在于:
当删除物理分区时,中间件对原有的逻辑分区进行分析判断,选择要删除的物理分区对应的逻辑分区相邻的逻辑分区,并通过把要删除的物理分区的数据合并到相邻的物理分区上,再把物理分区进行删除;
删除物理分区后,把要删除的物理分区映射的逻辑分区合并到对应的逻辑分区上,保存相应的逻辑分区、逻辑子分区、物理分区的映射关系,从而为后续的数据读写提供保证。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510780115.1A CN105447112B (zh) | 2015-11-12 | 2015-11-12 | 一种实现关系数据库Hash分区高效扩展的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510780115.1A CN105447112B (zh) | 2015-11-12 | 2015-11-12 | 一种实现关系数据库Hash分区高效扩展的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105447112A true CN105447112A (zh) | 2016-03-30 |
CN105447112B CN105447112B (zh) | 2019-02-01 |
Family
ID=55557290
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510780115.1A Active CN105447112B (zh) | 2015-11-12 | 2015-11-12 | 一种实现关系数据库Hash分区高效扩展的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105447112B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107861989A (zh) * | 2017-10-17 | 2018-03-30 | 平安科技(深圳)有限公司 | 数据的分区存储方法、装置、计算机设备及存储介质 |
CN107943412A (zh) * | 2016-10-12 | 2018-04-20 | 阿里巴巴集团控股有限公司 | 一种分区分裂、删除分区中数据文件的方法、装置及系统 |
CN109117423A (zh) * | 2017-06-23 | 2019-01-01 | 阿里巴巴集团控股有限公司 | 数据库系统的表格分区配置方法、装置和系统 |
US10901796B2 (en) | 2017-06-30 | 2021-01-26 | Microsoft Technology Licensing, Llc | Hash-based partitioning system |
CN112580068A (zh) * | 2020-11-30 | 2021-03-30 | 北卡科技有限公司 | 一种SQLite数据库安全增强方法 |
CN117931811A (zh) * | 2024-03-22 | 2024-04-26 | 腾讯科技(深圳)有限公司 | 数据库处理方法、装置、计算机设备和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7685312B1 (en) * | 2005-02-10 | 2010-03-23 | Sun Microsystems, Inc. | Resource location by address space allocation |
CN101751457A (zh) * | 2008-11-28 | 2010-06-23 | 国际商业机器公司 | 信息处理设备、数据库系统、信息处理方法 |
CN102968503A (zh) * | 2012-12-10 | 2013-03-13 | 曙光信息产业(北京)有限公司 | 数据库系统的数据处理方法以及数据库系统 |
WO2013117002A1 (zh) * | 2012-02-09 | 2013-08-15 | 华为技术有限公司 | 一种数据重建方法、装置和系统 |
CN103473321A (zh) * | 2013-09-12 | 2013-12-25 | 华为技术有限公司 | 数据库管理方法与系统 |
-
2015
- 2015-11-12 CN CN201510780115.1A patent/CN105447112B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7685312B1 (en) * | 2005-02-10 | 2010-03-23 | Sun Microsystems, Inc. | Resource location by address space allocation |
CN101751457A (zh) * | 2008-11-28 | 2010-06-23 | 国际商业机器公司 | 信息处理设备、数据库系统、信息处理方法 |
WO2013117002A1 (zh) * | 2012-02-09 | 2013-08-15 | 华为技术有限公司 | 一种数据重建方法、装置和系统 |
CN102968503A (zh) * | 2012-12-10 | 2013-03-13 | 曙光信息产业(北京)有限公司 | 数据库系统的数据处理方法以及数据库系统 |
CN103473321A (zh) * | 2013-09-12 | 2013-12-25 | 华为技术有限公司 | 数据库管理方法与系统 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107943412A (zh) * | 2016-10-12 | 2018-04-20 | 阿里巴巴集团控股有限公司 | 一种分区分裂、删除分区中数据文件的方法、装置及系统 |
CN107943412B (zh) * | 2016-10-12 | 2021-10-22 | 阿里巴巴集团控股有限公司 | 一种分区分裂、删除分区中数据文件的方法、装置及系统 |
CN109117423A (zh) * | 2017-06-23 | 2019-01-01 | 阿里巴巴集团控股有限公司 | 数据库系统的表格分区配置方法、装置和系统 |
US10901796B2 (en) | 2017-06-30 | 2021-01-26 | Microsoft Technology Licensing, Llc | Hash-based partitioning system |
CN107861989A (zh) * | 2017-10-17 | 2018-03-30 | 平安科技(深圳)有限公司 | 数据的分区存储方法、装置、计算机设备及存储介质 |
CN112580068A (zh) * | 2020-11-30 | 2021-03-30 | 北卡科技有限公司 | 一种SQLite数据库安全增强方法 |
CN112580068B (zh) * | 2020-11-30 | 2023-05-23 | 北卡科技有限公司 | 一种SQLite数据库安全增强方法 |
CN117931811A (zh) * | 2024-03-22 | 2024-04-26 | 腾讯科技(深圳)有限公司 | 数据库处理方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN105447112B (zh) | 2019-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105447112A (zh) | 一种实现关系数据库Hash分区高效扩展的方法 | |
US8849876B2 (en) | Methods and apparatuses to optimize updates in a file system based on birth time | |
US10558495B2 (en) | Variable sized database dictionary block encoding | |
US11126591B2 (en) | Filter file system with inode number as primary database key | |
US20180307428A1 (en) | Data storage method, electronic device, and computer non-volatile storage medium | |
CN103914483B (zh) | 文件存储方法、装置及文件读取方法、装置 | |
US11030196B2 (en) | Method and apparatus for processing join query | |
CN105117417A (zh) | 一种读优化的内存数据库Trie树索引方法 | |
CN105574093A (zh) | 一种在基于HDFS的spark-sql大数据处理系统上建立索引的方法 | |
CN102169507A (zh) | 一种分布式实时搜索引擎 | |
CN102402602A (zh) | 一种实时数据库的b+树索引方法及装置 | |
EP3862888A1 (en) | Hybrid data distribution in a massively parallel processing architecture | |
US20180300330A1 (en) | Proactive spilling of probe records in hybrid hash join | |
CN105786918B (zh) | 基于数据载入存储空间的数据查询方法和装置 | |
CN105989015B (zh) | 一种数据库扩容方法和装置以及访问数据库的方法和装置 | |
CN103246549A (zh) | 一种数据转存的方法及系统 | |
US11151111B2 (en) | Redistributing table data in a database cluster | |
WO2016191964A1 (zh) | 一种文件系统的管理方法及装置 | |
CN107273443A (zh) | 一种基于大数据模型元数据的混合索引方法 | |
CN111125216A (zh) | 数据导入Phoenix的方法及装置 | |
WO2016038858A1 (ja) | データ管理システム、データ管理装置、データ管理方法、および、プログラム | |
US20220365905A1 (en) | Metadata processing method and apparatus, and a computer-readable storage medium | |
JP7146611B2 (ja) | カラムストアデータベースシステム及びデータベース処理高速化方法 | |
CN104239576A (zh) | 查找HBase表列值中所有行的方法和装置 | |
KR101642072B1 (ko) | 하이브리드스토리지장치 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 523808 19th Floor, Cloud Computing Center, Chinese Academy of Sciences, No. 1 Kehui Road, Songshan Lake Hi-tech Industrial Development Zone, Dongguan City, Guangdong Province Applicant after: G-Cloud Technology Co., Ltd. Address before: 523808 No. 14 Building, Songke Garden, Songshan Lake Science and Technology Industrial Park, Dongguan City, Guangdong Province Applicant before: G-Cloud Technology Co., Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |