【技术实现步骤摘要】
一种基于RocksDB的大内存优化方法及系统
[0001]本专利技术涉及数据管理
,特别涉及一种基于RocksDB的大内存优化方法及系统。
技术介绍
[0002]RocksDB数据库是基于LevelDB开发的一款提供键值存储与读写功能的LSM
‑
tree 架构引擎。用户写入的键值对会先写入磁盘上的预写日志WAL(Write Ahead Log),然后再写入内存中的跳表(SkipList,这部分结构又被称作内存表MemTable)。内存中的数据达到一定阈值后,会刷到磁盘上生成SST文件(Sorted String Table,分类字符串表)。 LSM
‑
tree通过将随机读写转换为顺序读写,从而提高了写入性能。在LSM
‑
tree设计时,内存还是非常紧缺的资源,因此内存表Mem Table的容量很小。随着硬件不断提升,可使用的内存可能为数千兆字节,但当内存占用过大时,必然会影响RocksDB数据库的整体性能。
[0003]为了保障RocksDB数据库的性能,本 ...
【技术保护点】
【技术特征摘要】
1.一种基于RocksDB的大内存优化方法,其特征在于:包括以下步骤:第一步,增加imline链式队列,将写满后的内存表Mem Table转换成只读型内存表imMemTable,并将其放入imline链式队列内;第二步,判断imline链式队列成员数量是否超出阈值,若超出则跳转到第三步,否则继续写入操作;第三步,选择待合并的只读型内存表imMemTable,将选择的待合并的只读型内存表imMemTable合并成一个更大的只读型内存表imMemTable,并将其放入imline链式队列内;合并完成后,将已完成合并的只读型内存表imMemTable从imline链式队列中删除并清理;第四步,判断内存使用量是否超过了阈值,若超出则跳转回第三步,否则继续写入操作;第五步,选择imline链式队列中的只读型内存表imMemTable进行刷盘Flush,将选择的只读型内存表imMemTable放入后台刷盘Flush线程中刷新到磁盘。2.根据权利要求1所述的基于RocksDB的大内存优化方法,其特征在于:所述第三步中,采用最近最不经常使用算法LFU,根据只读型内存表imMemTable的访问频率,选择待合并的只读型内存表imMemTable。3.根据权利要求1所述的基于RocksDB的大内存优化方法,其特征在于:所述第五步中,采用最近最不经常使用算法LFU,根据内存使用量和只读型内存表imMemTable的访问频率,选择imline链式队列中的只读型内存表imMemTable。4.根据权利要求1~3所述的基于RocksDB的大内存优化方法的系统,其特征在于:包括:内存表Mem Table管理模块,负责将写满后的内存表Mem Table转换成只读型内存表imMemTable,将选择的待合并的只读型内存表imMemT...
【专利技术属性】
技术研发人员:翟延成,梁波,张炜刚,
申请(专利权)人:浪潮云信息技术股份公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。