[发明专利]面向数据流的低时延内存B+树索引构建方法有效

专利信息
申请号: 201610373112.0 申请日: 2016-05-30
公开(公告)号: CN106021560B 公开(公告)日: 2019-04-09
发明(设计)人: 杨良怀;项俊腱;范玉雷;汪庆顺;龚卫华 申请(专利权)人: 浙江工业大学
主分类号: G06F16/22 分类号: G06F16/22
代理公司: 杭州天正专利事务所有限公司 33201 代理人: 王兵;黄美娟
地址: 310014 浙江省杭州*** 国省代码: 浙江;33
权利要求书: 查看更多 说明书: 查看更多
摘要: 面向数据流的低时延内存B+树索引构建方法,重复执行以下步骤:1)通过时间戳为wT的时间窗接收数据,按等时间分片处理数据,每个分片数据接收完后即进行排序,并与之前已排序数据归并,时间窗到期后异步开启新的时间窗并继续后续步骤;2)获窗口元组总量,计算树结构参数:层数,内部节点的子节点数,内部节点数,叶子节点数,叶子节点的子节点数等;3)据步骤2)的参数一次性分配所需的数据结构;4)自底向上依次并行构建叶子节点和内节点得到子树,其根节点指针为rtPtr;5)将元组插入到全局B+树上并转步骤1)。
搜索关键词: 面向 数据流 低时延 内存 索引 构建 方法
【主权项】:
1.面向数据流的低时延内存B+树索引构建方法,包括以下步骤:1)负责接收数据的节点机采用双缓存机制,每个开始接收数据的缓存对应一个时间窗并有相应的时间戳标记winTime;当其中一个时间窗时间到期后,进行相应处理,并启动另一个缓存对应的缓存用于接收后续到达的数据,如此往复;在某个给定时间窗完成流数据接收时,该窗口到期,假设对应该窗口构建好的子树根节点指针rootPtr,以winTime为键值,将元组插入到全局B+树上;2)步骤1)中时间窗口中接收的流式元组数据以键‑值格式缓存到KVArray数组中;3)根据窗口时间将窗口数据进行等时间分片,每个分片数据接收完成后进行排序,然后与之前排序好的数据进行归并排序;4)同时,若当前窗口流式数据接收时间已达规定时长,则获取当前窗口数据元组数W;设子B+树内部节点数默认为B,最大容量即最大子节点数,计算以下参数:(4.1)子B+树的层数H,满足:BH‑1<W≤BH;(4.2)子B+树内节点的子节点数m(4.3)子B+树的内节点数NiNodes(4.4)子B+树的叶子节点数NleafNodes,NleafNodes=mH‑1;(4.5)子B+树的叶子节点的子节点数d:d=W/NleafNodes;(4.6)子B+树的叶子节点的子节点数偏移量dindex,即前dindex叶子节点的子节点数多一个,使构建的B+树均衡:dindex=W%NleafNodes;5)待参数计算完毕,进行子B+树的树结构初始化:(5.1)初始化节点数组BNodeArray,该数组的长度为NiNodes+NleafNodes;其中NiNodes为内节点数,NleafNodes为叶节点数,内节点中最后一个节点为根节点;(5.2)将根节点指向节点数组最后一个元素;6)启用多线程构建叶子节点,共构建NleafNodes个节点,每个叶子节点构建相对独立;构建叶子节点需要计算三部分数据:父节点相关数据、本节点相关数据、子节点相关数据,并进行相应的引用连接操作,即将孤立的节点通过指针指向其父节点及子节点,从而形成树结构;第lfindex叶子节点的构建步骤包括:(6.1)计算父节点相关数据,计算父节点在节点数组BNodeArray的下标lpindex:lpindex=NleafNodes+lfindex/m(6.2)计算本节点相关数据,所属层数lflevel,叶子节点属于最底层,层数即为树的层数H,lflevel=H(6.3)计算子节点相关数据:(6.3.1)计算子节点在数组KVArray中的起始下标lfcsindex;在满足lfindex≤dindex时:lfcsindex=lfindex×d+lfindex;在满足lfindex>dindex时,lfcsindex=lfindex×d+dindex;(6.3.2)计算叶子节点的子节点数NlfcNodes;在满足lfindex≤dindex时,NlfcNodes=d+1;在满足lfindex>dindex时,NlfcNodes=d;(6.4)构建叶子节点,并将子节点通过引用方式将元组数组连接到叶子节点;7)启用多线程构建内节点,共构建NiNodes个节点,每个叶子节点构建相对独立;构建内节点需要计算三部分数据:父节点相关数据、本节点相关数据、子节点相关数据,并进行相应的引用连接操作,即将孤立的节点通过指针指向其父节点及子节点,从而形成树结构;第iindex叶子节点的构建步骤包括:(7.1)计算内节点的相关数据;(7.1.1)计算内节点所属层数ilevel,满足以下条件;(7.1.2)计算内节点在所在层数的次序ilevelindex:(7.2)计算父节点在数组BNodeArray的下标ipindex:(7.3)计算内部节点的子节点相关数据;(7.3.1)计算内部节点的子节点在数组KVArray中的起始下标icsindex:(7.3.2)计算内部节点的子节点数NicNodes:NicNodes=m(7.4)在进行引用连接操作前,需判断所有子节点是否已经完成构建,若已经完成构建,则可以开始引用连接操作。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江工业大学,未经浙江工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/patent/201610373112.0/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top