[发明专利]一种混合索引内存数据库存储引擎管理方法有效
申请号: | 202110073103.0 | 申请日: | 2021-01-20 |
公开(公告)号: | CN112667644B | 公开(公告)日: | 2023-02-21 |
发明(设计)人: | 刘佳星;张晖;孙思清;周恒 | 申请(专利权)人: | 浪潮云信息技术股份公司 |
主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F16/23;G06F16/27 |
代理公司: | 济南信达专利事务所有限公司 37100 | 代理人: | 姜明 |
地址: | 250100 山东省济南市高*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 混合 索引 内存 数据库 存储 引擎 管理 方法 | ||
1.一种混合索引内存数据库存储引擎管理方法,其特征在于,所述方法基于rocksdb存储引擎的MemTable管理机制,在memtable内部shiplist索引结构基础之上,添加B+tree全局索引,用于Key-Value的查询;
所述方法通过设置多个MemTable统一延迟落盘,使冷热数据分区管理;
所述方法的实现包括内容如下:
1)写入数据从Memtable转换为immutable memtable后,将其加入B+tree索引中;
2)启动后台线程定时对写入immutable memtable的数据进行压缩操作,以进行资源的回收;
3)设定内存阈值,将写入数据按冷热数据划分,当写入immutable memtable的数据到达设定内存阈值,作为冷数据写入SST flush到磁盘;
所述冷数据采取定时落盘方式,保证数据落盘次数减少,减少磁盘压缩次数;
所述方法的实现还包括内容如下:
数据查询操作首先从memtable查询,然后查询B+tree索引,最后查询SST;
所述方法的具体实现步骤包括:
1)新建一个B+tree索引维护类,根据Key排序,value中保存memtable的value地址,支持PUT/GET,事务提交功能和iterator查询功能;
2)索引初始化:
在MemtableListVersion中增加所述B+tree索引句柄,用于索引操作;
3)索引创建:
在后台BGFlush线程操作函数MemtableList::PickMemtablesToFlush中判断current_-memlist_队列中已添加索引memtable数量是否达到预设的Flush阈值:
未达到预设的Flush阈值,把memlist_队列中未加入索引的memtable添加索引;
达到预设的Flush阈值,进行原Flush逻辑操作;
所述索引添加过程包括内容如下:
调用memtable::NewIterator接口创建Iterator;
通过所述Iterator遍历该memtable中的所有key-value项item;
依次调用B+tree索引的Put接口,将Key及value地址保存到B+tree索引中;
所述索引查询过程包括内容如下:
在MemtableListVersion::GetFromList中,首先从memlist中未加入B+tree索引的memtable中查询,如果未查询到则从B+tree索引中查询该key;
在MemtableListVersion::AddIterators两个函数中,首先把memlist中未加入B+tree索引的memtable创建iterator,加入iteratorlist/加入mergeitertor,然后后使用B+tree索引句柄创建索引的iterator,加入iteratorlist/加入mergeitertor;
所述压缩操作的实现包括内容:
启动后台memcompaction线程,根据Immutable memtable的数量设定阈值;
当达到所设定的阈值,从memlist队列的队尾,使用mergeiterator进行多个memtable的压缩操作,生成新的memtable及WAL,更新B+tree索引;
原B+tree索引替换后,释放已废弃memtable;
所述冷热数据的计算包括内容如下:
在索引中key增加冷热数据计数器;
根据该key的每次查询,计数器以递增方式计算最近一段时间的访问率;
根据设定Flush时间或阈值,压缩时把热度低的key-value记录放到单独的memtable中;
Flush操作时优先选择热度比较低的memtable进行Flush操作,并更新B+tree索引。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮云信息技术股份公司,未经浪潮云信息技术股份公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110073103.0/1.html,转载请声明来源钻瓜专利网。