当前位置: 首页 > 专利查询>华侨大学专利>正文

一种基于多树转换机制的键值存储方法技术

技术编号:34821000 阅读:15 留言:0更新日期:2022-09-03 20:32
本发明专利技术提出一种基于多树转换机制的键值存储方法,具体包括:对于写入的键值数据,首先保存至写入跳表,当大小达到限制后,转换为只读跳表插入至内存设备中的B+树;当B+树大小达到一定限制时,根据热度策略遍历键值数据,将热度低的键值数据持久化至外存设备中的冷树0层;若冷树0层中的键值数据文件数量达到大小限制,则触发0层分区操作;当B+树中的键值数据执行持久化操作时,0层分区只接收符合设定范围的键值数据;若冷树中特定范围内的键值数据达到一定热度时,则转移至外存设备的热树中;同时热树中低热度的键值数据将转移至冷树中。本发明专利技术提供的方法使用热度策略减少读放大的同时,保证写入性能,实现键值存储系统性能的整体提升。整体提升。整体提升。

【技术实现步骤摘要】
一种基于多树转换机制的键值存储方法


[0001]本专利技术涉及计算机存储领域,特别是指一种基于多树转换机制的键值存储方法。

技术介绍

[0002]随着大数据时代的到来,数据储量不断增加,数据特点发生了明显变化,非结构化数据占比已达到了数据总量的80%。在这样的数据变化趋势下,键值存储被广泛应用,它对数据结构没有明确限制,具有很高的可扩展性。目前已经有一些优秀的键值存储产品出现且被广泛应用,如Chrome浏览器使用的Leveldb,facebook基于Leveldb进一步提出改进的Rocksdb,Twitter使用的Redis和Memcached等。目前的键值存储所使用的数据结构主要有哈希结构、B树以及日志结构合并树(LSM树),这三种结构分别具有不同的优缺点。
[0003]由于基于LSM树键值存储系统具有良好的写性能,并且支持范围扫描,因此出现了许多相关产品。但由于LSM树结构固有的结构特点(外存中的层级结构),该结构的维护和使用会对键值存储系性能造成消极影响。以Leveldb为例,首先,Leveldb的写放大的来源主要是层间合并操作中的数据重写。例如,Leveldb中每一层的大小时上一层的10倍,将i层中的一个文件合并到i+1层时,在最坏的情况下,需要读取i+1层的10个文件,合并排序后再将这些数据写回i+1层,写放大倍数高达10,在这种情况下,将一个SST文件从L0层移动到L6层,写放大最高会达到50。其次,Leveldb的读放大的来源主要有两个方面。一方面,在查找一个键值对时,Leveldb可能需要在多个层级中进行查找,在最坏情况下,需要在L0中查找8个文件,在L1

L6层中每层需要查找一个文件,一共需要查找14个文件;另一方面,在一个SST文件中查找一个键值对时,Leveldb需要读取该文件的多个元数据块,实际读取的数据包括索引块、bloom过滤器块和数据块。例如,当查找1KB的键值对时,Leveldb需要读取16KB的索引块,4KB的过滤器块和4KB的数据块,共24KB的数据。在最差的情况下,需要读取14个SST文件,所以读放大会高达336。

技术实现思路

[0004]本专利技术的主要目的在于克服现有技术中的上述缺陷,提出一种基于多树转换机制的键值存储方法,使用热度策略减少读放大的同时,保证写入性能,实现键值存储系统性能的整体提升。
[0005]本专利技术采用如下技术方案:
[0006]一种基于多树转换机制的键值存储方法,包括:
[0007]对于写入的键值数据,首先保存至写入跳表中,当大小达到限制后,转换为只读跳表插入至内存设备中的B+树;当B+树的大小达到一定限制时,遍历键值数据;
[0008]根据热度策略进行判断,将热度低的键值数据持久化至外存设备中的冷树的0层,热度高的键值数据则继续留存在B+树中;
[0009]若冷树的0层中的键值数据文件数量达到大小限制,则触发0层分区操作,0层分区操作依据层中现有的键值数据范围进行均分,若0层中某一分区的键值数据文件数量达到
大小限制,则再次触发分区操作;
[0010]当B+树中热度较低的键值数据执行持久化操作时,0层分区只接收符合设定范围的键值数据;若冷树中范围内的键值数据经热度策略判断后达到一定热度时,则将这一范围内的键值数据转移至外存设备的热树中,并使用内存设备中的B+树索引热树中的键值数据;
[0011]当热树的大小达到一定限制时,对键值数据根据热度策略进行判断,将一个或多个低热度范围内的键值数据转移至冷树分区中,并从B+树中删除这些数据的索引。
[0012]具体地,所述热度策略具体为:
[0013]将只读跳表中的键值数据插入至B+树结构中时,保存插入时间字段,用于判断键值数据的热度情况;
[0014]根据节点中记录的时间字段判断该键值数据是否需要保留在B+树中,若不需保留,则持久化至外存设备的冷树分区内;
[0015]对于外存设备中的键值数据,使用全局热度表来记录键值数据的操作数,当执行冷树中的合并操作时,若一个位于冷树内的范围单位的操作数达到阈值,则将此范围单位内的所有键值数据转移至热树中;
[0016]当热树达到一定大小限制时,使用全局热度表对热树内的键值数据执行热度判断,根据键值数据的范围热度情况,判断该范围内的键值数据是否需要保留热树中,若不需保留,则将热树中这些范围内的键值数据转移至冷树中。
[0017]具体地,还包括数据读取步骤,具体为:
[0018]S11:首先在缓存区中查找目标数据,若找到,到步骤S12;若未找到,到步骤S13;
[0019]S12:系统完成用户的读取请求,向用户发送读取到的目标数据;
[0020]S13:在B+树中查找目标键及值类型,若找到且值类型为实际值,到步骤S12,若找到且值类型为地址信息,到步骤S14;若未找到,到步骤S15;
[0021]S14:在外存设备的热树中根据上步得到的地址读取目标数据,到步骤S12;
[0022]S15:在外存设备的冷树中自顶向下按层查找目标数据,若找到,到步骤S12;若未找到,到步骤S16;
[0023]S16:系统完成用户的读取请求,向用户发送结果,未找到目标数据。
[0024]具体地,还包括数据写入步骤,具体为:
[0025]S21:首先写入跳表结构中,如果达到大小限制,到步骤S22;
[0026]S22:将此跳表的转换为只读跳表,并创建新的写入跳表结构用于数据写入;
[0027]S23:若B+树大小未达到限制,到步骤S25;若达到限制,到步骤S24;
[0028]S24:遍历B+树中的键值数据,将热度较低的键值数据持久化至外存设备的冷树中,到步骤S25;
[0029]S25:将只读跳表结构内的键值数据与当前时间保存至B+树结构中;
[0030]S26:系统完成用户的写入请求,向用户发送写入成功的信息。
[0031]具体地,应用的存储结构具体为:
[0032]写入跳表、只读跳表、B+树以及磁盘中的冷树结构与热树结构;其中所述冷树结构为3层日志结构合并树,包括0层日志结构、1层日志结构、2层日志结构,且0层日志结构存在分区结构;热树结构为单层日志结构合并树。
[0033]由上述对本专利技术的描述可知,与现有技术相比,本专利技术具有如下有益效果:
[0034](1)本专利技术提出一种基于多树转换机制的键值存储方法,具体包括:对于写入的键值数据,首先保存至写入跳表中,当大小达到限制后,转换为只读跳表插入至内存设备中的B+树;当B+树的大小达到一定限制时,遍历键值数据;根据热度策略进行判断,将热度低的键值数据持久化至外存设备中的冷树的0层,热度高的键值数据则继续留存在B+树中;若冷树的0层中的键值数据文件数量达到大小限制,则触发0层分区操作,0层分区操作依据层中现有的键值数据范围进行均分,若0层中某一分区的键值数据文件数量达到大小限制,则再次触发分区操作;本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于多树转换机制的键值存储方法,其特征在于,包括:对于写入的键值数据,首先保存至写入跳表中,当大小达到限制后,转换为只读跳表插入至内存设备中的B+树;当B+树的大小达到一定限制时,遍历键值数据;根据热度策略进行判断,将热度低的键值数据持久化至外存设备中的冷树的0层,热度高的键值数据则继续留存在B+树中;若冷树的0层中的键值数据文件数量达到大小限制,则触发0层分区操作,0层分区操作依据层中现有的键值数据范围进行均分,若0层中某一分区的键值数据文件数量达到大小限制,则再次触发分区操作;当B+树中热度较低的键值数据执行持久化操作时,0层分区只接收符合设定范围的键值数据;若冷树中范围内的键值数据经热度策略判断后达到一定热度时,则将这一范围内的键值数据转移至外存设备的热树中,并使用内存设备中的B+树索引热树中的键值数据;当热树的大小达到一定限制时,对键值数据根据热度策略进行判断,将一个或多个低热度范围内的键值数据转移至冷树分区中,并从B+树中删除这些数据的索引。2.根据权利要求1所述的一种基于多树转换机制的键值存储方法,其特征在于,所述热度策略具体为:将只读跳表中的键值数据插入至B+树结构中时,保存插入时间字段,用于判断键值数据的热度情况;根据节点中记录的时间字段判断该键值数据是否需要保留在B+树中,若不需保留,则持久化至外存设备的冷树分区内;对于外存设备中的键值数据,使用全局热度表来记录键值数据的操作数,当执行冷树中的合并操作时,若一个位于冷树内的范围单位的操作数达到阈值,则将此范围单位内的所有键值数据转移至热树中;当热树达到一定大小限制时,使用全局热度表对热树内的键值数据执行热度判断,根据键值数据的范围热度情况,判断该范围内的键值数据是否需要保留热树中,若不需保留,则将热树...

【专利技术属性】
技术研发人员:潘玉彪林鑫伟张惠臻
申请(专利权)人:华侨大学
类型:发明
国别省市:

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

1