一种基于ART树的存储引擎缓存方法及系统技术方案

技术编号:32777278 阅读:28 留言:0更新日期:2022-03-23 19:34
本发明专利技术公开了一种基于ART树的存储引擎缓存方法及系统,属于数据库领域,通过两个ART树间的数据索引迁移的方式,建立新的ART树,淘汰旧的ART树;设置数据索引迁移的阈值,在当前缓存的KV数据占用的内存空间占设定的最大缓存值的百分比大于等于所述数据索引迁移的阈值时,启动数据索引迁移工作;当新旧两个ART树索引的KV数据的内存空间等于或超过设定的最大缓存值时,删除旧的ART树,并且释放旧ART树索引的KV数据存储空间。本发明专利技术能够优化内存使用,保持ART树的查询性能。保持ART树的查询性能。保持ART树的查询性能。

【技术实现步骤摘要】
一种基于ART树的存储引擎缓存方法及系统


[0001]本专利技术涉及数据库
,具体地说是一种基于ART树的存储引擎缓存方法及系统。

技术介绍

[0002]内存中数据的组织方式,对于存储引擎的吞吐率有直接影响。ART算法是近两年刚出现的索引算法,ART在众多的索引算法中插入和查询性能目前都是最优的,比哈希算法更快。
[0003]ART的全称是Adaptive Radix Tree,中文是自适应基数树,实际上就是基数树的升级版。基数树(Radix Trie,也叫基数特里树或压缩前缀树)是一种数据结构,是一种更节省空间的Trie(前缀树),其中作为唯一子节点的每个节点都与其父节点合并,边既可以表示为元素序列又可以表示为单个元素。
[0004]ART算法通过使用路径压缩和懒扩展技术,使得查询性能得到很大提升。但是ART算法删除部分数据时,如果不对路径重新压缩,会降低整个ART树的访问性能;如果对路径重新压缩,实现的逻辑非常复杂,而且运行时对ART算法性能有很大影响。

技术实现思路

[0005]本专利技术的技术任务是本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种基于ART树的存储引擎缓存方法,其特征在于,通过两个ART树间的数据索引迁移的方式,建立新的ART树,淘汰旧的ART树;设置数据索引迁移的阈值,在当前缓存的KV数据占用的内存空间占设定的最大缓存值的百分比大于等于所述数据索引迁移的阈值时,启动数据索引迁移工作;当新旧两个ART树索引的KV数据的内存空间等于或超过设定的最大缓存值时,删除旧的ART树,并且释放旧ART树索引的KV数据存储空间。2.根据权利要求1所述的一种基于ART树的存储引擎缓存方法,其特征在于该方法的实现流程包括执行单个ART树查询的逻辑和执行双个ART树查询的逻辑,开始查询某个Key值时,首先判断当前缓存是否只有一个ART树,如果只有一个,则走单个ART树查询的逻辑;如果有两个,则走双ART树查询的逻辑;最终将查询到的KV数据返回。3.根据权利要求2所述的一种基于ART树的存储引擎缓存方法,其特征在于设置优先查询新ART树的阈值,优先查询新ART树的阈值为新ART树中数据量与原ART树中数据量的比值,大于该阈值,则先查新ART树;小于该阈值,则先查旧ART树。4.根据权利要求3所述的一种基于ART树的存储引擎缓存方法,其特征在于,所述单个ART树查询的逻辑如下:首先使用ART算法中的查询算法从ART树中查询Key值是否存在,如果查询到,则直接返回相应的KV数据;如果没有查询到,需要从磁盘或者其他介质中提取相应的KV数据,将KV数据在ART树上建立索引;挂载新的KV数据,会占用新的内存,因此,需要判断当前KV数据占用的内存空间是否超过数据索引迁移的阈值,如果没有超过,则直接返回KV数据;如果超过,则新建ART树,缓存中形成双ART树结构,然后再返回KV数据。5.根据权利要求3或4所述的一种基于ART树的存储引擎缓存方法,其特征在于,所述双个ART树查询的逻辑如下:S1:判断是否先查询原ART树,根据判断的规则为新ART树中数据量与原ART树中数据量的比值是否大于优先查询新ART树的阈值,如果大于,则说明先查新ART树,进入下一步;如果小于等于优先查询新ART树的阈值,则说明先查原ART树,跳到步骤S4;S2:使用ART算法中的查询算法从新ART树中查询Key值是否存在,如果查询到,跳到步骤S9;如果没有查询到,进入下一步;S3:使用ART算法中的查询算法从原ART树中查询Key值是否存在,如果查询到,将该KV数据在新ART树上建立索引,同时删除该KV数据在原ART树上的索引,并跳到步骤S9;如果没有查询到,从磁盘中读取Key值...

【专利技术属性】
技术研发人员:梁波张炜刚贾德星
申请(专利权)人:浪潮云信息技术股份公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1