磁盘区间树批量更新方法技术

技术编号:14701727 阅读:47 留言:0更新日期:2017-02-24 20:08
本发明专利技术提供了磁盘区间树批量更新方法,应用于数据库领域,同步实时数据和磁盘区间树索引更新。本发明专利技术所述的磁盘区间树批量更新方法是通过对数据区间的预处理,将所有区间分为内区间集合和外区间集合,再分别对两类集合采用内区间更新和外区间更新技术,将结果保存至磁盘中的平衡区间树中。这种索引更新方法能处理当区间范围超出设定最大值范围的情况,当新结点导致区间树不平衡时,也可通过旋转平衡变换进行调整。同时由于每次是以结点为单位对区间树进行更新,因此避免将区间依次写入磁盘,降低了磁盘访问次数,大量减少I/O和CPU开销,提高了索引更新效率。

【技术实现步骤摘要】
一、
本专利技术是数据库领域,用于同步实时数据更新而引起的索引结构更新。二、
技术介绍
随着应用发展,数据存储对象由历史数据转变为连续变化的数据,如交通流量监控这些应用。在这些应用中,数据存储在数据库中并支持进一步的查询,这要求数据库系统不仅能存储历史数据,同时也能存储新数据。因此数据库中的索引结构必须支持频繁的更新,来保持与实时数据的同步,从而达到正确且有效的查询。在时空数据库中,区间树用来有效的组织表示为轴平行线段的区间,每个区间包含一个开始和结束端点。对于存储在磁盘上的区间树,给定新的区间,将这些区间插入到区间树中存在两种方法:1)重新建造整棵树,这种方法开销大,尤其是对连续更新的数据来说,新区间可能只需更新部分结点,并不需要重构整棵树;2)将每个区间依次插入树中,这种方法会在区间数量太多时产生大量I/O开销和CPU开销。因此需要一种方法来有效的提高磁盘区间树索引更新,减小I/O开销和CPU开销,实现索引和实时更新数据的同步。三、
技术实现思路
【专利技术目的】为了提高索引更新效率,本专利技术提供了包含新区间预处理、内区间更新算法和外区间更新算法,减小I/O开销和CPU开销,提高索引实时更新效率。【技术方案】本专利技术所述的磁盘区间树批量更新方法是通过将新区间预处理划分为内区间集合(在原区间树的范围内)和外区间集合(在原区间树的范围外)。对于两类集合分别调用内区间更新算法和外区间更新算法。这种批量更新算法能有效的对实时数据建立索引,解决实时区间数据范围超过端点值的问题,批量处理可减少磁盘访问次数,降低CPU开销。主要步骤如下:(1)区间预处理;本专利技术考虑数据空间持续增大的情况,将新区间数据分为三种:1)区间完全包含在原区间树的范围内的内区间集合;2)区间全部在原区间树的范围外的外区间集合;3)区间部分包含在区间树的范围内,部分在区间树的范围外的集合。将3)中区间根据区间树的最大值端点,分割为内区间部分和外区间部分,将分割后的两类子区间分别加入内区间集合和外区间集合中。最终得到的两类区间集合:内区间集合和外区间集合。(2)内区间更新;对于经过区间预处理后的内区间集合,找到每个区间在区间树中应存放的结点。遍历一次区间树,对于每个访问的结点,将当前结点对应的集合分为:1)存储在当前结点的区间,2)存储在当前结点左子树的区间,3)存储在当前结点右子树的区间,一次遍历后找到了所有区间应该插入的正确位置,区间树每个结点只访问更新一次,并适当进行旋转变化,保持树平衡。(3)外区间更新;对于外区间集合,为集合中的区间建立一棵新的平衡区间树。建树完成后,以新的区间树中的结点为单位,将结点依次插入磁盘区间树中,并同时作适当的旋转调整变换保持树的平衡。【有益效果】本专利技术所述磁盘区间树批量更新方法通过对区间集合预处理,内区间更新和外区间更新,以实现同步实时数据和磁盘区间树索引结构的更新。下面通过测试数据来说明本专利技术的有效性。实验环境为:Intel(R)、Xeon(R)、CPU为i7-4770、主频3.4GHz、内存8GB、磁盘2TB、Linux环境Ubuntu14.04、C++语言、可扩充移动对象数据库SECONDO,实验数据为合成数据和北京出租数据。表1表1显示了数据集的信息,图1(a)表示重新建树(DropRebuild)、以区间为单位更新(Baseline)及批量更新(BulkLoad)三种方法在合成数据上的时间比较,图1(b)表示三种方法在出租数据上的时间比较,图3(c)表示比较不同数据量的历史数据对三种方法的影响,三种情况都表明磁盘区间树批量更新方法性能对比另外两种方法有较大提高。四、附图说明图1实验结果对比图图2区间分割示意图图3区间树构造示意图图4内区间更新图5区间树平衡旋转变换五、具体实施方式下面结合附图对本专利技术进一步说明。本专利技术所述的磁盘区间树批量更新方法是通过对区间进行预处理,以如图2所示区间树的有效范围端点最大值Max为分割点,将所有新区间分为内区间集合和外区间集合。通过对两种不同的区间采用内区间更新和外区间更新算法,实现实时数据和磁盘区间树索引的同步,减少磁盘访问次数,降低CPU开销。主要步骤如下:(1)区间预处理;本专利技术将需要更新的区间集合作为输入,保存到可扩充数据库系统SECONDO中。每个区间如图3所示,保存在由上至下遍历整棵树,得到的与该区间相交的第一个中心点所在的结点处。如图3a中,区间o1同时与图中两个中心点相交(即与图3a中两条虚线相交),由于第二个中心点为上层结点,因而将o1如图3b所示保存在父结点中。如图2所示,区间树的定义范围存在最小最大端点值,考虑到数据空间的增长,因此仅考虑区间数据在Max方向的增加。给定一个新的区间,区间和最大值端点Max存在如图2所示关系:1)图2a表示区间包含于区间树定义范围内,2)图2b表示区间完全在区间树的定义范围外,3)图2c表示区间部分包含于区间树定义范围内,部分在定义范围外。对区间进行预处理有以下三种情况:1)对于图2a中所有区间,将它们全部保存在内区间集合中;2)对于图2b中所有区间,保存在外区间集合中;对于图2c中的区间集合,按区间树的定义范围的最大端点值Max,将区间分割为两个部分,将在定义范围内部的区间放入内区间集合中,定义范围外的区间放入外区间集合中。区间预处理后,所有的区间分为两个部分,内区间集合和外区间集合,对两种不同的集合分别采用内区间更新算法和外区间更新算法,对区间树进行更新操作,得到更新后的区间树。将更新的结点放在缓冲区中,最后调用更新算法,一次更新所有结点。具体算法如下所示:算法1.BulkUpdate(T,O′)输入:磁盘区间树索引T区间集合O′输出:更新后的磁盘区间树索引1.将集合O′分为{O′in,O′out本文档来自技高网...
磁盘区间树批量更新方法

【技术保护点】
磁盘区间树批量更新方法的总体特征是通过对区间数据做预处理,将区间集合划分为内区间集合和外区间集合两个部分。对于内区间集合遍历磁盘区间树,找到每个区间应插入的结点位置,对磁盘区间树的结点进行更新;而对于外区间集合,为该集合内所有区间新建立一棵区间树,将新区间树的结点依次插入到磁盘区间树中。这个技术大量减少了磁盘访问次数,降低I/O和CPU开销,提高了索引更新效率。其过程由以下三部分构成:(1)区间预处理:将需要实时更新的区间数据根据磁盘区间树的最大端点值,分为内区间集合和外区间集合;(2)内区间更新:由(1)中得到的内区间集合作为输入,遍历一次磁盘区间树,找到各个区间应插入的相应结点位置,以结点为单位对磁盘区间树进行更新操作;(3)外区间更新:由(1)中得到的外区间集合作为输入,为集合中的区间建立一棵新的平衡区间树,建树完成后,将新树中的所有结点依次插入到磁盘区间树中,得到更新后的磁盘区间树。

【技术特征摘要】
1.磁盘区间树批量更新方法的总体特征是通过对区间数据做预处理,将区间集合划分为内区间集合和外区间集合两个部分。对于内区间集合遍历磁盘区间树,找到每个区间应插入的结点位置,对磁盘区间树的结点进行更新;而对于外区间集合,为该集合内所有区间新建立一棵区间树,将新区间树的结点依次插入到磁盘区间树中。这个技术大量减少了磁盘访问次数,降低I/O和CPU开销,提高了索引更新效率。其过程由以下三部分构成:(1)区间预处理:将需要实时更新的区间数据根据磁盘区间树的最大端点值,分为内区间集合和外区间集合;(2)内区间更新:由(1)中得到的内区间集合作为输入,遍历一次磁盘区间树,找到各个区间应插入的相应结点位置,以结点为单位对磁盘区间树进行更新操作;(3)外区间更新:由(1)中得到的外区间集合作为输入,为集合中的区间建立一棵新的平衡区间树,建树完成后,将新树中的所有结点依次插入到磁盘区间树中,得到更新后的磁盘区间树。2.根据权利要求1所述的磁盘区间树批量更新方法,其特征在于所研究的对象区间树是保存在磁盘中的。区间更新操作的基本思想是对于需要更新的每个区间都能找到应该插入的结点位置,以结点为单位对磁盘区间树进行批量更新,从而避免将区间依次插入磁盘区间树中,减少磁盘读写次数,来提高索引更新效率。3.根据权利要求2所述的磁盘区间树批量更新方法,其特征在于该技术可以处理当所给区间的范围超过已有区间树的最大端点值的情况,步骤(1)中将区间数据根据磁盘区间树范围最大端点值,分为内区间集合和外区间集合。对于需要更新的区间数据存在三种情况,1)区间范围完全包含于磁盘区间树定义范围的区间,2)区间范围全部在磁盘区间树定义范围外的区间,3)区间部分在磁盘区间树范围内,部分在区间树范围外的区间。将1)中的区间全部放入内区间集合中,2)中区间全部放入外区间集合中,3)中的区间根据磁盘区间树端点最大值,分割为区间范围内和区间范围外两个部分,再分别加入内区间集合和外区间集合中。将划分后的两种集合用内区间更新和外区间更新两种不同的方法进行操作.4.根据权利要求3所述的磁盘区间树批量更新方法,其特征在于步骤(2)(3)中针对两种不同区间数据,即内区间集合和外区间集合,采用了不同的更新算法。(2)中更新算法仅通过遍历一次磁盘区间树,确定内区间集合中...

【专利技术属性】
技术研发人员:许建秋梁珺秀章益烔
申请(专利权)人:南京航空航天大学
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1