System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 基于LSM数据结构的冷热数据分区存储方法技术_技高网

基于LSM数据结构的冷热数据分区存储方法技术

技术编号:42653270 阅读:8 留言:0更新日期:2024-09-06 01:45
本发明专利技术公开了一种基于LSM数据结构的冷热数据分区存储方法,属一种分布式数据库的数据存储方法,LSM数据结构包括内存区域与磁盘区域,内存区域中具有MemTable与Immutable MemTable,MemTable存储写入数据,且在数据达到设定大小后冻结为Immutable MemTable;磁盘区域包括多个SSTable,多个SSTable分布在多层Level中,多层Level在磁盘区域中按照从新到旧的顺序排列;磁盘区域还包括ColdLevel,ColdLevel存储数据库中的冷数据。通过将把冷热数据分区存储,从而可在热数据区SSTable中以Block为单位存储数据,使热数据存储的更加紧密,提高查询的有效数据量,以及Cache操作的命中率。

【技术实现步骤摘要】

本专利技术涉及一种分布式数据库的数据存储方法,更具体的说,本专利技术主要涉及一种基于lsm数据结构的冷热数据分区存储方法。


技术介绍

1、lsm tree(log-structured merge tree)是一个分层、有序、针对块存储设备特点而设计的数据存储结构。它的核心理论基础是磁盘的顺序写速度比随机写速度快非常多,即使是ssd,由于块擦除和垃圾回收的影响,顺序写速度比随机写速度也快很多。由从图1可知,lsm tree的数据分为两部分:内存部分和持久化到磁盘的部分。内存部分由一个memtable和一个或多个immutable memtable组成。磁盘部分由分布在多个level的sstable组成。level 级别越小(比如level 0)表示处于该level的sstable越新,level级别越大表示该level的sstable越旧。而在lsm-tree中所有key-value数据按照写入的顺序排列在lsm的各个level中,当一个查询发生时,从所有数据中查询出需要的数据,而在所有数据中有旧的mvcc数据、长时间不需要查询的数据等等,即大量的冷数据影响了查询的性能,因而有必要针对分布式数据库中数据的存储与查询方法做进一步的研究和改进。


技术实现思路

1、本专利技术的目的之一在于针对述不足,提供一种基于lsm数据结构的冷热数据分区存储方法,以期望解决现有技术中同类存储方法在查询发生时从所有数据中查询出需要的数据,大量的冷数据会影响查询的性能等技术问题。

2、为解决上述的技术问题,本专利技术采用以下技术方案:

3、本专利技术所提供的一种基于lsm数据结构的冷热数据分区存储方法,所述lsm数据结构包括内存区域与磁盘区域,所述内存区域中具有memtable与immutable memtable,所述memtable用于存储写入数据,且在数据达到设定大小后冻结为所述immutable memtable;所述磁盘区域包括多个sstable,且多个sstable分布在多层level中,所述多层level在磁盘区域中按照从新到旧的顺序排列;所述磁盘区域还包括coldlevel,所述coldlevel用于存储数据库中的冷数据,所述冷数据为系统根据注册冷数据检测机制判断后的非常用数据。

4、所述方法包括如下步骤:

5、步骤a、当immutable memtable的数量达到上限时,系统将immutable memtable中的数据持久化到磁盘区域,并生成sstable。

6、步骤b、进行compaction操作,将输入层的sstable与下一层的sstable合并,并在生成新sstable时,根据所述注册冷数据检测机制判断当前写入新sstable的数据是否包含冷数据,如判断结果为是,则标记当前sstable,然后在后续compaction操作中,优先将标记的sstable中的冷数据写入至coldlevel中的sstable。

7、步骤c、get查询指令在执行hotread查询模式时,依次查询memtable、immutablememtable以及多层level中sstable的数据。

8、作为优选,进一步的技术方案是:在上述方法的步骤b中,如当前输入层的下一层为磁盘区域中的最后一层level时,在生成新sstable时,根据所述注册冷数据检测机制,直接将当前compaction操作中的冷数据写入coldlevel中的sstable,其它数据写入最后一层level中的sstable。

9、更进一步的技术方案是:所述方法还包括如下步骤:所述get查询指令在执行completeread查询模式时,依次查询memtable、immutable memtable以及多层level与coldlevel中sstable的数据。

10、更进一步的技术方案是:所述方法中在硬盘区域执行查询指令时,以每层level为一个序列,进行堆排序后进行多路查询,然后再将查询结果进行排序。

11、与现有技术相比,本专利技术的有益效果之一是:通过将把冷热数据分区存储,从而可在热数据区sstable中以block为单位存储数据,使热数据存储的更加紧密,提高查询的有效数据量,以及cache操作的命中率;并且可选择的查询模式,在查询时使用hotread模式,可排除大量冷数据对查询的影响,减少查询的比较计算,提升查询的性能;仅在需要时使用completeread查询模式查询冷数据区(coldlevel)的数据,进而提升分布式数据库的性能。

本文档来自技高网...

【技术保护点】

1.一种基于LSM数据结构的冷热数据分区存储方法,所述LSM数据结构包括内存区域与磁盘区域,所述内存区域中具有MemTable与Immutable MemTable,所述MemTable用于存储写入数据,且在数据达到设定大小后冻结为所述Immutable MemTable;

2.根据权利要求1所述的基于LSM数据结构的冷热数据分区存储方法,其特征在于所述方法还包括如下步骤:当所述输入层的下一层为磁盘区域中的最后一层Level时,在生成新SSTable时,根据所述注册冷数据检测机制,直接将当前Compaction操作中的冷数据写入ColdLevel中的SSTable,其它数据写入最后一层Level中的SSTable。

3.根据权利要求1所述的基于LSM数据结构的冷热数据分区存储方法,其特征在于所述方法还包括如下步骤:所述Get查询指令在执行CompleteRead查询模式时,依次查询MemTable、Immutable Memtable以及多层Level与ColdLevel中SSTable的数据。

4.根据权利要求1所述的基于LSM数据结构的冷热数据分区存储方法,其特征在于:所述方法中在硬盘区域执行查询指令时,以每层Level为一个序列,进行堆排序后进行多路查询,然后再将查询结果进行排序。

...

【技术特征摘要】

1.一种基于lsm数据结构的冷热数据分区存储方法,所述lsm数据结构包括内存区域与磁盘区域,所述内存区域中具有memtable与immutable memtable,所述memtable用于存储写入数据,且在数据达到设定大小后冻结为所述immutable memtable;

2.根据权利要求1所述的基于lsm数据结构的冷热数据分区存储方法,其特征在于所述方法还包括如下步骤:当所述输入层的下一层为磁盘区域中的最后一层level时,在生成新sstable时,根据所述注册冷数据检测机制,直接将当前compaction操作中的冷数据写入coldlevel中的s...

【专利技术属性】
技术研发人员:李冬卫刘佳星于伟范振勇张学武新李建衡
申请(专利权)人:贵州易鲸捷信息技术有限公司
类型:发明
国别省市:

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

1