[发明专利]基于支持重复键值树数据结构管理磁盘数据的方法和装置有效
申请号: | 201810826999.3 | 申请日: | 2018-07-25 |
公开(公告)号: | CN108984780B | 公开(公告)日: | 2021-10-22 |
发明(设计)人: | 邹虎 | 申请(专利权)人: | 郑州云海信息技术有限公司 |
主分类号: | G06F16/901 | 分类号: | G06F16/901;G06F16/903 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 王宝筠 |
地址: | 450018 河南省郑州市*** | 国省代码: | 河南;41 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 支持 重复 键值 数据结构 管理 磁盘 数据 方法 装置 | ||
本申请实施例公开一种基于支持重复键值树数据结构管理数据的方法和装置,该方法用于树数据结构,树数据结构包括至少两级节点,每级节点包括至少一个节点,每个节点中存储键值,键值包括关键字和关键字对应的值,该树数据结构支持一个关键字对应多个值。在插入键值过程中,获取待处理键值,判断待处理键值中的关键字是否与目标节点中已存储的关键字匹配,目标节点为树数据结构中任一节点;若匹配,根据待处理键值中的关键字对应的值将待处理键值插入到目标节点中。可见,该树数据结构可以支持重复键值,即使待处理键值中的关键字与树数据结构中已存储的关键字相同,也可以在保留已存储的关键字的情况下插入待处理键值,满足用户对存储系统的需求。
技术领域
本申请涉及数据处理领域,特别是涉及一种基于支持重复键值树数据结构管理数据的方法和装置。
背景技术
在存储系统中,通常采用树数据结构作为元数据在内存中建立逻辑区块地址(Logical Block Address,简称LBA)到磁盘地址的映射,例如B+树。
传统的B+树中存储有键值(Key Value,简称KV),其中,Key是关键字,Value是关键字对应的值,Value用于表示磁盘地址,一个key对应一个Value,这样,根据B+树可以实现对磁盘地址对应存储位置的数据进行管理。
然而,传统的B+树只能支持单一的键值,在插入键值的过程中,一旦B+树中已经存在该key,会直接对其进行覆盖或者返回错误。因此,传统的B+树无法支持重复键值的特殊情况,难以满足用户对存储系统的需求。
发明内容
为了解决上述技术问题,本申请提供了一种基于支持重复键值树数据结构管理数据的方法和装置,该方法可以支持重复键值,即使待处理键值中的关键字与树数据结构中已存储的关键字相同,也可以在保留已存储的关键字的情况下插入待处理键值,满足用户对存储系统的需求。
本申请实施例公开了如下技术方案:
第一方面,本申请实施例提供了一种基于支持重复键值树数据结构管理数据的方法,应用于树数据结构,所述树数据结构包括至少两级节点,每级节点包括至少一个节点,每个节点中存储键值,所述键值包括关键字和关键字对应的值,所述树数据结构支持一个关键字对应多个值,所述方法包括:
获取待处理键值;
判断所述待处理键值中的关键字是否与目标节点中已存储的关键字匹配,所述目标节点为所述树数据结构中任一节点;
若匹配,则根据所述待处理键值中的关键字对应的值将所述待处理键值插入到所述目标节点中。
可选的,所述根据所述待处理键值中的关键字对应的值将所述待处理键值插入到所述目标节点中,包括:
在所述目标节点中,将所述待处理键值中的关键字对应的值与所述目标节点中目标关键字对应的值按照从小到大的顺序排列,所述目标关键字与所述待处理键值中的关键字相同。
可选的,所述目标关键字包括多个,在所述目标节点中,按照所述多个目标关键字分别对应的值从小到大的顺序排列所述多个目标关键字,所述将所述待处理键值中的关键字对应的值与所述目标节点中目标关键字对应的值按照从小到大的顺序排列,包括:
将所述待处理键值插入到所述多个目标关键字中任意位置;
分别判断所述待处理键值中的关键字对应的值与相邻的两个目标关键字对应的值是否满足从小到大的顺序要求;
若不满足,则将所述待处理键值中的关键字与不满足顺序要求的目标关键字交换顺序,重新执行所述分别判断所述待处理键值中的关键字对应的值与相邻的两个目标关键字对应的值是否满足从小到大的顺序要求的步骤。
可选的,所述方法还包括:
获取待查询关键字;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于郑州云海信息技术有限公司,未经郑州云海信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810826999.3/2.html,转载请声明来源钻瓜专利网。