[发明专利]一种内存数据库存储引擎管理方法有效

专利信息
申请号: 202110894627.6 申请日: 2021-08-05
公开(公告)号: CN113688130B 公开(公告)日: 2023-10-13
发明(设计)人: 张华海 申请(专利权)人: 上海沄熹科技有限公司
主分类号: G06F16/22 分类号: G06F16/22;G06F16/2455
代理公司: 济南信达专利事务所有限公司 37100 代理人: 郗艳荣
地址: 200120 上海市浦东新区中国(上海)自由贸*** 国省代码: 上海;31
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 内存 数据库 存储 引擎 管理 方法
【权利要求书】:

1.一种内存数据库存储引擎管理方法,其特征在于:基于RocksDB存储引擎的Memtable管理机制,在Memtable内部新建ART索引用以取代skiplist索引,采用ART索引加Hash索引的双索引机制查询key-value,优化RocksDB存储引擎的读性能,从而实现RocksDB内存引擎模式,减少磁盘读写,提高查询速度。

2.根据权利要求1所述的内存数据库存储引擎管理方法,其特征在于,具体实现过程如下:

1)将插入Memtable的数据转为插入到ART算法管理的内存块中,并将ART算法的叶节点地址加入Hash索引中;

2)修改Memtable刷盘的逻辑,使得Memtable永不转换imMemtable,通过内存块的形式进行刷盘,内存块通过双向链表进行管理;

3)执行查询操作时,先从Hash表中查询,然后查询ART树,最后查询磁盘SST文件。

3.根据权利要求2所述的内存数据库存储引擎管理方法,其特征在于:所述步骤1)中,写入的数据在内存中以内存块的形式存储,通过双向链表对key进行排序,双向链表的每个节点内存储当前key对应的多个版本数据形成的链表,双向链表的每个节点指向内存块存储的该key对应的key-value;所述ART索引用于快速定位双向链表的特定节点,所述Hash索引用于快速查询ART树的叶子节点的地址;

写入数据时,首先通过Hash索引与ART索引计算待插入的叶子结点位置,然后根据ART的叶子节点添加双向链表,通过双向链表对业务key进行排序。

4.根据权利要求3所述的内存数据库存储引擎管理方法,其特征在于:所述步骤1)中,当有新的key插入叶子节点时,使用ART算法快速定位到双向链表的插入节点进行插入,同时增加hash表的插入逻辑,对Hash表加锁;将key的String类型作为Hash表中的key,将叶子节点指针位置作为Hash表中的value插入到Hash表中。

5.根据权利要求2所述的内存数据库存储引擎管理方法,其特征在于:所述步骤1)中,新建一个ART索引维护类,使用ART算法替换Memtable中的skiplist算法;在ART索引维护类中新建一个Hash索引类成员HashMap,用于ART索引叶节点的快速查询。

6.根据权利要求5所述的内存数据库存储引擎管理方法,其特征在于:所述步骤1)中,使用PureMemRep类继承public MemtableRep,新增Memtable的内存仓库管理类,使用InlineART类替换InlinSkiplist类,用以实现基于ART算法的内存数据索引;在InlineART类中增加类成员HashTable,hash表中存放ART叶节点和key。

7.根据权利要求2所述的内存数据库存储引擎管理方法,其特征在于:所述步骤2)中,启用异步刷盘线程,维护所有内存块的队列,队列按照内存块的上次刷盘时间排序;线程从队列取内存块,并将内存块增量的kv数据进行落盘,追加到文件末尾或形成新的磁盘SST文件。

8.根据权利要求2所述的内存数据库存储引擎管理方法,其特征在于:所述步骤3)中,调用Memtable::NewIterator接口创建基于ART树的Iterator,用于遍历ART树中的节点;

新建Memtable::NewHashIterator接口,增加ReadOptions参数,用于判断是否为MVCCGet读取;如果是则调用NewHashIterator接口,直接从Hash表中查找存储key的双向链表所对应的叶子节点,如果不是则调用NewIterator接口在hash索引中查找叶子节点,若没有再去ART索引查询;

最终得到ART树的叶子节点,得到存储多版本key的双向链表,通过遍历双向链表得到内存块中的数据。

9.根据权利要求8所述的内存数据库存储引擎管理方法,其特征在于:所述步骤3)中,当读取多版本数据即MVCCGet数据时,在Hash表中取出key对应的叶子节点,然后从叶子节点对应的双向链表中取出对应的key;如果hash索引中没有查到key,说明已经数据已经落盘,则去磁盘SST文件中查找;

当读取非MVCCGet数据时,则在hash索引中查找对应的叶子节点,若没找到对应的叶子节点,则在ART树中查找叶子节点,若ART树中没有找到对应的叶子节点,则去磁盘SST文件中查找。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海沄熹科技有限公司,未经上海沄熹科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/202110894627.6/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top