一种基于并行的图数据索引的持久化方法技术

技术编号:31084548 阅读:16 留言:0更新日期:2021-12-01 12:35
本发明专利技术公开了一种基于并行的图数据索引的持久化方法,包括以下步骤:(1)检测硬盘指定位置是否存在索引文件,如果不存在索引文件将重新创建一个空的索引文件;如果存在索引文件,读取该索引文件并进行索引的重构;(2)计算内存连续可用空间的大小以及索引结构所占空间的大小,并初始化索引结构;(3)采用内存映射方法开辟一块连续的内存,初始化索引头,将已存在的索引文件映射入内存;(4)向计算机系统申请多个线程,通过多线程处理,完成索引结构的持久化。本发明专利技术实现了图数据查询索引的并行持久化方法,提高了索引持久化的效率,同时本发明专利技术适用于多种多路查询树,具有良好的扩展性。性。性。

【技术实现步骤摘要】
一种基于并行的图数据索引的持久化方法


[0001]本专利技术涉及图数据索引的持久化方法,尤其涉及一种基于并行的图数据索引的持久化方法。

技术介绍

[0002]随着数据库技术的发展和成熟,以及互联网通讯的应用及其衍生软件的发展,数据的存储量也变得越来越多。社交网络分析、Web语义分析、生物信息网络分析以及交通导航等新兴应用也在快速增长,不同领域出现了规模庞大、内部结构复杂、查询需求多样的大图数据。在对这些图数据进行查询时,直接进行全局搜索会导致大量的时间开销,而构建一个合适的索引结构,存储图数据的相关信息,通过索引中相关的辅助信息,即可提高查询图数据的效率。
[0003]目前,许多关于图数据索引的技术被提出,在各种各样的场景下也有着高效的索引结构,这也导致索引结构的主要功能各不相同,有些索引在预处理阶段要计算强连通分量,有些则是记录下顶点之间的关系,这也就导致了一些问题。如当主机的硬件设备差距过大时,内存容量一般的主机将无法容纳空间占用较大的索引结构,限于内存空间的问题,索引技术存在着空间受限的特点。当遭遇断电等不可避免地自然灾害时,内存的不稳定性会导致索引丢失,使得存在内存的索引具有不稳定性的特点。同时,在计算机进行重启、软件进行重启时,内存会自动清理、回收,存在于内存的索引结构会一并丢失,使得内存的索引具有不可重用性的特点。
[0004]内存容量相对于硬盘等外存设备往往差距较大,因此当索引结构占用空间较大时,将索引结构置于外存中是一种有效的解决方案,可以保证索引结构不受空间限制,即使数据规模增大,将一部分索引存放在外存就能够缓解内存的压力。由于内存的易失性,使得遭遇不可避免地自然灾害时由于断电导致数据容易丢失,将数据结构持久化,在遇到不可控的情况时,才不会因内存的易失性而造成财产损失,而在后续进行索引结构重构,也不用重新建立索引,从现存的索引文件中直接读取索引结构,节省了构建索引结构的时间,同时保证了数据结构的完整性。
[0005]B树作为一种基于二分法的策略提高数据查找速度的常见索引结构,由于其能够充分利用磁盘分块存储的原理所带来的优势,和与它相似的B+树经常用作数据库查询索引。同时,R树作为树状数据结构,与上述索引同为多路查找树,在搜索的过程中有着许多相似点,所以对其中一个索引成功的进行并行持久化,其他的索引也能够进行并行持久化。随着计算机硬件技术的发展,越来越多的企业级服务器选择多CPU的计算机,现有的主存索引技术均是单核心串行的技术,并不能适用并行计算的时代需求,对于多核心高性能服务器而言,这种技术会造成极大的计算资源浪费。

技术实现思路

[0006]专利技术目的:本专利技术的目的是提供一种能够实现主存索引持久化适用多核并行系统
的基于并行的图数据索引的持久化方法。
[0007]技术方案:本专利技术的图数据索引的持久化方法,包括以下步骤:
[0008](1)检测硬盘指定位置是否存在索引文件,如果不存在索引文件将重新创建一个空的索引文件;如果存在索引文件,读取该索引文件并进行索引的重构;
[0009](2)计算内存连续可用空间的大小以及索引结构所占空间的大小,并初始化索引结构;
[0010](3)采用内存映射方法开辟一块连续的内存,初始化索引头,将已存在的索引文件映射入内存;
[0011](4)向计算机系统申请多个线程,通过多线程处理,完成索引结构的持久化。
[0012]进一步,所述步骤(1)中,实现索引的重构步骤如下:
[0013](11)计算内存连续可用空间的大小,采用内存映射方法,将索引文件映射到连续的内存区域中;
[0014](12)在映射内存中读取索引文件的索引头,获取索引结构相关信息,包括:索引大小,叶子节点链表头和叶子节点链表尾的偏移量,以及根节点信息,并初始化索引结构;
[0015](13)根据索引文件内容,进行索引重构。
[0016]进一步,所述步骤(13)中,根据索引文件中存放的节点类型,分别进行重构:
[0017](131)叶子节点:读取叶子节点的两个子指针的偏移量和叶子节点的键值,将偏移量与索引头地址相加完成叶子节点的重构;
[0018](132)中间节点:读取中间节点两个子指针的偏移量和中间节点的键值信息,将偏移量与索引头地址相加完成叶子节点的重构。
[0019]进一步,所述步骤(2)中,计算索引结构所占空间的大小的步骤如下:
[0020](21)计算叶子节点空间占用为S(Y);
[0021](22)计算中间节点的空间占用为S(X);
[0022](23)计算索引结构占用内存空间大小为S=S(Y)+S(X);
[0023](24)为确保索引在后续更新时仍有空间容纳新节点,索引头应记录的索引大小F为实际索引结构占用内存空间的k倍,其中k>1,则F=k*S。
[0024]进一步,所述步骤(4)中,多线程处理的步骤包括:
[0025](41)记录索引结构起始地址t;
[0026](42)申请n个线程,为每个线程分配一个数据缓存区m
n
和记录缓存区p
n
,其中,数据缓存区m
n
用来存放待被持久化的节点,记录缓存区p
n
存放已经被持久化节点的记录信息结构体,该记录信息结构体用来存放:节点的起始地址相对索引结构起始地址t的偏移量、终止地址相对索引结构起始地址t的偏移量、节点类型、键值、子指针相对于索引结构起始地址t的偏移量;
[0027](43)将索引结构的根节点及其子节点分别加载到每个线程的数据缓存区m
n
中;
[0028](44)每个线程对自身的数据缓冲区和记录缓存区进行维护,对每个线程缓存区内的数据进行遍历,记录下每个节点的键值,起始地址、终止地址和子指针分别相对于索引结构起始地址t的偏移量,将所有信息存储到记录缓存区后,遍历该节点的子节点,并根据负载平衡策略将子节点加载到指定的数据缓存区中,同时,保存记录缓存区的数据,将根据设定的K值,写入到共享内存中;其中,K代表全局设定的变量且作为缓存区的存储阈值;
[0029](45)计算机系统对每个线程的工作量予以监督;每个线程遍历一个节点,每个线程将自身工作量正反馈于记录线程工作数的M,其中,M是用来记录每个线程当前遍历的节点数且实时变化;在步骤(44)中每当找到新的子节点,将会找到线程工作数M最小的线程,将新的任务加载到相应的数据缓冲区中;
[0030](46)重复执行步骤(44)和(45),直到所有节点都被访问过,且所有信息成功的记录到了共享内存中。
[0031]本专利技术与现有技术相比,其显著效果如下:1、本专利技术从硬件方面考虑了索引结构持久化的效率,采用并行技术,将索引中的节点按照负载平衡策略分配到不同的线程中,多个线程同时进行操作,充分利用了硬件资源,极大程度的提高了索引结构持久化的效率,同时将索引结构从具有易失性的内存持久化到主存中,避免由本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于并行的图数据索引的持久化方法,其特征在于,包括以下步骤:(1)检测硬盘指定位置是否存在索引文件,如果不存在索引文件将重新创建一个空的索引文件;如果存在索引文件,读取该索引文件并进行索引的重构;(2)计算内存连续可用空间的大小以及索引结构所占空间的大小,并初始化索引结构;(3)采用内存映射方法开辟一块连续的内存,初始化索引头,将已存在的索引文件映射入内存;(4)向计算机系统申请多个线程,通过多线程处理,完成索引结构的持久化。2.根据权利要求1所述的基于并行的图数据索引的持久化方法,其特征在于,所述步骤(1)中,实现索引的重构步骤如下:(11)计算内存连续可用空间的大小,采用内存映射方法,将索引文件映射到连续的内存区域中;(12)在映射内存中读取索引文件的索引头,获取索引结构相关信息,包括:索引大小,叶子节点链表头和叶子节点链表尾的偏移量,以及根节点信息,并初始化索引结构;(13)根据索引文件内容,进行索引重构。3.根据权利要求2所述的基于并行的图数据索引的持久化方法,其特征在于,所述步骤(13)中,根据索引文件中存放的节点类型,分别进行重构:(131)叶子节点:读取叶子节点的两个子指针的偏移量和叶子节点的键值,将偏移量与索引头地址相加完成叶子节点的重构;(132)中间节点:读取中间节点两个子指针的偏移量和中间节点的键值信息,将偏移量与索引头地址相加完成叶子节点的重构。4.根据权利要求1所述的基于并行的图数据索引的持久化方法,其特征在于,所述步骤(2)中,计算索引结构所占空间的大小的步骤如下:(21)计算叶子节点空间占用为S(Y);(22)计算中间节点的空间占用为S(X);(23)计算索引结构占用内存空间大小为S=S(Y)+S(X);(24)为确保索引在后续更新时仍有空间容纳新节点,索引头应记录的索引大小F为实际索引结...

【专利技术属性】
技术研发人员:秦小麟迟贺宇朱润泽李瑭费珂梁吉
申请(专利权)人:南京航空航天大学
类型:发明
国别省市:

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

1