基于LSM的数据存储方法、装置、存储介质及计算机设备制造方法及图纸

技术编号:24707855 阅读:79 留言:0更新日期:2020-06-30 23:57
本申请涉及一种基于LSM的数据存储方法、装置、存储介质及计算机设备,该方法包括:将LSM数据存储系统设置为两层;监测系统读写压力;根据系统读写压力和内存、磁盘的数据存储状态,将内存中的待写入Key‑Value数据写入到被LSM数据存储系统标记为第一层文件的对应第一层文件中,或,对内存的memtable中、磁盘的第一层文件中、第二层文件中键相同的Key‑Value数据进行合并,将合并后的Key‑Value数据写入到磁盘对应的文件中,控制LSM数据存储系统将磁盘中由合并后写入到磁盘的Key‑Value数据所在的文件标记为第一层文件或第二层文件,或,将磁盘的第一层文件标记为第二层文件。通过本申请的技术方案,可以有效减少通过LSM树读写数据时带来的读放大、写放大、空间放大,减轻对数据库性能的影响。

【技术实现步骤摘要】
基于LSM的数据存储方法、装置、存储介质及计算机设备
本申请涉及计算机
,尤其涉及一种基于LSM的数据存储方法、装置、存储介质及计算机设备。
技术介绍
LSM树(TheLog-StructuredMergeTree,日志结构的合并树)为一种底层索引结构,通过LSM树将内存中的数据批量、有序地写入磁盘,并且自动对磁盘中的各层文件做归并操作减少垃圾数据,提高了磁盘写入速度,同时将磁盘的随机输入输出变为了顺序输入输出。但是LSM算法也带来了读放大、写放大、空间放大等问题,导致数据存储系统性能随着数据写入或数据合并操作时发生抖动,影响数据存储系统服务的稳定性。现有技术中,针对LSM树索引结构在频繁更新相同Key对应的数据的情况下,容易产生消耗过大、IO操作过多、数据存储系统对外的吞吐量降低等技术问题。
技术实现思路
为了解决上述技术问题或者至少部分地解决上述技术问题,本申请实施例提供了一种基于LSM的数据存储方法、装置、存储介质及计算机设备。第一方面,本申请实施例提供了一种基于LSM的数据存储方法,该方法包括:本文档来自技高网...

【技术保护点】
1.一种基于LSM的数据存储方法,其特征在于,所述方法包括:/n将LSM数据存储系统设置为两层文件层级结构以用于将磁盘中的文件标记为第一层文件或第二层文件;/n监测系统读写压力;/n分别获取内存、磁盘的数据存储状态;/n根据所述系统读写压力和所述内存、磁盘的数据存储状态,将内存memtable中的待写入Key-Value数据写入到磁盘对应的文件中,控制LSM数据存储系统将磁盘中由memtable写入到磁盘的Key-Value数据所在的文件标记为第一层文件,或,对内存的memtable中、磁盘的第一层文件中、磁盘的第二层文件中键相同的Key-Value数据进行合并操作,将合并后的Key-Valu...

【技术特征摘要】
1.一种基于LSM的数据存储方法,其特征在于,所述方法包括:
将LSM数据存储系统设置为两层文件层级结构以用于将磁盘中的文件标记为第一层文件或第二层文件;
监测系统读写压力;
分别获取内存、磁盘的数据存储状态;
根据所述系统读写压力和所述内存、磁盘的数据存储状态,将内存memtable中的待写入Key-Value数据写入到磁盘对应的文件中,控制LSM数据存储系统将磁盘中由memtable写入到磁盘的Key-Value数据所在的文件标记为第一层文件,或,对内存的memtable中、磁盘的第一层文件中、磁盘的第二层文件中键相同的Key-Value数据进行合并操作,将合并后的Key-Value数据写入到磁盘对应的文件中,控制LSM数据存储系统将磁盘中由合并后写入到磁盘的Key-Value数据所在的文件标记为第一层文件或第二层文件,或,将磁盘的第一层文件标记为第二层文件。


2.根据权利要求1所述的方法,其特征在于,所述方法还包括:设置内存中memtable个数、每个memtable的键范围,其中,每个memtable的键范围不重叠,每个memtable包含的键的初始个数为对应的memtable的键范围内包含的不同键的个数,每个memtable包含的键的初始个数相同;
所述根据系统读写压力和内存、磁盘的数据存储状态,将内存的memtable中的待写入Key-Value数据写入到磁盘对应的文件中,控制LSM数据存储系统将磁盘中由memtable写入到磁盘的Key-Value数据所在的文件标记为第一层文件,包括:
当内存与磁盘之间、磁盘内部之间没有可合并的Key-Value数据或系统读写压力大于等于压力阈值时,将内存memtable中的待写入Key-Value数据写入到磁盘对应生成的文件中,控制LSM数据存储系统将磁盘中由memtable写入到磁盘的Key-Value数据所在的文件标记为第一层文件。


3.根据权利要求2所述的方法,其特征在于,所述对内存的memtable中、磁盘的第一层文件中、磁盘的第二层文件中键相同的Key-Value数据进行合并操作,将合并后的Key-Value数据写入到磁盘对应的文件中,控制LSM数据存储系统将磁盘中由合并后写入到磁盘的Key-Value数据所在的文件标记为第一层文件或第二层文件,包括:
当系统读写压力小于压力阈值且内存与磁盘之间或磁盘内部之间有可合并的Key-Value数据时,则将磁盘中键范围相同的文件所对应的Key-Value数据读到内存中,删除磁盘中已读出的文件,将读到内存中的键相同的Key-Value数据进行合并得到合并后的Key-Value数据,或,将读到内存中的键相同的Key-Value数据、内存的memtable中键相同的Key-Value数据进行合并得到合并后的Key-Value数据,将合并后的Key-Value数据写入到磁盘对应生成的文件中,控制LSM数据存储系统将磁盘中由第一层文件与第二层文件合并后写入到磁盘的Key-Value数据所在的文件或由内存、第一层文件、第二层文件合并后写入到磁盘的Key-Value数据所在的文件或由内存、第二层文件合并后写入到磁盘的Key-Value数据所在的文件标记为第二层文件,控制LSM数据存储系统将磁盘中由内存、第一层文件合并后写入到磁盘的Key-Value数据所在的文件标记为第一层文件;
所述将磁盘的第一层文件标记为第二层文件,包括:
当内存memtable中没有待写入Key-Value数据、第二层文件的Key-Value数据与第一层文件的Key-Value数据键均不同,则控制LSM数据存储系统将磁盘的第一层文件标记为第二层文件;
其中,磁盘中键范围相同的文件为第一层文件和/或第二层文件,第二层文件的键范围与对应的memtable的键范围相同。


4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
将磁盘中的第二层文件中包含的键的个数达到预设个数的第二层文件分裂为包含的键的个数均为目标个数的多个第二层文件,分裂得到的每个第二层文件的键范围不重叠,所述预设个数为目标个数的整数倍;
对内存中与磁盘中第二层文件键范围相同的memtable进行对...

【专利技术属性】
技术研发人员:朱博帅
申请(专利权)人:北京奇艺世纪科技有限公司
类型:发明
国别省市:北京;11

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

1