[发明专利]磁盘区间树批量更新方法在审

专利信息
申请号: 201910535259.9 申请日: 2019-06-05
公开(公告)号: CN112052238A 公开(公告)日: 2020-12-08
发明(设计)人: 许建秋;梁珺秀;章益烔 申请(专利权)人: 南京航空航天大学
主分类号: G06F16/22 分类号: G06F16/22;G06F16/23
代理公司: 暂无信息 代理人: 暂无信息
地址: 210016 江*** 国省代码: 江苏;32
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 磁盘 区间 批量 更新 方法
【权利要求书】:

1.一种磁盘区间树批量更新的方法,其特征是通过对区间数据做预处理,将区间集合划分为内区间集合和外区间集合两个部分,对于内区间集合遍历磁盘区间树,找到每个区间应插入的结点位置,对磁盘区间树的结点进行更新;而对于外区间集合,为该集合内所有区间新建立一棵区间树,将新区间树的结点依次插入到磁盘区间树中;这个方法大量减少了磁盘访问次数,降低I/O和CPU开销,提高了索引更新效率;其过程由以下三部分构成:

(1)区间预处理:将需要实时更新的区间数据根据磁盘区间树的最大端点值,分为内区间集合和外区间集合;

(2)内区间更新:由(1)中得到的内区间集合作为输入,遍历一次磁盘区间树,找到各个区间应插入的相应结点位置,以结点为单位对磁盘区间树进行更新操作;

(3)外区间更新:由(1)中得到的外区间集合作为输入,为集合中的区间建立一棵新的平衡区间树,建树完成后,将新树中的所有结点依次插入到磁盘区间树中,得到更新后的磁盘区间树。

2.根据权利要求1所述的磁盘区间树批量更新方法,其特征在于所研究的对象区间树是保存在磁盘中的;区间更新操作的基本思想是对于需要更新的每个区间都能找到应该插入的结点位置,以结点为单位对磁盘区间树进行批量更新,从而避免将区间依次插入磁盘区间树中,减少磁盘读写次数,来提高索引更新效率。

3.根据权利要求2所述的磁盘区间树批量更新方法,其特征在于该方法可以处理当所给区间的范围超过已有区间树的最大端点值的情况,步骤(1)中将区间数据根据磁盘区间树范围最大端点值,分为内区间集合和外区间集合;

对于需要更新的区间数据存在三种情况,1)区间范围完全包含于磁盘区间树定义范围的区间;2)区间范围全部在磁盘区间树定义范围外的区间;3)区间部分在磁盘区间树范围内,部分在区间树范围外的区间,将1)中的区间全部放入内区间集合中,2)中区间全部放入外区间集合中,3)中的区间根据磁盘区间树端点最大值,分割为区间范围内和区间范围外两个部分,再分别加入内区间集合和外区间集合中,将划分后的两种集合用内区间更新和外区间更新两种不同的方法进行操作,具体算法如下所示:

算法1.BulkUpdate(T,O′)

输入:磁盘区间树索引T

区间集合O′

输出:更新后的磁盘区间树索引

1.partition O′into{O′in,O′out};

2.Insert_ln(T,T.Tootld(),O′in);

3.Insert_OutCT,O′out);

4.将缓冲区中的结点同步到磁盘上的索引结构。

4.根据权利要求3所述的磁盘区间树批量更新方法,其特征在于步骤(2)(3)中针对两种不同区间数据,即内区间集合和外区间集合,采用了不同的更新算法;(2)中更新算法仅通过遍历一次磁盘区间树,确定内区间集合中所有区间应保存的结点位置;(3)通过为外区间集合中的所有区间建立一棵平衡区间树,确定外区间集合中应保存在同一结点的区间,在确定每个区间应存放的结点后,以结点为单位对磁盘区间树进行更新,从而避免将每个区间依次加入到存储在磁盘的索引中,两种算法大量减少了磁盘读取次数,降低I/O和CPU开销。

1)内区间更新

对于内区间集合,由根节点开始遍历磁盘区间树,找到集合中各个区间应存放的结点位置,对于当前访问的结点,将对应的集合中的所有区间分为三类:1)若区间不包含结点的中心点,且区间端点的最大值小于当前结点中心点的值,则将该区间存储在当前结点的左子树集合中;2)若当前区间不包含结点的中心点且区间端点的最小值大于结点中心点的值,则将该区间保存在当前结点的右子树集合中;3)若当前区间包含结点的中心点,则将该区间保存在当前结点处;根结点对应的集合为内区间集合,将得到的结点的左子结点、左子树集合和右子结点、右子树集合作为下一轮输入,对其对应的集合进行分类,得到集合中每个区间应存放的结点的位置;

寻找区间应插入的结点的过程中,可能存在区间不包含任何结点的中心点,此时应该为区间创建一个新的结点,并插入到磁盘区间树中,而新结点的插入可能导致平衡磁盘区间树变为不平衡树,如LL型,LR型,RR型,RL型,因此可通过旋转平衡方法将其变为平衡树,经过旋转变换后的平衡树导致原来的父结点和子结点的位置的对换,即原来的父结点变为子结点,而根据区间树定义,区间应存储在由上至下遍历区间树,得到的第一个与中心点相交的结点中,因此在进行旋转变换时,应考虑是否存在区间同时包含父结点和子结点的中心点,若存在这样的区间,则将存放在原父结点的区间放入新的父结点中,保证磁盘区间树的正确存储,具体算法如下所示:

算法2.Insert_ln(T,id,O′in)

输入:磁盘区间树T

当前结点编号id

内区间集合O′in

输出:根据当前结点分类得到的三类区间

2)外区间更新

由于外区间集合中的所有区间与磁盘区间树结点的中心点不存在交点,因此为外区间集合中的所有区间建立一棵新的区间树,所有区间划分到新树的不同的结点中,以结点为单位,将新建区间树中的各个结点依次插入到磁盘区间树中,并对得到的树进行适当旋转调整使之保持平衡,相较于将外区间集合中的区间依次插入磁盘区间树中,由于外区间更新算法以结点为单位进行更新,区间树的一个结点中可能包含多个区间,因此可以大量减少访问磁盘区间树的次数,降低I/O和CPU开销,提高索引更新效率,具体算法如下所示:

算法3.Insert_Out(T,O′out)

输入:磁盘区间树T

区间外集合Out′out

输出:同步更新数据的平衡磁盘区间树

1.creat an interval tree T′on O′out

2.foreach N′∈T′do;

3.insert the node N′into T。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

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

本文链接:http://www.vipzhuanli.com/pat/books/201910535259.9/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

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

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

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

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

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

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

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

钻瓜专利网在线咨询

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

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