具有散列的键值存储设备制造技术

技术编号:36666549 阅读:30 留言:0更新日期:2023-02-21 22:42
一种用于存储数据的系统和方法。在一些实施例中,该方法包括:由包括用于将键映射到值地址的散列的持久键值存储设备接收第一指令,该第一指令是用于访问第一键值集合中的第一键的指令;以及在持久键值存储设备的指令日志中记录第一指令。中记录第一指令。中记录第一指令。

【技术实现步骤摘要】
具有散列的键值存储设备
[0001]相关申请的交叉引用
[0002]本申请要求于2021年8月18日提交的题为“NEAR

LINE PERFECT HASH FUNCTION COMPUTATION FOR COLLISION FREE INDEXING IN KV STORES”的美国临时申请No.63/234,613和2021年10月20日提交的题为“KEY VALUE STORAGE DEVICE WITH HASHING”的美国申请No.17/506,647的优先权和权益,其全部内容通过引用并入本文。


[0003]根据本公开的实施例的一个或多个方面涉及持久存储,并且更具体地,涉及用于具有完美散列的键值存储设备的系统和方法。

技术介绍

[0004]键值(key

value,KV)存储设备具有各种数据存储用途,例如,在服务器系统中。在这种存储设备中,数据可以被存储为值,每个值由各自的键标识,并且使用KV存储设备的主机可以例如发送包括键的读取请求,该键标识要从存储设备读取的值。

技术实现思路

[0005]在一些实施例中,KV持久存储设备(例如,KV SSD)使用动态完美散列来保证最多单个页读取来查找键。在一些实施例中,在对完美散列的间断更新之间采用局部性转换器、局部性转换器上的布隆过滤器和尾指针表。
[0006]在更新之间,(例如,通过添加键或删除键)影响键集的指令可以被记录在局部性转换器中,并且接收到的指令可以(在首先检查布隆过滤器之后)检查局部性转换器,以确保从主键值存储的任何读取有效。当局部性转换器已经聚集了足够数量的更新时,可以以延迟的方式处理键更新(例如,放置(Put)或删除(Delete))。
[0007]根据本公开的实施例,提供了一种方法,包括:由包括用于将键映射到值地址的散列的持久键值存储设备接收第一指令,该第一指令是用于访问第一键值集合中的第一键的指令;以及在持久键值存储设备的指令日志中记录第一指令。
[0008]在一些实施例中,其中,该散列是被配置为避免冲突的散列函数。
[0009]在一些实施例中,在指令日志中记录第一指令包括在指令日志中的第一位置处记录第一指令,该方法还包括:接收第二指令,该第二指令是用于访问第一键值集合中的第二值的指令;以及在指令日志中的第二位置处与指向第一位置的指针一起记录第二指令。
[0010]在一些实施例中,在指令日志中记录第一指令包括在尾指针表中存储指向与第一键值集合相对应的地方(location)中的第一位置(position)的指针。
[0011]在一些实施例中,在指令日志中的第二位置处记录第二指令包括在尾指针表中存储指向与第一键值集合相对应的地方中的第二位置的指针。
[0012]在一些实施例中,第一指令是删除指令,并且该方法还包括将第一键添加到黑名单中。
[0013]在一些实施例中,该方法还包括:由持久键值存储设备接收第二指令,该第二指令是用于访问第一键的指令;确定第一键在黑名单中;以及报告第一键的不存在。
[0014]在一些实施例中,在指令日志中记录第一指令还包括将第一键添加到布隆过滤器。
[0015]在一些实施例中,该方法还包括:由持久键值存储设备接收第二指令,该第二指令是用于访问第一键的指令;确定第一键存在于指令日志中;以及响应于确定第一键存在于指令日志中,访问与第一键相关联的值,该值位于第一地址,该第一地址与第一键一起存储在指令日志中。
[0016]在一些实施例中,确定第一键存在于指令日志中包括:基于布隆过滤器确定第一键可以存在于指令日志中。
[0017]根据本公开的实施例,提供了一种持久键值存储设备,包括:处理电路;以及持久存储介质,该存储设备包括用于将键映射到值地址的散列,该散列包括指令日志,该处理电路被配置为:接收第一指令,该第一指令是用于访问第一键值集合中的第一键的指令;以及在指令日志中记录第一指令。
[0018]在一些实施例中,该散列是被配置为避免冲突的散列函数。
[0019]在一些实施例中:在指令日志中记录第一指令包括在指令日志中的第一位置处记录第一指令,并且该处理电路还被配置为:接收第二指令,该第二指令是用于访问第一键值集合中的第二值的指令;以及在指令日志中的第二位置处与指向第一位置的指针一起记录第二指令。
[0020]在一些实施例中,在指令日志中记录第一指令包括在尾指针表中存储指向与第一键值集合相对应的地方中的第一位置的指针。
[0021]在一些实施例中,在指令日志中的第二位置处记录第二指令包括在尾指针表中存储指向与第一键值集合相对应的地方中的第二位置的指针。
[0022]在一些实施例中,第一指令是删除指令,并且该处理电路还被配置为将第一键添加到黑名单。
[0023]在一些实施例中,该处理电路还被配置为:接收第二指令,该第二指令是用于访问第一键的指令;确定第一键在黑名单中;以及报告第一键的不存在。
[0024]在一些实施例中,在指令日志中记录第一指令还包括将第一键添加到布隆过滤器。
[0025]在一些实施例中,该处理电路还被配置为:接收第二指令,该第二指令是用于访问第一键的指令;确定第一键存在于指令日志中;以及响应于确定第一键存在于指令日志中,访问与第一键相关联的值,该值位于第一地址,该第一地址与第一键一起存储在指令日志中。
[0026]根据本公开的实施例,提供了一种持久键值存储设备,包括:用于处理的部件;以及持久存储介质,该存储设备包括用于将键映射到值地址的散列,该散列包括指令日志,该用于处理的部件被配置为:接收第一指令,该第一指令是用于访问第一键值集合中的第一键的指令;以及在指令日志中记录第一指令。
附图说明
[0027]附图旨在提供对特定实施例的图示,并且未具体示出的其他实施例不被排除在本公开的范围之外。参考说明书、权利要求书和附图,将会认识和理解本公开的这些和其他特征和优点,其中:
[0028]图1A是根据本公开的实施例的存储设备的框图;
[0029]图1B是根据本公开的实施例的散列函数和位图区段(bitmap section)的示意图;
[0030]图2是根据本公开的实施例的用于操作KV持久存储设备的方法的流程图;
[0031]图3是根据本公开实施例的用于更新完美散列的方法的流程图;
[0032]图4是根据本公开的实施例的用于处理访问第一值的指令的方法的流程图;
[0033]图5是根据本公开的实施例的备份文件集和对应的位图的示意图;
[0034]图6是根据本公开的实施例的用于处理备份装置(backup appliance)中孤立数据的流程图;
[0035]图7是根据本公开的实施例的主机和存储设备的框图;
[0036]图8是根据本公开的实施例的用于处理指令的方法的流程图;和
[0037]图9是根据本公开的实施例的用于处理指令的另一种本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种持久键值存储设备的方法,包括:由包括用于将键映射到值地址的散列的持久键值存储设备接收第一指令,所述第一指令是用于访问第一键值集合中的第一键的指令;以及在持久键值存储设备的指令日志中记录第一指令。2.根据权利要求1所述的方法,其中,所述散列是被配置为避免冲突的散列函数。3.根据权利要求1所述的方法,其中,在指令日志中记录第一指令包括在指令日志中的第一位置处记录第一指令,所述方法还包括:接收第二指令,所述第二指令是用于访问第一键值集合中的第二值的指令;以及在指令日志中的第二位置处与指向第一位置的指针一起记录第二指令。4.根据权利要求3所述的方法,其中,在指令日志中记录第一指令包括在尾指针表中存储指向与第一键值集合相对应的地方中的第一位置的指针。5.根据权利要求4所述的方法,其中,在指令日志中的第二位置处记录第二指令包括在尾指针表中存储指向与第一键值集合相对应的地方中的第二位置的指针。6.根据权利要求1所述的方法,其中,所述第一指令是删除指令,并且所述方法还包括将第一键添加到黑名单中。7.根据权利要求6所述的方法,还包括:由持久键值存储设备接收第三指令,所述第三指令是用于访问第一键的指令;确定第一键在黑名单中;以及报告第一键的不存在。8.根据权利要求1所述的方法,其中,在指令日志中记录第一指令还包括将第一键添加到布隆过滤器。9.根据权利要求8所述的方法,还包括:由持久键值存储设备接收第三指令,所述第三指令是用于访问第一键的指令;确定第一键存在于指令日志中;以及响应于确定第一键存在于指令日志中,访问与第一键相关联的值,所述值位于第一地址,所述第一地址与第一键一起存储在指令日志中。10.根据权利要求9所述的方法,其中,确定第一键存在于指令日志中包括:基于布隆过滤器确定第一键存在于指令日志中。11.一种持久键值存储设备,包括:处理电路;以及持久存储介质,所述存储设备包括用于将键映射到值地址的散列,所述散列包括指令日志,所述处理电路被配置为:接收第一指令,所述第一指令是用于访问...

【专利技术属性】
技术研发人员:KS帕特瓦尔丹N拉玛克里希南
申请(专利权)人:三星电子株式会社
类型:发明
国别省市:

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

1