【技术实现步骤摘要】
一种混合索引内存数据库存储引擎管理方法
[0001]本专利技术涉及数据库存储引擎
,具体提供一种混合索引内存数据库存储引擎管理方法。
技术介绍
[0002]Rocksdb是一个高性能的Key
‑
Value数据库。设计了完善的持久化机制,同时保证性能和安全性。能够良好的支持范围查询,因为Key
‑
Value记录就是按照Key来排序的。主要的三个组成部分,内存结构memtable,类似事务日志角色的WAL文件,持久化的SST文件。
[0003]如图1所示,当Memtable写入到达阈值之后,转化为immutable memTable,加入flush队列等待flush线程写入SST文件持久化。
[0004]Rocksdb中memtable转换城immutable memtable后,flush线程很快的进行SST文件写入操作,而LSM
‑
Tree的分层结构Compaction机制会出现写入数据的读写放大,大大影响了存储引擎的读写效率。而多个immutabl ...
【技术保护点】
【技术特征摘要】
1.一种混合索引内存数据库存储引擎管理方法,其特征在于,所述方法基于rocksdb存储引擎的MemTable管理机制,在memtable内部shiplist索引结构基础之上,添加B+Tree/Trie全局索引,用于Key
‑
Value的查询。2.根据权利要求1所述的一种混合索引内存数据库存储引擎管理方法,其特征在于,所述方法通过设置多个MemTable统一延迟落盘,使冷热数据分区管理。3.根据权利要求1所述的一种混合索引内存数据库存储引擎管理方法,其特征在于,所述方法的实现包括内容如下:1)写入数据从Memtable转换为immutable memtable后,将其加入B+tree/trie索引中;2)启动后台线程定时对写入immutable memtable的数据进行压缩操作,以进行资源的回收;3)设定内存阈值,将写入数据按冷热数据划分,当写入immutable memtable的数据到达设定内存阈值,作为冷数据写入SST flush到磁盘。4.根据权利要求1所述的一种混合索引内存数据库存储引擎管理方法,其特征在于,所述冷数据采取定时落盘方式,保证数据落盘次数减少,减少磁盘压缩次数。5.根据权利要求3所述的一种混合索引内存数据库存储引擎管理方法,其特征在于,所述方法的实现还包括内容如下:数据查询操作首先从memtable查询,然后查询B+tree/trie索引,最后查询SST。6.根据权利要求1所述的一种混合索引内存数据库存储引擎管理方法,其特征在于,所述方法的具体实现步骤包括: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添加索引;...
【专利技术属性】
技术研发人员:刘佳星,张晖,孙思清,周恒,
申请(专利权)人:浪潮云信息技术股份公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。