[发明专利]一种基于两层ART树的数据存储方法在审
申请号: | 202110884247.4 | 申请日: | 2021-08-03 |
公开(公告)号: | CN113626433A | 公开(公告)日: | 2021-11-09 |
发明(设计)人: | 梁波;张炜刚;贾德星 | 申请(专利权)人: | 浪潮云信息技术股份公司 |
主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F16/2453 |
代理公司: | 济南信达专利事务所有限公司 37100 | 代理人: | 郗艳荣 |
地址: | 250100 山东省济南市高*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 art 数据 存储 方法 | ||
本发明特别涉及一种基于两层ART树的数据存储方法。该基于两层ART树的数据存储方法,按Key值范围分区的方式拆分数据,使用两级ART树索引结构,第一级ART索引用于Key值范围分区,第二级ART索引用于索引范围分区内的数据。该基于两层ART树的数据存储方法,通过优化存储引擎的索引结构,提升了存储引擎的性能,解决了使用原始的一层ART树索引结构带来的索引结构查询性能随着数据量增大而大幅降低的问题。
技术领域
本发明涉及数据存储结构技术领域,特别涉及一种基于两层ART树的数据存储方法。
背景技术
ART(Adaptive Radix Tree,自适应基数/前缀树)是以二进制位串为关键字的前缀树,是一种多叉树形结构,同时又类似多层索引表,每个中间节点包含指向多个子节点的指针数组,叶子节点包含指向实际的对象的指针。
存储引擎是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建、查询、更新和删除数据。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎,还可以获得特定的功能。
内存中数据的索引结构是影响存储引擎性能的重要因素。ART树在所有的索引结构中,查询性能最优。但是,索引结构普遍存在一个问题,随着索引的数据量增大,查询性能会降低。根据论文《The Adaptive Radix Tree:ARTful Indexing for Main-MemoryDatabases》中记载的测试结果,当数据量从64K提升到16M时,ART树的查询性能降低了至少4倍,这种现象严重影响到了存储引擎的性能。
针对索引结构查询性能随着数据量增大而大幅降低现象,本发明提出了一种基于两层ART树的数据存储方法。
发明内容
本发明为了弥补现有技术的缺陷,提供了一种简单高效的基于两层ART树的数据存储方法。
本发明是通过如下技术方案实现的:
一种基于两层ART树的数据存储方法,其特征在于:按Key值范围分区的方式拆分数据,使用两级ART树索引结构,第一级ART索引用于Key值范围分区,第二级ART索引用于索引范围分区内的数据;
所述范围分区内的数据集是真实的数据集或数据的指针形成的数据集。
包括以下步骤:
第一步,数据库存储引擎刚启动时,创建第一个范围分区,其存储Key值的范围为(MIN,MAX),并且使用该范围分区最大值MAX作为Key值,将范围分区挂载到第一层ART树上,
第二步,将待插入的数据挂载到范围分区的第二层ART树上,启动待拆分队列处理线程作为后台线程,异步优化索引结构。
所述第二步中,设置作为全局参数RANGE_AREA_MAX_KVS,即范围分区最大数据量阈值;当某个范围分区数据量超过范围分区最大数据量阈值时,将该范围分区拆解成两个。
所述第二步中,数据插入流程如下:
S1:查询第一层的ART树,找到大于等于待插入的Key值对应的范围分区,存入变量curRangeArea中;
S2:判断范围分区curRangeArea的状态,如果状态为“待删除”,则返回S1;
S3:将待插入的数据挂载到范围分区curRangeArea的第二层ART树上;
S4:判断范围分区curRangeArea的状态,如果状态为“正在拆分”,则将数据放入该范围分区curRangeArea的增量数据队列中,结束并退出,否则跳转到S5;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮云信息技术股份公司,未经浪潮云信息技术股份公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110884247.4/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置