利用压缩的键值存储树数据块溢出制造技术

技术编号:29419328 阅读:13 留言:0更新日期:2021-07-23 23:13
本公开的各方面提供对键值树数据结构的操作:通过合并且重写给定节点内的键值组的键块、同时基于所述给定节点的一或多个子节点是否包括叶节点而重写或推迟重写经合并键值组的值块来合并所述键值组;以及将所述经合并键值组的一或多个部分移动到所述给定节点的一或多个子节点。

【技术实现步骤摘要】
【国外来华专利技术】利用压缩的键值存储树数据块溢出优先权申请本申请要求2018年10月10日提交的第16/156,440号美国申请的优先权益,所述美国申请以全文引用的方式并入本文中。
本公开的实施例大体上涉及存储器子系统,且更具体来说,涉及键值存储(key-valuestore,KVS)树数据结构的操作。
技术介绍
存储器子系统可以是存储系统,如固态驱动器(SSD),且可包含存储数据的一或多个存储器组件。存储器组件可例如为非易失性存储器组件和易失性存储器组件。一般来说,主机系统可利用存储器子系统以在存储器组件处存储数据以及从存储器组件检索数据。附图说明根据下文给出的详细描述和本公开的各种实施例的附图,将更充分地理解本公开。图1是说明根据本公开的一些实施例的包含存储器子系统的实例计算环境的框图。图2是根据本公开的一些实施方案的用于键值存储(KVS)树的实例键合并移动的框图。图3到5是根据本公开的一些实施方案的用于键合并移动的实例方法的流程图。图6是说明根据本公开的一些实施方案的可通过键合并移动进行操作的实例KVS树的框图。图7A和7B是说明根据本公开的一些实施方案的在一组子节点不包括叶节点时对一或多个键值组执行的实例键合并移动的框图。图8A和8B是说明根据本公开的一些实施方案的在一组子节点仅包括一或多个叶节点时对一或多个键值组执行的实例键合并移动的框图。图9A到9C提供说明在其中执行用于键合并移动的方法的实例实施例的上下文中的计算环境的组件之间的交互的交互图。图10是说明根据本公开的一些实施例的呈计算机系统形式的机器的图形表示的框图,在所述计算机系统内可执行指令集以引起机器执行本文中所论述的方法中的任何一或多种。具体实施方式本公开的各方面涉及合并和移动可供存储器子系统使用或结合存储器子系统使用的键值树数据结构中的键值组。存储器子系统在下文也称为“存储器装置”。存储器子系统的实例是存储系统,例如SSD。在一些实施例中,存储器子系统是混合式存储器/存储子系统。通常,主机系统可利用包含一或多个存储器组件的存储器子系统。主机系统可提供数据(例如,经由写入请求)以存储于存储器子系统处,且可请求从存储器子系统检索数据(例如,经由读取请求)。存储器子系统可包含可存储来自主机系统的数据的多个存储器组件。存储器子系统可进一步包含存储器子系统控制器,所述存储器子系统控制器可与存储器组件中的每一者通信,以响应于从主机系统接收到的请求而在存储器组件处执行例如读取数据、写入数据或擦除数据的操作。存储器子系统的存储器组件中的任何一或多个存储器组件可包含媒体控制器以管理存储器组件的存储器单元、与存储器子系统控制器通信以及执行从存储器子系统控制器接收的存储器请求(例如,读取或写入)。在例如数据库存储和卷数据存储(volumedatastorage)(例如,云存储)的一些应用中,键值数据结构用以将数据存储在数据存储媒体上,所述数据存储媒体例如由一或多个存储器装置实施且呈现为包括一或多个媒体数据块(媒体块)的单个逻辑数据存储卷的数据存储媒体池(媒体池)。键值存储(KVS)可包括一或多个键值数据结构以存储和搜索键值对。键值数据结构可准许高效搜索键值对的所存储数据、准许高效存储稀疏数据或准许高效存储可搜索的数据。通常,键值数据结构接受键值对以进行存储,且经配置以对基于键的值查询作出响应。键值数据结构可包括例如树数据结构之类的结构,其实例包含日志结构的合并树(LSM树)和键值存储(KVS)树(这里也称为键值存储树数据结构或KVS树数据结构)。本公开的各方面提供各种实施例,用于通过合并键值对数据中的键数据、同时推迟键值对数据中的值数据的重写来合并(例如压缩)键值树数据结构(KVS树)的节点的键值对数据,且接着将经合并(例如经压缩)键数据移动(例如溢出)到节点的子节点中的至少一者中。这样,此类实施例可准许值数据在KVS树的一或多个内部节点之间共享,同时减少在键值对数据沿着KVS树(从根节点到叶节点)向下流动时在KVS树数据中重写值数据的次数。例如,一些实施例限制特定值数据在KVS树中仅被写两次(例如,当所述特定值数据在KVS树的根节点处初始地写入时以及当所述特定值数据到达叶节点且在叶节点处重写时)。取决于实施例,本文所描述的操作可在主机系统上、在存储器子系统上或这两者的某种组合上执行。在不使用本文所描述的实施例的情况下,值数据可能被写入H次,其中H为KVS树的高度。值重写次数的减少可有益于KVS树和使用KVS树的存储器子系统的性能,在值数据通常在数据大小方面比键数据大许多的情况下尤其如此。减少在KVS树中的值重写次数不仅可减少关于KVS树的读取和写入放大,且还可减少关于用于存储KVS树的数据存储装置的装置输入/输出(I/O)。如本文所使用,键合并移动操作共同地指代将节点的键值对数据中的键数据(例如,键块)合并(例如,压缩)、同时推迟键值对数据中的值数据(例如,值块)的重写且接着将经合并(例如,经压缩)键数据移动(例如,溢出)到节点的子节点中的至少一者中的各种实施例的操作。键合并移动操作还可称为k溢出压缩操作,其可对键值组进行k压缩且接着溢出。根据各种实施例,KVS树的节点内的数据包括键值对的一组键块(用于存储键)和一组值块(用于存储值)。以此方式,KVS树的节点可存储与其对应的值分开的键,这会提供优于LSM树的KVS树性能益处。对于此类实施例,本文所描述的操作可实现在节点内合并(例如,压缩)键块,且将经合并(例如,经压缩)键块从节点移动(例如溢出)到一或多个子节点,同时将值块原样保持在节点内且准许那些值块被KVS树的其它节点共享。通过合并键块(例如,作为对KVS树执行的无用单元收集处理的部分),一些实施例回收(例如,释放)较旧的或删除的键块在数据存储媒体(例如,媒体池)上占用的存储器空间(例如,媒体块),且可进一步减小KVS树的总体数据大小,这可提高KVS树上的可搜索性。通过将键块移动(例如,溢出)到节点的子节点之一,一些实施例将较旧的数据(例如,较旧的键块和其参考的值块)推入KVS树中更深,同时释放节点中的存储器空间以接收较新的数据(例如,键块)。如本文所使用,KVS树包括树数据结构,所述树数据结构包括父节点与子节点之间具有基于键的预定派生(例如,而非树的内容)的连接的节点。每个节点可包括经排序(例如按时间排序)的键值组(在本文中也称为kvset)序列。在按时间排序的情况下,序列中靠后的键值组可表示较旧键值组。所述kvset可包括一或多个键值对,其准许值连同参考所述值的对应键一起存储在KVS树中。因此,在KVS树内,kvset用作在KVS树的节点中组织的个别键和值存储区。给定kvset内的键值对可按键分类。给定kvset内的每个键对于所述kvset中的其它键可以是唯一的;然而,KVS树内的键可能不是唯一的(例如,单个节点内或KVS树的不同节点中的两个不同kvset可包含相同的键)。每个kvset在写到节点后可以是不变的(例如,在放置/存储在节点本文档来自技高网...

【技术保护点】
1.一种系统,其包括:/n一组存储器组件,其存储键值存储树数据结构,所述键值存储树数据结构包括一组节点,其中所述一组节点中的节点包括键值组序列;以及/n处理装置,其以操作方式耦合到所述一组存储器组件,且经配置以执行操作,所述操作包括:/n检测将所述键值组序列合并且从所述键值存储树数据结构的所述节点移动到所述节点的一组子节点的条件;以及/n响应于检测到所述条件:/n确定所述节点的所述一组子节点是否包括叶节点;且/n基于确定所述一组子节点是否包括所述叶节点,将所述键值组序列移动到所述一组子节点。/n

【技术特征摘要】
【国外来华专利技术】20181010 US 16/156,4401.一种系统,其包括:
一组存储器组件,其存储键值存储树数据结构,所述键值存储树数据结构包括一组节点,其中所述一组节点中的节点包括键值组序列;以及
处理装置,其以操作方式耦合到所述一组存储器组件,且经配置以执行操作,所述操作包括:
检测将所述键值组序列合并且从所述键值存储树数据结构的所述节点移动到所述节点的一组子节点的条件;以及
响应于检测到所述条件:
确定所述节点的所述一组子节点是否包括叶节点;且
基于确定所述一组子节点是否包括所述叶节点,将所述键值组序列移动到所述一组子节点。


2.根据权利要求1所述的系统,其中所述将所述键值组序列移动到所述一组子节点包括:
响应于确定所述一组子节点不包括所述叶节点:
合并所述键值组序列以产生经合并键值组,所述经合并键值组包括参考所述键值组序列的一组现有值块的一组新键块,且所述一组新键块基于所述键值组序列的一组现有键块而生成;以及
将所述经合并键值组移动到所述节点的所述一组子节点中。


3.根据权利要求2所述的系统,其中所述将所述经合并键值组移动到所述节点的所述一组子节点中包括:
将所述经合并键值组划分成一组分离键值组,每个分离键值组被分配给所述一组子节点中的不同子节点;以及
将所述一组分离键值组中的每个分离键值组移动到所述一组子节点中的经分配子节点。


4.根据权利要求2所述的系统,其中合并所述键值组序列以产生所述经合并键值组包括在生成所述经合并键值之后:
响应于确定所述一组子节点不包括所述叶节点,从所述节点删除所述键值组序列中的每个特定键值组,删除所述特定键值组包括删除所述特定键值组的一或多个键块,同时保留所述特定键值组的一或多个值块。


5.根据权利要求2所述的系统,其中基于所述键值组序列的所述一组现有键块,通过复制所述一组现有键块以使得所述一组新键块包括对所述一组现有值块的一或多个参考来生成所述一组新键块。


6.根据权利要求1所述的系统,其中所述节点的所述一组值块中的每个特定值块被分配数据生成编号,所述数据生成编号指示针对所述键值存储树结构初始生成所述特定值块的序列次序,且所述将所述键值组序列移动到所述一组子节点包括:
响应于确定所述一组子节点包括所述叶节点:
合并所述键值组序列以产生包括参考一组新值块的一组新键块的经合并键值组,所述一组新键块基于所述键值组序列的一组现有键块而生成,所述一组新值块基于所述键值组序列的一组现有值块而生成,且所述一组新值块被分配有分配给所述一组现有值块中的任一值块的特定最大数据生成编号;以及
将所述经合并键值组移动到所述节点的所述一组子节点中。


7.根据权利要求6所述的系统,其中所述将所述经合并键值组移动到所述节点的所述一组子节点中包括:
将所述经合并键值组划分成一组分离键值组,每个分离键值组被分配给所述一组子节点中的不同子节点;以及
将所述一组分离键值组中的每个分离键值组移动到所述一组子节点中的经分配子节点。


8.根据权利要求6所述的系统,其中所述合并所述键值组序列以产生所述经合并键值组包括在生成所述经合并键值组之后:
响应于确定所述一组子节点确实包括所述叶节点:
针对所述键值存储树数据结构的每个特定叶节点,通过确定分...

【专利技术属性】
技术研发人员:A·汤姆林森G·A·贝克尔G·S·拉姆达西
申请(专利权)人:美光科技公司
类型:发明
国别省市:美国;US

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

1