【技术实现步骤摘要】
【国外来华专利技术】KVS树优先权申请案本申请案主张2017年2月9日提出申请的第15/428,877号美国申请案的优先权权益,所述美国申请案以其全文引用方式并入本文中。
本文中所描述的实施例一般来说涉及一种键值数据存储,且更具体来说涉及实施KVS树。
技术介绍
数据结构为准许用各种方式与存储于其中的数据相互作用的数据组织。数据结构可经设计以尤其准许(例如)在二进制搜索树中对数据进行高效搜索,准许(例如)利用链接列表对稀疏数据进行高效存储,或准许(例如)利用B树对可搜索数据进行高效存储。键值数据结构接受键值对且经配置以对对键的查询做出响应。键值数据结构可包含例如字典(例如,映射、散列映射等)的结构,其中键存储于链接(或含有)相应值的列表中。虽然这些结构在内存中(例如,在与存储区相对的主要或系统状态存储器中)是可用的,但这些结构在持久存储区中(例如,在磁盘上)的存储表示可为低效的。因此,已引入一类基于日志的存储结构。实例为日志结构化合并树(LSM树)。已存在各种LSM树实施方案,但许多LSM树实施方案符合其中将键值对接受到经键排序的内存中结构中的设计。当所述内存中结构填满时,数据分配在若干子节点当中。所述分配使得子节点中的键在子节点自身内而且在子节点之间经定序。举例来说,在具有三个子节点的第一树层级处,最左子节点内的最大键小于来自中间子节点的最小键且中间子节点中的最大键小于来自最右子节点的最小键。此结构准许对数据结构中的键以及键范围两者进行高效搜索。附图说明在图式(其未必按比例绘制)中,相似编号可在不同视图中描述类似组件。具有不同字母后缀的相似编号可表示类似组件的不同例子。图式 ...
【技术保护点】
1.一种在至少一个机器可读媒体上经组织为树的键值数据结构,所述数据结构包括:多个节点,来自所述多个节点的节点包含:时间上经定序的不可变键值集kvset序列;及所述节点的kvset中的键值对到所述节点的任何一个子节点的确定性映射,所述键值对包含一个键及一个值,所述键在所述kvset中为唯一的。
【技术特征摘要】
【国外来华专利技术】2017.02.09 US 15/428,8771.一种在至少一个机器可读媒体上经组织为树的键值数据结构,所述数据结构包括:多个节点,来自所述多个节点的节点包含:时间上经定序的不可变键值集kvset序列;及所述节点的kvset中的键值对到所述节点的任何一个子节点的确定性映射,所述键值对包含一个键及一个值,所述键在所述kvset中为唯一的。2.根据权利要求1所述的数据结构,其中所述确定性映射包含所述键的一部分的散列的一部分。3.根据权利要求2所述的数据结构,其中所述散列包含多个非重叠部分,所述多个非重叠部分包含所述散列的所述部分。4.根据权利要求3所述的数据结构,其中所述多个非重叠部分中的每一者对应于所述树的层级。5.根据权利要求4所述的数据结构,其中由所述节点的层级依据所述多个非重叠部分确定所述散列的所述部分。6.根据权利要求5所述的数据结构,其中所述节点的最大子节点数目由所述散列的所述部分的大小定义。7.根据权利要求1所述的数据结构,其中所述kvset包含键树以存储所述kvset的键值对的键条目。8.根据权利要求1所述的数据结构,其中所述kvset的键条目存储于包含主要键块及零个或更多个扩展键块的键块集中,所述键块集的成员对应于存储媒体的媒体块,每一键块包含用以将其识别为键块的标头;且其中将值存储于值块集中,所述值块集的成员对应于所述存储媒体的媒体块,每一值块包含用以将其识别为值块的标头。9.根据权利要求8所述的数据结构,其中值块包含在值之间不具有间隔的一或多个值的存储区段。10.根据权利要求8所述的数据结构,其中所述主要键块包含所述kvset的所述一或多个扩展键块的媒体块标识列表。11.根据权利要求8所述的数据结构,其中所述主要键块包含所述值块集中的值块的媒体块标识列表。12.根据权利要求8所述的数据结构,其中所述主要键块包含所述kvset的键树中的最低键的副本,所述最低键通过所述树的预设定排序次序来确定。13.根据权利要求8所述的数据结构,其中所述主要键块包含所述kvset的键树中的最高键的副本,所述最高键通过所述树的预设定排序次序来确定。14.根据权利要求8所述的数据结构,其中所述主要键块包含所述kvset的键树的标头。15.根据权利要求8所述的数据结构,其中所述主要键块包含所述kvset的键树的媒体块标识列表。16.根据权利要求8所述的数据结构,其中所述主要键块包含所述kvset的布隆过滤器的布隆过滤器标头。17.根据权利要求8所述的数据结构,其中所述主要键块包含所述kvset的布隆过滤器的媒体块标识列表。18.根据权利要求8所述的数据结构,其中所述主要键块包含所述kvset的指标集。19.一种系统,其包括用以进行以下操作的处理电路:接收键值集kvset以存储于至少一个机器可读媒体的经组织为树的键值数据结构中,所述kvset包含唯一键到值的映射,所述kvset的所述键及所述值为不可变的,所述树的节点包含时间上经定序的kvset序列;及将所述kvset写入到所述树的根节点的kvset序列。20.根据权利要求19所述的系统,其中所述处理电路经配置以:接收包含搜索键的搜索请求;遍历所述树直到发生以下情形中的至少一者为止:遍历所述整个树,或在所述树的节点的kvset中找到所述搜索键的第一例子,遍历所述树包含所述处理电路进一步经配置以:在所述树的根节点处开始;且针对经遍历的每一节点:从最新kvset到最旧kvset检查所述节点的kvset;当找到所述搜索键时传回找到指示且停止所述遍历;且当未找到所述搜索键时使所述遍历继续到子节点,所述子节点存在且由从所述搜索键导出的溢出值及经遍历的所述节点的树层级识别。21.根据权利要求20所述的系统,其中检查所述kvset包含:针对给定kvset,所述处理电路使用所述kvset的布隆过滤器来确定所述搜索键是否可能在所述kvset中。22.根据权利要求20所述的系统,其中检查所述kvset包含:针对给定kvset,所述处理电路确定所述搜索键小于或等于所述kvset的最大键值。23.至少一个机器可读媒体,其包含在由处理电路执行时致使机器执行包括以下各项的操作的指令:接收键值集kvset以存储于至少一个机器可读媒体的经组织为树的键值数据结构中,所述kvset包含唯一键到值的映射,所述kvset的所述键及所述值为不可变的,所述树的节点包含时间上经定序的kvset序列;及将所述kvset写入到所述树的根节点的kvset序列。24.根据权利要求23所述的至少一个机器可读媒体,其中所述操作包括:接收将存储于所述键值数据结构中的键及对应值;将所述键及所述值放置于初步kvset中,所述初步kvset为可变的;及在达到指标时将所述kvset写入到所述键值数据结构。25.根据权利要求23所述的至少一个机器可读媒体,其中所述操作包括:接收第二kvset;将所述第二kvset写入到所述根节点的所述kvset序列;及响应于写入所述第二kvset而响应于所述根节点的指标超过阈值对所述根节点执行溢出操作。26.根据权利要求25所述的至少一个机器可读媒体,其中所述溢出操作包含:选择所述kvset序列的子集,所述子集包含连续kvset,所述连续kvset包含最旧kvset;计算所述kvset子集的每一kvset中的每一键的子节点映射,所述子节点映射为基于特定键及母节点的树层级而从所述母节点到子节点的确定性映射;基于其中每一kvset集恰好映射到一个子节点的所述子节点映射而将键及对应值收集到kvset中;将所述kvset写入到相应子节点中的相应kvset序列中的最新位置;及从所述根节点移除所述kvset子集。27.根据权利要求26所述的至少一个机器可读媒体,其中计算所述子节点映射包含:提取键的一部分;从所述键的所述部分导出溢出值;及基于所述母节点的所述树层级而传回所述溢出值的一部分。28.根...
【专利技术属性】
技术研发人员:D·博尔斯,J·M·格罗韦斯,S·莫耶,A·汤姆林森,
申请(专利权)人:美光科技公司,
类型:发明
国别省市:美国,US
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。