本发明专利技术公开了一种基于时间序列多版本图拓扑数据的存储方法,包括:图拓扑、增量数据块、时序索引树和图拓扑索引表;图拓扑用于存储指定版本的数据;增量数据块用于保存修改操作中产生的新的增量数据并写到存储介质中;时序索引树用于管理经过修改操作所产生的所有的版本的信息,树中每个结点都包含图拓扑索引表,图拓扑索引表用于记录图拓扑具体存在存储介质的具体位置;存储介质包括:索引树文件用于持久化储存内存中的时序索引树,索引树结点文件用于存储基于前一个版本基础上对图拓扑数据的增量数据的索引,图拓扑数据文件通过基线加增量的方式存储图拓扑数据;本方法能快速将指定版本的图拓扑关系装载到内存中并明显减少磁盘I/O。
A storage method of topological data based on time series multi version graph
【技术实现步骤摘要】
一种基于时间序列多版本图拓扑数据的存储方法
本专利技术涉及计算机软件领域,具体地,涉及一种基于时间序列多版本图拓扑数据的存储方法。
技术介绍
在图数据库中,如果以某个时刻的图拓扑数据当作基线数据,在此前提下,对图拓扑数据的修改会随着时间顺序而迭代出多个时间上连续的版本。但这些修改操作同时也包括基于同一个基线版本上的数据修改而产生的不同的新版本,从而出现一种逻辑上平行,时间上连续的情况。以知识图谱中的知识推理为例子,不同的推理规则对同一个图拓扑会产生多种不同的推理结果,同时会在这些结果之上又会进行新的推理。这将导致从某个真实时间开始,整个推理过程会以最初的图拓扑版本为根结点,随着时间的推移会根据不同的推理规则按照树的方式形成多条平行的推理线,从而产生如图1所示的多个树形版本。这些平行的推理线每条线内部从根结点开始时间上有序,但是每条推理线中的不同版本在真实时间上是交叉的,如图2所示。在现有的图拓扑存储引擎中,并没有专门根据这些逻辑上平行,时间上连续的树形结构进行存储。目前主流的图数据库中的存储引擎中,对于图1中多版本的图拓扑结构的存储,只是简单地按照时间顺序,通过基线加增量的方式存储到磁盘或装载到内存。当需要读取某个特定版本的时候,只能按照时间顺序进行读取和筛选,整个过程会产生大量无效地磁盘I/O。以图2为例子,在传统的图拓扑存储引擎中,如果要恢复图1中版本5的图拓扑数据,需要先将基线到版本5之间的图拓扑数据全部依次通过磁盘I/O读入到内存,然后再根据每次读到的增量数据控制信息来判断读取的数据是否是基于这条分支的数据,因此在读取过程中,即使版本4和3不属于这条分支,他们的增量数据依然会被读入到内存,从而造成大量不必要的磁盘I/O。
技术实现思路
针对上述问题,本专利技术的目的在于为这些逻辑上平行,时间上连续的多版本时间序列图拓扑数据提供了一种能快速将指定版本的图拓扑关系装载到内存中并明显减少磁盘I/O的方法。为实现上述专利技术目的,本专利技术提供了一种基于时间序列多版本图拓扑数据的存储方法,所述方法包括:对存储引擎框架进行设计,存储引擎在内存中包括:图拓扑、增量数据块、时序索引树和图拓扑索引表;图拓扑用于存储指定版本的数据;增量数据块用于保存修改操作中产生的新的增量数据并写到存储介质中;时序索引树用于管理经过修改操作所产生的所有的版本的信息,树中每个结点都包含图拓扑索引表,图拓扑索引表用于记录图拓扑具体存在存储介质的具体位置;存储介质包括:索引树文件、索引树结点文件和图拓扑数据文件,索引树文件用于持久化储存内存中的时序索引树,索引树结点文件用于存储基于前一个版本基础上对图拓扑数据的增量数据的索引,图拓扑数据文件通过基线加增量的方式存储图拓扑数据。其中,本方法通过时序索引树的方式来对这些基于时间序列多版本的树形结构构建索引,每一个索引树结点中都存储了对应版本的图拓扑数据的增量或全量的索引。当指定装载某一个版本时,只需要通过对时序索引树的查询,找到对应的索引文件,进而能快速准确的恢复出该版本的全量拓扑。其中,本方法为了解决在传统的图拓扑存储引擎在对图进行存储时,由于没有考虑过时间序列上多版本产生的树形结构的特点,而简单地采用了基线加增量的方式进行存储。其导致了在读取特定版本的图拓扑数据时候,产生了大量的不必要的磁盘I/O问题,通过时序索引树的方式来对这些逻辑上平行,时间上连续的图拓扑版本构建索引,从而减少了大量不必要的磁盘I/O。本方法中的图拓扑索引表主要分为增量索引表和全量索引表,增量索引表的作用主要是存储整个修改过程产生的增量数据的索引,对其版本恢复的时候,需要通过对时序索引树的递归遍历的方式恢复指定版本。全量索引表则是为了解决在修改过程中时序索引树的深度增加而导致图拓扑数据装载效率变低的问题。通过结点索引表合并的方式重新构建出当前版本下所有图拓扑数据的索引表来提高效率。优选的,图拓扑结构以时序索引树中特定版本的全局图为单位,或图拓扑结构为分布式时以全局图的一个分区为单位,每个版本通过版本号的方式来标识经过修改后的一个特定版本。优选的,在图内部图拓扑数据包括结点、边和拓扑关系三种数据结构,其中,结点和边是由固定长度数据结构组织成的线性结构,用来表示结点和边的信息;拓扑关系按照结点为单位的不定长数据结构组成,记录了结点的出入边,并在内部存储一个结点的拓扑的大小。优选的,时序索引树通过树的方式以各个分支共同的起始版本作为根结点,每一次修改完成均会导致树的生长。优选的,当需要导入某一个指定的版本时,包括以下2个步骤:a.从指定的版本开始向根结点进行回溯并压栈;b.当到达根结点以后,从根结点开始,依次出栈并按照基线加增量的方式恢复该版本的数据。优选的,在时序索引树中,每个结点存有一个图拓扑索引表,用于存储该结点版本的增量或全量数据在存储介质上的索引,以及相应的控制信息。优选的,控制信息包括整个图拓扑中结点个数和边的个数。优选的,图拓扑索引表结构包括4种类型的数据结构:版本信息:用于标识该版本的版本号和整个图拓扑的全局信息,其中版本包括其自身的版本号以及父结点的版本号;结点索引:用于在图拓扑中通过结点Id、结点所在的文件名和在文件中的偏移量定位到结点位置及读写;边索引:用于在图拓扑中对边进行定位和读取;拓扑索引:用于在图拓扑中用于对拓扑关系进行定位。优选的,当需要恢复某个具体的版本时,通过内存中的图拓扑索引表,在I/O过程中,通过把相同文件名中偏移量相近的数据结构按照块的方式进行I/O操作。优选的,当时序索引树中某一条分支生长的一定层次时,图拓扑索引表会存储该版本下全量的索引数据。其中,本专利技术的关键设计为时序索引树:将由同一个初始版本的图拓扑经过多次修改产生的时间上连续,逻辑上的平行分支,通过索引树的方式来构建每条分支上的迭代版本。索引树从根结点到每个叶子结点的路径就是一条分支线,路径中的每个结点从上倒下按照时间顺序连续递增。本专利技术提供的一个或多个技术方案,至少具有如下技术效果或优点:本专利技术提出了一种基于知识图谱的网状数据多维存储的方式,避免了现有存储引擎对特定版本的图拓扑关系恢复时产生的大量的不必要的文件I/O,提高了存储引擎对图拓扑数据读取的整体效率。本专利技术提出了一种能够根据在图拓扑数据结构修改过程中产生的逻辑上平行,时间上连续多版本图拓扑数据进行快速区分和定位的索引树,弥补有关方面的空缺。附图说明此处所说明的附图用来提供对本专利技术实施例的进一步理解,构成本申请的一部分,并不构成对本专利技术实施例的限定;图1是知识推理产生的多版本图拓扑树形结构示意图;图2是推理线中各个版本数据的在真实时间中的交叉存在示意图;图3是存储引擎框架示意图;图4是内存拓扑结构布局示意图;图5是指定版本通过时序索引树恢复流程示意图;图6是索引表结构示意图;图7是构建全量索引过程示意图。本文档来自技高网...
【技术保护点】
1.一种基于时间序列多版本图拓扑数据的存储方法,其特征在于,所述方法包括:/n对存储引擎框架进行设计,存储引擎在内存中包括:图拓扑、增量数据块、时序索引树和图拓扑索引表;图拓扑用于存储指定版本的数据;增量数据块用于保存修改操作中产生的新的增量数据并写到存储介质中;时序索引树用于管理经过修改操作所产生的所有的版本的信息,树中每个结点都包含图拓扑索引表,图拓扑索引表用于记录图拓扑具体存在存储介质的具体位置;存储介质包括:索引树文件、索引树结点文件和图拓扑数据文件,索引树文件用于持久化储存内存中的时序索引树,索引树结点文件用于存储基于前一个版本基础上对图拓扑数据的增量数据的索引,图拓扑数据文件通过基线加增量的方式存储图拓扑数据。/n
【技术特征摘要】
1.一种基于时间序列多版本图拓扑数据的存储方法,其特征在于,所述方法包括:
对存储引擎框架进行设计,存储引擎在内存中包括:图拓扑、增量数据块、时序索引树和图拓扑索引表;图拓扑用于存储指定版本的数据;增量数据块用于保存修改操作中产生的新的增量数据并写到存储介质中;时序索引树用于管理经过修改操作所产生的所有的版本的信息,树中每个结点都包含图拓扑索引表,图拓扑索引表用于记录图拓扑具体存在存储介质的具体位置;存储介质包括:索引树文件、索引树结点文件和图拓扑数据文件,索引树文件用于持久化储存内存中的时序索引树,索引树结点文件用于存储基于前一个版本基础上对图拓扑数据的增量数据的索引,图拓扑数据文件通过基线加增量的方式存储图拓扑数据。
2.根据权利要求1所述的基于时间序列多版本图拓扑数据的存储方法,其特征在于,图拓扑结构以时序索引树中特定版本的全局图为单位,或图拓扑结构为分布式时以全局图的一个分区为单位,每个版本通过版本号的方式来标识经过修改后的一个特定版本。
3.根据权利要求2所述的基于时间序列多版本图拓扑数据的存储方法,其特征在于,在图内部图拓扑数据包括结点、边和拓扑关系三种数据结构,其中,结点和边是由固定长度数据结构组织成的线性结构,用来表示结点和边的信息;拓扑关系按照结点为单位的不定长数据结构组成,记录了结点的出入边,并在内部存储一个结点的拓扑的大小。
4.根据权利要求1所述的基于时间序列多版本图拓扑数据的存储方法,其特征在于,时序索引树通过树的方式以各个分支共同的起始版本作为根结点,每一次修改完成均会导致树的生长。
5.根据权利要求4所述的基于时间序列多版本图拓扑...
【专利技术属性】
技术研发人员:段翰聪,刘长红,张翔宇,闵革勇,李陈扬,
申请(专利权)人:电子科技大学,
类型:发明
国别省市:四川;51
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。