用于具有计算存储设备的跨层键-值存储库的系统和方法技术方案

技术编号:39133384 阅读:8 留言:0更新日期:2023-10-23 14:51
提供了一种数据存储的方法,该方法包括在键

【技术实现步骤摘要】
用于具有计算存储设备的跨层键

值存储库的系统和方法
[0001]相关申请的交叉引用
[0002]本申请要求于2022年4月14日提交的题为

具有计算存储设备的跨层键

值存储库

的第63/331,032序列号的美国临时申请的优先权和权益,其全部内容通过引用并入本文。


[0003]根据本公开的实施例的一个或多个方面涉及用于数据存储的系统和方法。

技术介绍

[0004]本
技术介绍
部分旨在仅提供上下文,并且本部分中的任何实施例或构思的公开并不构成对所述实施例或构思是现有技术的承认。
[0005]在计算机存储领域中,键

值存储库(store)可以在包括主机(例如,主机计算机)和存储设备(例如,包括用于存储数据的存储介质的设备)的存储系统(例如,系统)上实现。系统可以将数据节点存储在存储设备的存储器(例如,非易失性存储器)处。数据节点可以由系统的用户访问。系统可以基于来自用户的请求在数据节点处执行各种操作。系统可以识别数据节点的数据节点位置和数据节点中的键

值位置,基于键

值对来对其执行操作。例如,系统可以处理与键相关联的请求,以(i)搜索并找到对应于键的值(例如,数据对象)的位置,以及(ii)相对于该值执行与请求相关联的操作。
[0006]因此,需要一种用于有效地处理关于键

值存储库的请求的方法、设备和系统。

技术实现思路

>[0007]本公开的实施例的各方面涉及计算机存储系统,并且提供对键

值存储库的改进。
[0008]根据本公开的一些实施例,提供一种数据存储的方法,所述方法包括在键

值存储库的主机处接收访问存储在键

值存储库的存储设备上的数据节点的请求,在主机上的主机高速缓存中定位与数据节点相对应的地址,以及确定数据节点在存储设备上的内核高速缓存中。
[0009]存储对应于数据节点的元数据的主机高速缓存的条目的偏移可以与存储数据节点的内核高速缓存的条目的偏移相同。
[0010]所述方法还可以包括:由主机在主机上的搜索层中定位地址,引起内核调用以用于将处理请求的控制从主机转移到存储设备的处理电路,由处理电路处理数据节点上的数据,将数据节点写入内核高速缓存作为更新的数据节点,以及由主机引起更新的数据节点从内核高速缓存到存储设备的存贮器(storage)的对等写入。
[0011]搜索层可以包括树结构,存储设备上的数据层包括数据节点,数据节点对应于与树结构相对应的叶节点的双链表内的叶节点,并且在搜索层中定位地址可以包括在树结构的内部节点中查找部分键。
[0012]该方法还可以包括确定数据节点中的可用空间量小于用于容纳与请求相对应的
键的空间量,以及更新数据节点的元数据以指向扩展节点,数据节点的元数据可以指示第一版本号,并且扩展节点的元数据可以指示第一版本号。
[0013]该方法还可以包括由板块分配器(slab allocator)将扩展节点分配给来自不同大小的数据页的池的数据节点。
[0014]该方法还可以包括更新扩展节点,更新数据节点的元数据以指示第二版本号,更新扩展节点的元数据以指示第二版本号,其中,第二版本号将数据节点标识为更新的数据节点,并且将扩展节点标识为更新的扩展节点;以及更新所述更新的数据节点的元数据以指向更新的扩展节点。
[0015]该方法还可以包括以非原地(out

of

place)的方式将更新的扩展节点写入存储设备的存贮器,以及以原地(in

place)的方式将更新的数据节点写入存贮器。
[0016]所述方法还可以包括由主机获取数据节点上的读取锁,或由主机获取数据节点上的写入锁。
[0017]根据本公开的其他实施例,提供一种用于数据存储的系统,包括主机和存储设备,其中,主机被配置为接收访问存储在存储设备上的数据节点的请求,在主机上的主机高速缓存中定位与数据节点相对应的地址,并且确定数据节点在存储设备上的内核高速缓存中。
[0018]存储对应于数据节点的元数据的主机高速缓存的条目的偏移可以与存储数据节点的内核高速缓存的条目的偏移相同。
[0019]主机可以被配置为在主机上的搜索层中定位地址,确定数据节点在内核高速缓存中,引起内核调用以用于将处理请求的控制从主机转移到存储设备的处理电路,以及引起更新的数据节点从内核高速缓存到存储设备的存贮器的对等写入,并且存储设备的处理电路可以被配置为处理数据节点上的数据,并且将数据节点写入内核高速缓存作为更新的数据节点。
[0020]搜索层可以包括树结构,存储设备上的数据层可以包括数据节点,数据节点可以对应于与树结构相对应的叶节点的双链表内的叶节点,并且主机可以被配置为基于在树结构的内部节点中定位部分键来搜索地址。
[0021]该系统可以被配置为确定数据节点中的可用空间量小于用于容纳与请求相对应的键的空间量,并且更新数据节点的元数据以指向扩展节点,数据节点的元数据可以指示第一版本号,并且扩展节点的元数据可以指示第一版本号。
[0022]该系统可以被配置为更新扩展节点,更新数据节点的元数据以指示第二版本号,更新扩展节点的元数据以指示第二版本号,第二版本号可以将数据节点标识为更新的数据节点,并且可以将扩展节点标识为更新的扩展节点,并且更新所述更新的数据节点的元数据以指向更新的扩展节点。
[0023]根据本公开的其他实施例,提供一种存储设备,包括处理电路、持久性存储器和链接到处理电路和持久性存储器的公共存储器区域,其中处理电路被配置为通过从公共存储器区域上的内核高速缓存的条目读取数据节点来处理访问存储在存储设备上的所述数据节点的请求。
[0024]处理电路可以被配置为通过对数据节点执行数据操作来处理请求,并且将数据节点写入内核高速缓存作为更新的数据节点。
[0025]处理电路可以被配置为更新指向数据节点的扩展节点,扩展节点和数据节点可以指示第一版本号,更新数据节点的元数据以指示第二版本号,更新扩展节点的元数据以指示第二版本号,第二版本号可以将数据节点标识为更新的数据节点,并且可以将扩展节点标识为更新的扩展节点,并且更新所述更新的数据节点的元数据以指向更新的扩展节点。
[0026]处理电路可以被配置为以原地的方式将更新的扩展节点写入存储设备的存贮器。
[0027]处理电路可以被配置为以原地的方式将更新的数据节点写入存储设备的存贮器。
附图说明
[0028]参考以下附图描述本公开的非限制性和非穷举性实施例,其中除非另有说明,否则相同的附图标记在各个视图中指代相同的部分。
[0029]图1是描绘根据本公开的一些实施例的包括搜索层和数据层的数据存储系统的系统图;
[0030]图2是描绘根据本公开的一些实施例的本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种数据存储的方法,所述方法包括:在键

值存储库的主机处接收访问存储在键

值存储库的存储设备上的数据节点的请求;在主机上的主机高速缓存中定位与数据节点相对应的地址;以及确定数据节点在存储设备上的内核高速缓存中。2.根据权利要求1所述的方法,其中,存储对应于数据节点的元数据的主机高速缓存的条目的偏移与存储所述数据节点的内核高速缓存的条目的偏移相同。3.根据权利要求1所述的方法,还包括:由主机在主机上的搜索层中定位地址;引起内核调用以用于将处理请求的控制从主机转移到存储设备的处理电路;由处理电路处理数据节点上的数据;将数据节点写入内核高速缓存作为更新的数据节点;以及由主机引起更新的数据节点从内核高速缓存到存储设备的存贮器的对等写入。4.根据权利要求3所述的方法,其中:搜索层包括树结构;存储设备上的数据层包括数据节点;数据节点对应于叶节点的双链表内的叶节点,叶节点与树结构相对应;以及在搜索层中定位地址包括在树结构的内部节点中定位部分键。5.根据权利要求1所述的方法,还包括:确定数据节点中的可用空间量小于用于容纳与请求相对应的键的空间量;以及更新数据节点的元数据以指向扩展节点,数据节点的元数据指示第一版本号,并且扩展节点的元数据指示第一版本号。6.根据权利要求5所述的方法,还包括由板块分配器将扩展节点分配给来自不同大小的数据页的池的数据节点。7.根据权利要求5所述的方法,还包括:更新扩展节点;更新数据节点的元数据以指示第二版本号;更新扩展节点的元数据以指示第二版本号,第二版本号将数据节点标识为更新的数据节点,并且将所述扩展节点标识为更新的扩展节点;以及更新所述更新的数据节点的元数据以指向更新的扩展节点。8.根据权利要求7所述的方法,还包括:以非原地的方式将更新的扩展节点写入存储设备的存贮器;以及以原地的方式将更新的数据节点写入存贮器。9.根据权利要求1所述的方法,还包括:由主机获取数据节点上的读取锁;或由主机获取数据节点上的写入锁。10.一种用于数据存储的系统,包括:主机;以及存储设备,
其中,主机被配置为:接收访问存储在存储设备上的数据节点的请求;在主机上的主机高速缓存中定位与数据节点相对应的地址;以及确定数据节点在存储设备上的内核高速缓存中。11.根据权利要求10所述的系统,其中,存储对应于数据节点的元数据的主机高速缓存的条目的偏移与存储数据节点的内核高速...

【专利技术属性】
技术研发人员:N
申请(专利权)人:弗吉尼亚科技知识产权有限公司
类型:发明
国别省市:

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

1