[发明专利]一种利用哈希减少写停顿的键值存储方法有效

专利信息
申请号: 202110854214.5 申请日: 2021-07-27
公开(公告)号: CN113553476B 公开(公告)日: 2023-05-26
发明(设计)人: 马振禹;陈珊珊;高隽;安文涛;陈思晔 申请(专利权)人: 南京邮电大学
主分类号: G06F16/901 分类号: G06F16/901;G06F16/903
代理公司: 苏州和氏璧知识产权代理事务所(普通合伙) 32390 代理人: 李晓星
地址: 210023 *** 国省代码: 江苏;32
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 利用 减少 停顿 键值 存储 方法
【权利要求书】:

1.一种利用哈希减少写停顿的键值存储方法,其特征在于:包括如下步骤1)LSM树存储:HSKV遵循HashKV的基础,使用KV分离,只在LSM树中存储键和元数据,用于索引KV对,同时将值存储在称为值存储的单独区域中,在KV分离之上,HSKV三个核心设计元素,实现高效的储值管理;

2)存储管理:Mem Segments(Write cache):我们将Mem Segments的每一列称为memsegment,将insert/update的KV对,利用哈希散列到对应的mem segment末尾,当memsegment大小达到阈值时,对其进行KV分离,将key与元数据单独保留成为Mem Table加入LSM-Tree,将整个mem segment直接添加到对应的段组中;

KV/KP缓存:与Mem segments类似,KV/KP缓存每一列称之为K segment,在其中我们缓存散列值相同的KV/KP,并且根据KV对的热度,动态的替换KV/KP缓存数据,以此实现加速查询;

Segment Table:记录main segment,log segment的指针以及垃圾回收标志位,用以后续的添加,以及判断该段是否正在进行垃圾回收,是否可以查询该段;

LSM-tree:与普通的LSM-tree操作相同,只是根据值大小,动态决定是否存储值;

Value store:Main segments长度固定,当Main segments满时,从Log segments扩展一段到表尾,并记录到segment table中;Log segments用来动态的分配给各个段,Colddata log存储冷数据,GC策略与WiscKey中的vLog类似;

对于每一个insert/update的KV对,将其散列到Mem segments的某一列中,并将其添加至该列表尾;当某一列大小达到阈值,我们将其取出进行KV分离,将Key以及元数据,布隆过滤器存入Mem Table中压入L0层,将mem segment的整列作为一个log segment加入对应的段组;如果对应的main segment为空,则优先加入main segment,否则申请一个新的logsegment加入该段并写入数据;并及时更新对应Group所拥有的log segment,我们将这种main segment与log segment组成的段称为Segment Table,这里改进了HashKV的SegmentTable管理策略。

2.根据权利要求1所述的一种利用哈希减少写停顿的键值存储方法,其特征在于,所述HSKV三个核心设计元素为:更改写缓存结构、加入KV/KP缓存机制和优化段表。

3.根据权利要求2所述的一种利用哈希减少写停顿的键值存储方法,其特征在于,所述更改写缓存结构:将Write cache改为Mem Segments可以优化写速度,原有的MemTable由于需要KV分离,导致需要每次写入时,对KV对依次进行分离并计算所属Main segment进行写入,导致无法顺序写入;在内存中将Write cache改为Mem Segments,Mem Segments的长度与main segment长度相同,HashKV默认100,且由100个mem segment(顺序表)构成;由于每个main segment大小为1MB,所以默认配置下Mem Segments在内存中占用100MB空间。

4.根据权利要求2所述的一种利用哈希减少写停顿的键值存储方法,其特征在于,所述加入KV/KP缓存机制:由于存在读放大,查询速度会大大降低,为了提升查询性能,在选择性KV分离的基础上,将比较热的KV对进行缓存,且根据其值的尺寸,选择缓存值还是指向值的指针,这样可以优化查询的速度,减少读停顿。

5.根据权利要求2所述的一种利用哈希减少写停顿的键值存储方法,其特征在于,所述优化段表:HashKV在GC时,会造成写停顿,在GC时,如果mem segment满,允许继续向main/log segment写入,这样就可以减少写停顿。

6.根据权利要求1所述的一种利用哈希减少写停顿的键值存储方法,其特征在于,所述键的查询算法为:Get(key)

def Get(key):

#查询memtable

value=query(key,memtable)

if value:

return value

#查询KV/KP缓存

value=query(key,cache)

if value:

return value

#查询LSM-Tree

type,value=query(key,LSM-Tree)#小尺寸KV存储在LSM-Tree中

if type==value:

return value

#LSM-Tree中存在则查询value store

elif type==exist:

value=query(key,segment table)

return value。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京邮电大学,未经南京邮电大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/202110854214.5/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top