[发明专利]一种支持任意Key值的自适应基数树的改进方法有效
申请号: | 202110884239.X | 申请日: | 2021-08-03 |
公开(公告)号: | CN113626432B | 公开(公告)日: | 2023-10-13 |
发明(设计)人: | 梁波;张炜刚;贾德星 | 申请(专利权)人: | 上海沄熹科技有限公司 |
主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F9/50;G06F9/448 |
代理公司: | 济南信达专利事务所有限公司 37100 | 代理人: | 郗艳荣 |
地址: | 200120 上海市浦东新区中国(上海)自由贸*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 支持 任意 key 自适应 基数 改进 方法 | ||
本发明特别涉及一种支持任意Key值的自适应基数树的改进方法。该支持任意Key值的自适应基数树的改进方法,在每个中间节点增加一个叶子节点指针,用于存储节点深度与Key值长度相同场景下的叶子节点;中间节点存储完整的相同前缀Tokens,使用C\C++语言的可变长结构体技术实现中间节点按照相同前缀的实际长度分配内存空间;改进查询算法,查询某个Key值时,返回大于等于当前Key值的Value,实现对Key值范围段的快速检索。该支持任意Key值的自适应基数树的改进方法,优化了插入查询任意的Key值功能,增加了改进的查询算法功能,提升了查询性能,减少了内存空间占用量,使得自适应基数树变得更加通用,使用场景也更加广泛。
技术领域
本发明涉及数据存储结构技术领域,特别涉及一种支持任意Key值的自适应基数树的改进方法。
背景技术
RT(Radix Tree,基数树)是字典类型的数据结构。一种常见的前缀树,所有节点使用固定大小的数组,用于存储所有可能的token。Linux Kernel(linux内核)文件系统就使用该数据结构进行文件路径、内存的索引。
ART(Adaptive Radix Tree,自适应基数/前缀树)是以二进制位串为关键字的前缀树,是一种多叉树形结构,同时又类似多层索引表,每个中间节点包含指向多个子节点的指针数组,叶子节点包含指向实际的对象的指针。在基数树的基础上,优化增加了可变特性,其核心是优化空间的利用率,使每个节点空间大小不再相同,根据需要使用不同大小的节点类型。
但是,基数树的设计初衷仅针对定长key的应用场景,对于可变长key的场景考虑不足。比如顺序插入key:A和key:AB时,key:A会被覆盖掉,而不是同时存储这两个key。并且当前主流的ART算法实现(如Libart等)路径压缩时使用中间节点中定长数组存储前缀,对于超长前缀只存储前特定长度的token,完整前缀只能通过对叶子节点中的value解析获得,这极大降低了查询操作的性能。因此当前主流的ART算法只能提供基本的单点精确查询功能,应用场景单一。
针对ART树不支持变长key存储的问题以及当前主流ART算法实现性能低、功能单一的问题,本发明提出了一种支持任意Key值的自适应基数树的改进方法。
发明内容
本发明为了弥补现有技术的缺陷,提供了一种简单高效的支持任意Key值的自适应基数树的改进方法。
本发明是通过如下技术方案实现的:
一种支持任意Key值的自适应基数树的改进方法,其特征在于:包括以下步骤:
(1)在每个中间节点增加一个叶子节点指针,用于存储节点深度与Key值长度相同场景下的叶子节点;
(2)中间节点存储完整的相同前缀Tokens,使用C\C++语言的可变长结构体技术实现中间节点按照相同前缀的实际长度分配内存空间,提升CPU缓存命中率,减少叶子节点解析的次数;
(3)改进查询算法,将Key值按照Key值的值域划分成多个不相交的子域,每个子域代表一个Key值的范围段;将每个范围段内的最大Key值插入ART树中,查询某个Key值时,返回大于等于当前Key值的Value,实现对Key值范围段的快速检索。
ART树节点类型分为中间节点类型Node和叶子节点类型Leaf。所述步骤(1)中,在中间节点内聚合一个叶子节点Leaf,并使用增加的叶子节点Leaf存储信息,从而使得ART树能够正确存取任意的Key值;改进后的中间节点结构包括以下四个部分:
Header:存储节点本身的属性信息,包括token数量、节点类型、节点深度以及并发访问控制;
Leaf:节点聚合的叶子节点对象,用于存储节点深度与Key值长度相同的叶子节点;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海沄熹科技有限公司,未经上海沄熹科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110884239.X/2.html,转载请声明来源钻瓜专利网。