一种全局优化的键值存储方法及装置制造方法及图纸

技术编号:36328135 阅读:9 留言:0更新日期:2023-01-14 17:36
本发明专利技术公开一种全局优化的键值存储方法及装置,利用分为记录层和非记录层的数据存储结构GHLSM存储键值对;使用核心数据结构GHmap记录记录层中最新版本的键值对所在的层;核心数据结构GHmap通过在compaction时帮助键值对判断是否已过时需要自我毁灭、及在查询时帮助索引最新版键值对所在的层,从而避免无用数据继续参与后续compaction过程所带来的额外IO开销。本发明专利技术可在机械硬盘、固态硬盘等硬件环境下均取得良好效果,有效地提升读、写、范围查询等方面的性能。询等方面的性能。询等方面的性能。

【技术实现步骤摘要】
一种全局优化的键值存储方法及装置


[0001]本专利技术属于计算机软件
,尤其涉及一种全局优化的键值存储方法及装置。

技术介绍

[0002]为了满足交互式场景下低延迟写入和更新的需求,日志合并树(LSM

Tree)(O'NEIL P,CHENG E,GAWLICK D,et al.1996.The log

structured merge

tree(LSM

tree).Acta Informatica[J],33:351

385.)采用延迟更新(out of place update)机制进行数据的更新,这种方式可以充分利用磁盘顺序写大于随机写的优势,从而提供了低延迟的写性能。它采用Compaction机制实现对旧版本数据的垃圾回收以及对键值对的排序,支撑了以点查询和范围查询为主的大数据分析操作。当我们向以LSM

Tree为主要数据结构的键值存储系统,如RocksDB,写入数据时,数据会先写入到内存的memtable中,当memtable大小达到阈值,会变为immutable,不再被修改。然后immutable memtable会写入到磁盘的L0层,产生SSTable文件。由于这些immutable memtable之间可能会有重复数据,所以L0层的SSTable文件也会存在重复数据,它们要通过compaction过程进行合并排序,去掉重复数据,并有序存放到下一层,即L1层。此后当磁盘上的每一层大小达到阈值时,都会触发compaction,将数据读出、合并排序、写入,以达到垃圾回收和逐层下移的目的。
[0003]当数据频繁更新时,基于日志合并树(LSM

Tree)的键值存储系统如RocksDB会存在如下三个方面的问题:(1)数据冗余,磁盘空间浪费。out of place update机制只会插入新版本的键值对到系统中,并不会立即对旧版本的键值对进行删除或替换,这就会导致系统存在同一个键(key)的多个版本的值(value)。当系统存在多个版本的数据时,查询只需要最新版本的数据,旧版本的数据不再被用户所需,但它们仍会在磁盘上存在一段时间,这就导致了磁盘空间的浪费。(2)频繁compaction,写放大问题严重。Compaction操作需要将LSM

Tree相邻两层的多个SSTable文件的键值对读出到内存,合并、排序后写入到下一层,这其中不乏旧版本的键值对。如果此次compaction过程中,旧版本的键值对没有与最新版本键值对相遇,那么尽管这些旧版本的键值对在之后的读或者范围查询时都不会被用到,它们仍然会随compaction过程不断地读、处理、写,造成无用的磁盘IO。(3)自顶向下逐层搜索,查询路径长。查询时,由于键值对会随着compaction过程逐层下移,新版本键值对在上层,旧版本键值对在下层,所以我们必须自顶向下逐层搜索。而每一层都有可能存在候选SSTable文件,对候选SSTable文件的访问会带来额外的磁盘访问,降低读性能。
[0004]为解决上述问题,技术人员提出了多种方案,包括:
[0005]PebblesDB(RAJU P 2018.PebblesDB:building key

value stores using fragmented log

structured merge trees[M].)借鉴跳表的思想,引入新的索引来对LSM

Tree每一层的SSTable文件进一步分组,弱化全局有序的约束,仅保证组间有序,组内不再进行排序和去重,从而降低了compaction的开销,降低了写放大。但组内键值对无序且SSTable文件之间存在重复数据会在一定程度上牺牲读性能,增加查询开销。
[0006]Wisckey(LU L,PILLAI T S,GOPALAKRISHNAN H,et al.2017.Wisckey:Separating keys from values in ssd

conscious storage.ACM Transactions on Storage(TOS)[J],13:1

28.)将键值分离存储,使用LSM

Tree组织键(key)的存储,使用日志来组织值(value)的存储,极大的降低了LSM

Tree的深度,提高了写性能,并使用SSD的高并行的特点键值分离对查询性能的影响。但是这种机制并不支持高效的范围查询,范围查询时需要先在LSM

Tree中迭代式的查找,后逐个去日志中查找对应的值,效率极低。同时,该设计仅支持SSD上运行,在硬盘上不能提供高性能的查询。
[0007]SlimDB(REN K,ZHENG Q,ARULRAJ J,et al.2017.SlimDB:A space

efficient key

value storage engine for semi

sorted data.10:2037

2048.)通过改变SSTable文件中索引的存放方式,减少文件中数据和索引的空间占用,从而减少了系统的大小,缓解了空间放大的问题。但是这种优化方式并没有减少系统中的键值对的数量,系统中仍然会存在很多的无用数据,对于缓解写放大、读放大贡献较少。
[0008]Flatstore(CHEN Y,LU Y,YANG F,et al.2020.FlatStore:An Efficient Log

Structured Key

Value Storage Engine for Persistent Memory[M],Proceedings of the Twenty

Fifth International Conference on Architectural Support for Programming Languages and Operating Systems.Association for Computing Machinery;Lausanne,Switzerland:1077

1091.)使用了新型硬件NVM代替硬盘,使用纯日志结构完成数据的存储,同时利用CPU多核的特点划分主从,实现了一个高吞吐、低延迟、多核扩展的存储系统。但是NVM作为一个新型硬件设备,其成本较高,没有得到广泛普及;且其容量还不足以支撑太庞大的数据体量,所以实用性较低。

技术实现思路

[0009]本专利技术的目的在于提出一种全局优化的键值存储方法及装置,构建一个可以在更新频繁的场景下,在读、写、范围查询三方面同时提升系统性能的键值存储系统GHStore。GHStore可以在写入或更新数据时本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种全局优化的键值存储方法,其步骤包括:1)将键值对写入数据存储结构GHLSM的L0层,并向核心数据结构GHmap中插入一条新记录或更新原记录,其中,数据存储结构GHLSM设有N层,包括P个位于内存的记录层L
p
,Q

P个位于磁盘的记录层L
q
及N

Q个位于磁盘的非记录层L
t
,0≤p≤P

1,P≤q≤N

Q

1,N

Q≤t≤N

1,Q为记录层L
p
与记录层L
q
的总数量,核心数据结构GHmap使用哈希表进行存储,哈希表的键对应键值对的键,value对应键值对在数据存储结构GHLSM所在的层;2)当L0层容量达到阈值时,将键值对的数据结构转变为不可写,且将L0层标记为L1层,并更新核心数据结构GHmap中的相关记录,生成新的数据结构构建记录层L0;3)当L
j
层容量达到阈值时,基于核心数据结构GHmap,判断L
j
层中的键值对是否为最新键值对,其中1≤j≤P

1:若是,则写入L
j+1
层,并更新核心数据结构GHmap;若否,则抛弃;4)当L
i
层的容量超过相应阈值时,将L
i
层与L
i+1
层中的部分键值对作为待处理键值对,读入内存进行合并排序,然后结合核心数据结构GHmap,计算最新版本键值对,其中P≤i≤N

2;5)将最新版本键值对写入L
i+1
层,并删除待处理键值对。2.如权利要求1所述的方法,其特征在于,数据存储结构GHLSM的数据结构包括:LSM

Tree;记录层L
p
中的数据组织方法包括:使用跳表。3.如权利要求1所述的方法,其特征在于,核心数据结构GHmap通过以下策略定位键值对所在的层:1)利用GHmap的第一个哈希函数Hash1,计算key相应的子表编号2)利用GHmap的第二个哈希函数Hash2以及key所在的子表编号,计算key在GHmap中的记录。3)根据记录定位新键值对所在的层。4.如权利要求1所述的方法,其特征在于,通过以下策略计算最新版本键值对:1)当L
i
层与L
i+1
层都属于记录层L
q
时,请求核心数据结构GHmap获取合并排序后数据的键的最新版本所在层:若为合并排序后数据所在的层,则得到最新版本键值对;2)当L
i
层与L
i+1
层都属于非记录层L
t
时,请求核心数据结构GHmap获取合并排序后数据的键的相关记录:若不存在相关记录,则得到最新版本键值对。5.如权利要求1所述的方法,其特征在于,记录层L
q
与非记录层...

【专利技术属性】
技术研发人员:岳银亮王伟平李骄扬
申请(专利权)人:中国科学院信息工程研究所
类型:发明
国别省市:

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

1