【技术实现步骤摘要】
键值固态驱动器中的动态存储
[0001]相关申请的交叉引用
[0002]本申请要求于2021年7月7日提交的第202141030420号印度专利申请的优先权,其公开内容通过引用整体并入本文。
[0003]本公开一般涉及将键(key)存储在存储装置/存储器中,尤其涉及将键存储在键值固态驱动器中。
技术介绍
[0004]键值固态驱动器(KV SSD)支持在其中存储键值数据。键值数据通常包括一个或多个键以及与这些键相关联的值。在示例中,当存储在KV SSD中时,键存储在KV SSD中实施的给定数据结构的节点中。许多不同的已知数据结构可以用于实施KV SSD中的键和值的存储。
[0005]在一些实施B+树数据结构的KV SSD中,用于在给定节点中存储键的技术涉及将每个键存储在节点的对应区域中。节点中的该区域或空间具有预定的固定大小。有时,这种存储模式会导致节点中浪费的存储空间。例如,考虑这样的示例,其中预定大小是256字节,要存储的键的大小是8字节。在这种情况下,256个可用字节中的大部分将不会被使用。
[0006]在本领域中需要提供一种具有增加的空间利用率的存储模式。
技术实现思路
[0007]提供以下概述以介绍一些概念,这些概念将在本文所包括的详细描述中进一步描述。该概述不旨在标识关键或必要的专利技术概念,也不旨在用于确定本专利技术的范围。
[0008]在被配置为存储键值对的系统的一些比较示例中使用的存储模式可能导致浪费的空间。例如,在实施B+树数据结构的KV SS ...
【技术保护点】
【技术特征摘要】
1.一种方法,包括:接收将一个或多个键存储在键值固态驱动器KV
‑
SSD中的请求;执行用于将所述一个或多个键存储在所述KV
‑
SSD的数据结构的节点中的存储操作,其中,对于所述一个或多个键中的每个键的存储操作包括:在所述节点中分配第一区域用于存储键,使得所述第一区域的大小等于所述键的大小;在所述节点中分配第二区域用于存储与所述键相关联的键元数据,使得所述第二区域具有预定大小;以及将所述键存储在所述节点的所述第一区域中,并将所述键元数据存储在所述节点的所述第二区域中。2.根据权利要求1所述的方法,其中,所述键元数据包括与所述键相关联的偏移值和所述键的大小,并且其中,所述偏移值指示所述键在所述节点中的位置。3.根据权利要求2所述的方法,其中,所述节点至少包括键区域和键元数据区域,其中,所述键区域被配置为存储所述一个或多个键,并且其中,所述键元数据区域被配置为存储与所述一个或多个键中的每一个相关联的键元数据,并且其中,所述键区域从所述节点的第一端开始,并且其中,所述键元数据区域从所述节点的第二端开始,并且其中,所述第二端与所述第一端相对。4.根据权利要求3所述的方法,其中,所述方法还包括:从所述节点的所述第一端开始将所述一个或多个键存储在所述键区域中;以及从所述节点的所述第二端开始将与所述一个或多个键中的每一个相关联的键元数据存储在所述键元数据区域中。5.根据权利要求3所述的方法,其中,所述节点还包括位于所述键区域和所述键元数据区域之间的安全区域。6.根据权利要求3所述的方法,其中,所述节点还包括节点元数据区域,所述节点元数据区域包括关于所述节点的占用率的信息。7.根据权利要求3所述的方法,其中,所述方法还包括:从KV应用接收范围查询调用;以及基于所述键元数据区域来服务所述范围查询调用。8.根据权利要求3所述的方法,其中,所述方法还包括:接收从所述一个或多个键中删除至少一个键的请求;响应于所述请求的接收,从所述节点删除所述至少一个键和相关联的键元数据。9.根据权利要求8所述的方法,其中,所述方法还包括在所述节点上执行分段过程,其中,所述分段过程包括:更新所述键区域中的所述一个或多个键中的一个或多个键的位置;以及基于所述一个或多个键中的每一个的新位置,更新与所述一个或多个键中的一个或多个键相关联的对应的键元数据。10.根据权利要求9所述的方法,还包括:接收在所述节点中存储下一个键的进一步请求;确定所述下一个键的大小是否大于所述节点中的可用空间;以及
如果确定所述下一个键的大小大于所述可用空间,则执行所述分段过程。11.一种系统,包括:处理器;请求处理器,耦接到所述处理器,其中,所述请求处理器被配置为接收将多个键存储在键值固态驱动器KV
‑
...
【专利技术属性】
技术研发人员:ST希瓦南德,K加格,保尔贾斯汀K,SC雷迪,SG克姆斯,
申请(专利权)人:三星电子株式会社,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。