CN113449153A - 索引构建方法、装置、计算机设备和存储介质 - Google Patents
索引构建方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN113449153A CN113449153A CN202110720858.5A CN202110720858A CN113449153A CN 113449153 A CN113449153 A CN 113449153A CN 202110720858 A CN202110720858 A CN 202110720858A CN 113449153 A CN113449153 A CN 113449153A
- Authority
- CN
- China
- Prior art keywords
- dag
- graph
- boundary
- partition
- hop
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种索引构建方法、装置、计算机设备和存储介质。所述方法包括:获取DAG图和DAG图的分区结果,将DAG图按照分区结果存储至预设分布式图计算系统,得到各DAG分区的图数据结构,对各DAG分区中的顶点进行排序,并行构建各DAG分区的内部点的2‑hop索引和边界点的2‑hop索引,重构各DAG分区的边界点的之间路径,根据各DAG分区的图数据结构和各DAG分区的边界点之间的路径,构建边界图,再基于边界图重构边界点的2‑hop索引,并将重构后的边界点的2‑hop索引划分至各边界点所在的DAG分区。采用本方法构建的索引进行分布式批量可达性查询,能够提高查询效率。
Description
技术领域
本申请涉及计算机分布式图计算技术领域,特别是涉及一种索引构建方法、装置、计算机设备和存储介质。
背景技术
随着图数据的规模的爆炸式增长,单个计算节点已经难以满足批量可达性查询的效率和内存需求。为了解决上述问题,有必要设计适合于分布式多机计算环境下的图计算技术。
在分布式计算环境下,图数据需要被划分成多个部分,继而被存储到不同的计算节点上。现有的最先进方法主要是计算了一个边界图索引来优化分布式批量可达性查询。通过在每个计算节点上都部署边界图索引,该方法可以有效地减少所有不同计算节点之间的消息交换次数,继而降低通信开销。
然而,上述的方法,通信开销极大,在查询过程中只能执行单向搜索,继而无法充分发挥并行计算的性能。综上所述,现有的分布式批量可达性查询的方法存在查询效率不高的问题。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高查询效率的索引构建方法、装置、计算机设备和存储介质。
一种索引构建方法,所述方法包括:
获取DAG(Directed Acyclic Graph,有向无环图)图以及DAG图的分区结果,将DAG图按照分区结果存储至预设分布式图计算系统,得到各DAG分区的图数据结构;
对各DAG分区中的顶点进行排序,得到各顶点的排序值;
根据各DAG分区的图数据结构、顶点的排序值以及预设分布式图计算系统的计算模型,并行构建各DAG分区的内部点的2-hop索引和边界点的2-hop索引;
基于边界点的2-hop索引,重构各DAG分区的边界点之间的路径;
根据各DAG分区的图数据结构和各DAG分区的边界点之间的路径,构建边界图;
基于边界图,重构边界点的2-hop索引、并将重构后的边界点的2-hop索引划分至各边界点所在的DAG分区。
在一个实施例中,DAG图的分区结果基于以下方式得到:
获取初始图数据和计算节点数量;
将初始图数据转换为DAG图;
根据计算节点数量和预设分区算法,获取DAG图的分区结果。
在一个实施例中,图数据结构包括顶点的度值和身份编号;对各DAG分区中的顶点进行排序,得到各顶点的排序值包括:
确定各DAG分区中顶点的顶点类型;
根据顶点类型、度值以及身份编号,对各DAG分区中的顶点进行排序,得到各顶点的排序值。
在一个实施例中,根据顶点类型、度值以及身份编号,对各DAG分区中的顶点进行排序,得到各顶点的排序值包括:
根据顶点类型、度值以及身份编号,按照预设的由顶点类型、度值以及身份编号构成的优先级顺序,对各DAG分区中的顶点进行排序,得到各顶点的排序值。
在一个实施例中,基于边界图,重构边界点的2-hop索引、并将重构后的边界点的2-hop索引划分至各边界点所在的DAG分区包括:
在单个DAG分区内基于边界图,重构边界点的2-hop索引、并将重构后的边界点的2-hop索引划分至各边界点所在的DAG分区;
或,在各个DAG分区内基于边界图,重构边界点的2-hop索引,删除各DAG分区中不属于自身分区的重构后的边界点的2-hop。
在一个实施例中,基于边界图,重构边界点的2-hop索引包括:
基于边界图,结合边界图对应的图数据结构、各顶点的排序值以及预分布式图计算系统的计算模型,重构边界点的2-hop索引。
在一个实施例中,基于边界图,重构边界点的2-hop索引、并将重构后的边界点的2-hop索引划分至各边界点所在的DAG分区之后,还包括:
整合、并记录内部点的2-hop索引和重构后的边界点的2-hop索引。
一种索引构建装置,所述装置包括:
分区结果获取模块,用于获取DAG图以及DAG图的分区结果,将DAG图按照分区结果存储至预设分布式图计算系统,得到各DAG分区的图数据结构;
顶点排序模块,用于对各DAG分区中的顶点进行排序,得到各顶点的排序值;
索引并行构建模块,用于根据各DAG分区的图数据结构、顶点的排序值以及预设分布式图计算系统的计算模型,并行构建各DAG分区对应的内部点的2-hop索引和边界点的2-hop索引;
路径重构模块,用于基于边界点的2-hop索引,重构各DAG分区的边界点之间的路径;
边界图构建模块,用于根据各DAG分区的图数据结构和各DAG分区的边界点之间的路径,构建边界图;
边界点索引重构模块,用于基于边界图,重构边界点的2-hop索引、并将重构后的边界点的2-hop索引划分至各边界点所在的DAG分区。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取DAG图以及DAG图的分区结果,将DAG图按照分区结果存储至预设分布式图计算系统,得到各DAG分区的图数据结构;
对各DAG分区中的顶点进行排序,得到各顶点的排序值;
根据各DAG分区的图数据结构、顶点的排序值以及预设分布式图计算系统的计算模型,并行构建各DAG分区的内部点的2-hop索引和边界点的2-hop索引;
基于边界点的2-hop索引,重构各DAG分区的边界点之间的路径;
根据各DAG分区的图数据结构和各DAG分区的边界点之间的路径,构建边界图;
基于边界图,重构边界点的2-hop索引、并将重构后的边界点的2-hop索引划分至各边界点所在的DAG分区。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取DAG图以及DAG图的分区结果,将DAG图按照分区结果存储至预设分布式图计算系统,得到各DAG分区的图数据结构;
对各DAG分区中的顶点进行排序,得到各顶点的排序值;
根据各DAG分区的图数据结构、顶点的排序值以及预设分布式图计算系统的计算模型,并行构建各DAG分区的内部点的2-hop索引和边界点的2-hop索引;
基于边界点的2-hop索引,重构各DAG分区的边界点之间的路径;
根据各DAG分区的图数据结构和各DAG分区的边界点之间的路径,构建边界图;
基于边界图,重构边界点的2-hop索引、并将重构后的边界点的2-hop索引划分至各边界点所在的DAG分区。
上述索引构建方法、装置、计算机设备和存储介质,根据各DAG分区的图数据结构、各顶点的排序值以及预分布式图计算系统的计算模型,并行构建各DAG分区中内部点的2-hop索引和边界点的2-hop索引,能执行更高程度的并行查询,极大地减少各DAG分区的计算量,且,通过重构边界点的路径,加速边界点的2-hop索引的重构,使得任意给定的查询任务都只需要在不同分区之间进行单次信息交换。综上所述,采用本方法构建的索引进行分布式批量可达性查询,能够提高查询效率。
附图说明
图1为一个实施例中索引构建方法的应用环境图;
图2为一个实施例中索引构建方法的流程示意图;
图3-1为一个实施例中DAG的示意图;
图3-2为一个实施例中分区结果的示意图;
图3-3为一个实施例中各个分区的2-hop索引;
图3-4为一个实施例中边界图的示意图;
图3-5为一个实施例中边界图的2-hop索引;
图4-1为一个实施例中采用本申请与现有的分布式批量查询方法和并行顶点标签算法进行分布式批量可达性查询所花费的平均查询时间的对比图;
图4-2为一个实施例中采用本申请与现有的分布式批量查询方法和并行顶点标签算法进行分布式批量可达性查询所花费的通信开销的对比图;
图5为另一个实施例中索引构建方法的流程示意图;
图6为一个实施例中索引构建装置的结构框图;
图7为另一个实施例中索引构建装置的结构框图;
图8为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的索引构建方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与部署有Blogel系统的服务器104进行通信,服务器104与分布式的多台计算节点106进行网络通信,其中,服务器104预存有初始图数据和计算节点数量。可以是用户通过终端102发送索引构建消息至服务器104,服务器104响应该索引构建消息,获取DAG图以及DAG图的分区结果,将DAG图按照分区结果存储至预设分布式图计算系统,得到各DAG分区(以下亦可简称为分区)的图数据结构,对各DAG分区中的顶点进行排序,得到各顶点的排序值,根据各DAG分区的图数据结构、顶点的排序值以及预设分布式图计算系统的计算模型,并行构建各DAG分区的内部点的2-hop索引和边界点的2-hop索引,基于边界点的2-hop索引,重构各DAG分区的边界点之间的路径,根据各DAG分区的图数据结构和各DAG分区的边界点之间的路径,构建边界图,基于边界图,重构边界点的2-hop索引、并将重构后的边界点的2-hop索引划分至各边界点所在的DAG分区。至此,完成了完整的2-hop索引(包括内部点的2-hop索引和边界点的2-hop索引)的构建。其中,终端102和计算节点106可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,计算节点106也可以是服务器,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种索引构建方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:
步骤202,获取DAG图以及DAG图的分区结果,将DAG图按照分区结果存储至预设分布式图计算系统,得到各DAG分区的图数据结构。
图是由边和顶点组成,初始图数据是指包含顶点和边的集合,初始图数据以邻接表的形式存储。预设分布式图计算系统以分布式图计算系统Blogel为例,图数据结构即为DAG图对应的数据结构,其为一种顶点中心的数据结构,在该图数据结构中,每个顶点被构建成为一个类,并记录相关信息,如度(deg)、顶点的身份编号可记为id、出度邻接点集合Nout、入度邻接点集合Nin以及相对应的分区等等。本实施例中,DAG图是由初始图数据转换得到的,DAG图的示意图可参见图3-1。计算节点的数量直接影响到分区数量的选择,通常分区数量是节点数量的整数倍。由于服务器内部包含多个核,因此可划分得到多个DAG分区,具体的DAG图的分区结果可参见图3-2。
步骤204,对各DAG分区中的顶点进行排序,得到各顶点的排序值。
将DAG图部署到分布式图计算系统Blogel后,可对各DAG分区顶点进行排序,得到顶点排序值,以便根据排序值进行索引的构建。
在一个实施例中,如图3所示,对各DAG分区中的顶点进行排序,得到各顶点的排序值包括:确定各DAG分区中顶点的顶点类型,根据顶点类型、度值以及身份编号,对各DAG分区中的顶点进行排序,得到各顶点的排序值。
得到DAG图的数据结构后,判断每个顶点的类型,并使用fb值来表示其所属类型;其中,fb=0表示该顶点属于内部点,即该顶点只和自身分区的点存在连接边;fb=1表示该点属于边界点,即该顶点至少存在一条和其余分区顶点的相连边。可根据顶点类型fb,以及图数据结构中的度值(deg)以及顶点的id,来对每个分区内的顶点进行排序,得到排序值,排序值可用r(n)表示,n表示顶点n。本实施例中,根据顶点类型、度值以及身份编号,对分区中顶点进行排序,能够快速且合理地完成顶点的排序。
步骤206,根据各DAG分区的图数据结构、各顶点的排序值以及预分布式图计算系统的计算模型,并行构建各DAG分区的内部点的2-hop索引和边界点的2-hop索引。
2-hop索引亦可称为2-hop标签索引,2-hop索引通常应用在图可达性查询中。DAG分区中的顶点按照类型可划分为内部点和边界点,本实施例中,根据各DAG分区的图数据结构、各顶点的排序值以及Blogel系统的计算模型,并行地构建各个DAG分区内部的2-hop索引,包括内部点的2-hop索引和边界点的2-hop索引。本实施例中,各个DAG分区内部的2-hop索引可具体可参见图3-3。构建好的2-hop索引将被存储到各个顶点上,且该2-hop索引根据连接边的方向定义为Lin()和Lout()。对于任意顶点v,Lin(v)记录所有可到达v的顶点,而Lout(v)记录所有v可到达的顶点。
具体的,构建各个DAG分区内部的2-hop索引是以顶点为执行核心,并且在所有DAG分区中并行执行,可以包括以下步骤:
(1-1)顶点v首先将自身的id添加到Lin(v)和Lout(v)中;
(1-2)顶点v将新添加进Lin(v)中的信息发送到Nout(v)中的邻居点;
(1-3)顶点v将新添加进Lout(v)中的信息发送到Nin(v)中的邻居点;
(1-4)顶点v接收来自Nout(v)中顶点发送的信息w,用于更新Lout(v);
(1-5)顶点v接收来自Nin(v)中顶点发送的信息u,用于更新Lin(v);
(1-6)若每个顶点都没有接收新的信息,则表明所有分区已构建完索引,程序结束;否则进入步骤(1-2);
具体地,步骤(1-4)包括以下子步骤:
(1-4-1)如果r(w)<r(v),过程结束;否则转入步骤(1-4-2);
具体地,步骤(1-5)包括以下子步骤
(1-5-1)如果r(u)<r(v),过程结束;否则转入步骤(1-5-2);
步骤208,基于边界点的2-hop索引,重构各DAG分区的边界点的之间路径。
实际应用中,步骤206中,同步构建内部点的2-hop索引和边界点的2-hop索引后,此时构建出的边界点的2-hop索引仍不理想,需要对其进一步完善。本实施例中,可以先重构相同分区的边界点之间路径,来重构边界点的2-hop索引。此时,清空前序并行构建好的边界点的2-hop索引。
具体的,重构边界点之间的路径可以包括以下步骤:
(2-1)设置计数器cnt=1;
(2-2)根据第cnt个边界顶点vcnt和Lin(vcnt)中的元素来重构路径;
(2-3)根据第cnt个边界顶点vcnt和Lout(vcnt)中的元素来重构路径;
(2-4)若cnt小于分区内的边界点的总数,cnt=cnt+1;否则,结束过程。
具体地,步骤(2-2)包括以下子步骤:
(2-2-1)设置计数器n=1;
(2-2-2)根据vcnt和Lin(vcnt)中的第n个元素vn,确定Lin(vcnt)和Lout(vn)的交集M;
(2-2-3)如果M中存在元素u满足r(u)>max{r(vcnt),r(vn)},进入步骤(2-2-5)。否则进入步骤(2-2-4);
(2-2-4)添加从vcnt到vn的路径;
(2-2-5)如果n小于Lin(vcnt)中记录的点的数量,则n=n+1;否则,终止过程。
具体地,步骤(2-3)包括以下子步骤:
(2-3-1)设置计数器n=1;
(2-3-2)根据vcnt和Lout(vcnt)中的第n个元素vn,确定Lout(vcnt)和Lin(vn)的交集M;
(2-3-3)如果M中存在元素u满足r(u)>max{r(vcnt),r(vn)},进入步骤(2-3-5);否则,进入步骤(2-3-4);
(2-3-4)添加从vn到vcnt的路径;
(2-3-5)若n小于Lout(vcnt)中记录的点的数量,则n=n+1。否则,终止过程。
步骤210,根据各DAG分区的图数据结构和分区内部边界点的之间路径,构建边界图、并将边界图复写至分区。
边界图主要由所有的边界点,不同分区之间边界点的连接边,相同分区的边界点的重构路径三部分组成。其中,边界点和连接边存在于图数据结构中。重建完边界图后,将边界图复写至分区即存储到分区。本实施例中,构建的边界图可参见图3-4。
步骤212,基于边界图,重构边界点的2-hop索引、并将重构后的边界点的2-hop索引划分至各边界点所在的DAG分区。
构建好边界图之后,便可进一步按照步骤206构建2-hop索引的方式,构建边界图中边界点的2-hop索引,以重构边界点的2-hop索引。然后,将构建好的边界点的2-hop索引重新划分至各边界点所在的DAG分区。至此,索引构建过程结束。本实施例中,构建出的边界点的2-hop索引可参见图3-5。
上述索引构建方法中,根据各DAG分区的图数据结构、各顶点的排序值以及预分布式图计算系统的计算模型,并行构建各DAG分区中内部点的2-hop索引和边界点的2-hop索引,能执行更高程度的并行查询,极大地减少各DAG分区的计算量,且,通过重构边界点的路径,加速边界点的2-hop索引的重构,使得任意给定的查询任务都只需要在不同分区之间进行单次信息交换。综上所述,采用本方法构建的索引进行分布式批量可达性查询,能够提高查询效率。进一步的,采用本方法能够减少通信开销。
在实际应用中,开发人员分别将本申请提供的索引构建方法(ML2hop)与现有的分布式批量查询方法(Distributed Set Reachability,DSR)以及并行顶点标签算法(Parallel Vertex Label,PVL)进行分布式批量可达性查询,比较各自的平均查询用时和通信开销。其平均查询时间比较结果如图4-1所示,通信开销对比如图4-2所示。从图4-1和图4-2可看出,采用本申请提供的索引构建方法进行分布式批量可达性查询,查询用时更短,通信开销更小。
在一个实施例中,如图5所示,212之后,还包括:步骤214,整合、并记录内部点的2-hop索引和重构后的边界点的2-hop索引。
在重构边界点的2-hop索引之后,结合步骤206中构建好的内部点的2-hop索引,即得到完整的2-hop索引结构。可以整合边界点的2-hop索引和内部点的2-hop索引,然后将其写入文件中进行存储记录,以便后续进行图可达性查询时,能够直接使用构建好的2-hop索引结构,无需再次构建。
在一个实施例中,获取DAG图的分区结果包括:获取初始图数据和计算节点数量,初始图数据转换为DAG图,根据计算节点数量和预设分区算法,获取DAG图的分区结果。
在获取初始图数据后,需要将初始图数据转换成DAG图,具体的,可以是将强连通分量上的所有点整合成一个超点,再将强连通分量上的所有与外界向量的边都添加到超点上,已完成初始图数据到DAG图的转换。针对转换后的DAG图,可通过现有的Metis分区方法(或者ParMetis分区方法)以及计算节点数量来为图中的每个顶点确定相应的分区(Partition),得到分区结果。
在一个实施例中,根据顶点类型、度值以及身份编号,对各DAG分区中的顶点进行排序,得到各顶点的排序值包括:根据顶点类型、度值以及身份编号,按照预设的由顶点类型、度值以及身份编号构成的优先级顺序,对各DAG分区中的顶点进行排序,得到各顶点的排序值。
具体实施时,对于任意两个顶点u,v进行排序可以是:首先,比较两顶点的顶点类型即比较fb值,由于边界点的fb值大于内部点的fb值,因此,边界点的排序值大于内部点;若顶点的顶点类型相同,则比较顶点的度值,度值越大,则排序值越大,排列越靠前;若顶点的顶点类型相同且度值也相同,则比较顶点的id,id值越大,则排序值越大,排列越靠前。简单来说,对顶点进行排序包括以下步骤:
(3-1)若fbu>fbv,则返回r(u)>r(v),否则转入步骤(3-2);
(3-2)若fbu=fbv,degu>degv,则返回r(u)>r(v),否则转入步骤(3-3);
(3-3)若fbu=fbv,degu=degv且idu>idv,则返回r(u)>r(v)。
本实施例中,按照顶点类型、度值以及身份编号构成的优先级顺序对顶点进行排序,能够全面且合理的完成顶点的排序。
在一个实施例中,基于边界图,重构边界点的2-hop索引、并将重构后的边界点的2-hop索引划分至各边界点所在的DAG分区包括:在单个DAG分区内基于边界图,重构边界点的2-hop索引、并将重构后的边界点的2-hop索引划分至各边界点所在的DAG分区;或,在各个DAG分区内基于边界图,重构边界点的2-hop索引,删除各DAG分区中不属于自身分区的重构后的边界点的2-hop。
具体实施时,边界图的复写(即存储)可以采取两种方式。方式一,将边界图存储至一个分区中,然后在该分区内重构边界点的2-hop索引、并将重构后的边界点的2-hop索引划分至各边界点所在的DAG分区,即将边界点2-hop索引分配至对应的各DAG分区。方式二,将边界图存储至各个分区,则每个分区都记录有边界图,同时在各个分区执行基于边界图,重构边界点的2-hop索引的操作,得到包含所有分区的边界点的2-hop索引,然后,删除各DAG分区中不属于自身分区的边界点的2-hop索引,只保留自身分区的边界点的2-hop索引。上述两种方式具体可视情况而定,在此不做限定。本实施例中,通过上述两种分配边界点的2-hop索引的方式,能够提高适用性。
在一个实施例中,基于边界图,重构边界点的2-hop索引包括:基于边界图,结合边界图对应的图数据结构、各顶点的排序值以及预分布式图计算系统的计算模型,构建边界点的2-hop索引。
构建边界图的2-hop索引与步骤206构建分区的2-hop索引的方式相同,只是图数据结构发生变化,步骤206中,是基于局部的各DAG分区的图数据结构、结合各顶点的排序值以及预分布式图计算系统的计算模型构建各DAG分区的2-hop索引。而本实施例中,是从全局角度,基于边界图(包含不同分区)的图数据结构,构建所有边界点的2-hop索引。
应该理解的是,虽然上述实施例涉及的各流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,上述实施例涉及的各流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图6所示,提供了一种索引构建装置,包括:分区结果获取模块510、顶点排序模块520、索引并行构建模530、路径重构模块540、边界图构建模块550和边界点索引重构模块560,其中:
分区结果获取模块510,用于获取DAG图以及DAG图的分区结果,将DAG图按照分区结果存储至预设分布式图计算系统,得到各DAG分区的图数据结构。
顶点排序模块520,用于对各DAG分区中的顶点进行排序,得到各顶点的排序值。
索引并行构建模530,用于根据各DAG分区的图数据结构、顶点的排序值以及预设分布式图计算系统的计算模型,并行构建各DAG分区的内部点的2-hop索引和边界点的2-hop索引。
路径重构模块540,用于基于边界点的2-hop索引,重构各DAG分区的边界点的之间路径。
边界图构建模块550,用于根据各DAG分区的图数据结构和各DAG分区的边界点之间的路径,构建边界图。
边界点索引重构模块560,用于基于边界图,重构边界点的2-hop索引、并将重构后的边界点的2-hop索引划分至各边界点所在的DAG分区。
上述索引构建装置,根据各DAG分区的图数据结构、各顶点的排序值以及预分布式图计算系统的计算模型,并行构建各DAG分区中内部点的2-hop索引和边界点的2-hop索引,能执行更高程度的并行查询,极大地减少各DAG分区的计算量,且,通过重构边界点的路径,加速边界点的2-hop索引的重构,使得任意给定的查询任务都只需要在不同分区之间进行单次信息交换。综上所述,采用本装置构建的索引进行分布式批量可达性查询,能够提高查询效率。
在一个实施例中,分区结果获取模块510还用于获取初始图数据和计算节点数量,将初始图数据转换为DAG图,根据计算节点数量和预设分区算法,获取DAG图的分区结果。
在一个实施例中,顶点排序模块520还用于确定各DAG分区中顶点的顶点类型,根据顶点类型、度值以及身份编号,对各DAG分区中的顶点进行排序,得到各顶点的排序值。
在一个实施例中,顶点排序模块520还用于根据顶点类型、度值以及身份编号,按照预设的由顶点类型、度值以及身份编号构成的优先级顺序,对各DAG分区中的顶点进行排序,得到各顶点的排序值。
在一个实施例中,边界图构建模块550还用于在单个DAG分区内基于边界图,重构边界点的2-hop索引、并将重构后的边界点的2-hop索引划分至各边界点所在的DAG分区;或,在各个DAG分区内基于边界图,重构边界点的2-hop索引,删除各DAG分区中不属于自身分区的重构后的边界点的2-hop。
在一个实施例中,边界点索引重构模块560还用于基于边界图,结合边界图对应的图数据结构、各顶点的排序值以及预分布式图计算系统的计算模型,重构边界点的2-hop索引。
如图7所示,在一个实施例中,装置还包括索引整合存储模块570,用于整合、并记录内部点的2-hop索引和重构后的边界点的2-hop索引。
关于索引构建装置的具体实施例可以参见上文中对于索引构建方法的实施例,在此不再赘述。上述索引构建装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图8所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储初始图数据和计算节点数量等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种索引构建方法。
本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述索引构建方法中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述索引构建方法中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种索引构建方法,其特征在于,所述方法包括:
获取DAG图以及DAG图的分区结果,将所述DAG图按照所述分区结果存储至预设分布式图计算系统,得到各DAG分区的图数据结构;
对各DAG分区中的顶点进行排序,得到各顶点的排序值;
根据所述各DAG分区的图数据结构、所述顶点的排序值以及预设分布式图计算系统的计算模型,并行构建各所述DAG分区的内部点的2-hop索引和边界点的2-hop索引;
基于所述边界点的2-hop索引,重构各DAG分区的边界点之间的路径;
根据所述各DAG分区的图数据结构和所述各DAG分区的边界点之间的路径,构建边界图;
基于所述边界图,重构边界点的2-hop索引、并将重构后的边界点的2-hop索引划分至各边界点所在的DAG分区。
2.根据权利要求1所述的索引构建方法,其特征在于,所述DAG图的分区结果基于以下方式得到:
获取初始图数据和计算节点数量;
将所述初始图数据转换为DAG图;
根据所述计算节点数量和预设分区算法,获取DAG图的分区结果。
3.根据权利要求1所述的索引构建方法,其特征在于,所述图数据结构包括顶点的度值和身份编号;所述对各DAG分区中的顶点进行排序,得到各顶点的排序值包括:
确定各DAG分区中顶点的顶点类型;
根据所述顶点类型、所述度值以及所述身份编号,对各DAG分区中的顶点进行排序,得到各顶点的排序值。
4.根据权利要求3所述的索引构建方法,其特征在于,所述根据所述顶点类型、度值以及身份编号,对各DAG分区中的顶点进行排序,得到各顶点的排序值包括:
根据所述顶点类型、所述度值以及所述身份编号,按照预设的由顶点类型、度值以及身份编号构成的优先级顺序,对各DAG分区中的顶点进行排序,得到各顶点的排序值。
5.根据权利要求1至4任意一项所述的索引构建方法,其特征在于,基于所述边界图,重构边界点的2-hop索引、并将重构后的边界点的2-hop索引划分至各边界点所在的DAG分区包括:
在单个DAG分区内基于所述边界图,重构边界点的2-hop索引、并将重构后的边界点的2-hop索引划分至各边界点所在的DAG分区;
或,在各个DAG分区内基于所述边界图,重构边界点的2-hop索引,删除各DAG分区中不属于自身分区的重构后的边界点的2-hop。
6.根据权利要求1至4中任一项所述的索引构建方法,其特征在于,基于所述边界图,重构边界点的2-hop索引包括:
基于所述边界图,结合所述边界图对应的图数据结构、所述各顶点的排序值以及所述预分布式图计算系统的计算模型,重构所述边界点的2-hop索引。
7.根据权利要求1至4中任一项所述的索引构建方法,其特征在于,所述基于所述边界图,重构边界点的2-hop索引、并将重构后的边界点的2-hop索引划分至各边界点所在的DAG分区之后,还包括:
整合、并记录所述内部点的2-hop索引和所述重构后的边界点的2-hop索引。
8.一种索引构建装置,其特征在于,所述装置包括:
分区结果获取模块,用于获取DAG图以及DAG图的分区结果,将所述DAG图按照所述分区结果存储至预设分布式图计算系统,得到各DAG分区的图数据结构;
顶点排序模块,用于对各DAG分区中的顶点进行排序,得到各顶点的排序值;
索引并行构建模块,用于根据所述各DAG分区的图数据结构、所述顶点的排序值以及预设分布式图计算系统的计算模型,并行构建各所述DAG分区对应的内部点的2-hop索引和边界点的2-hop索引;
路径重构模块,用于基于所述边界点的2-hop索引,重构各DAG分区的边界点之间的路径;
边界图构建模块,用于根据所述各DAG分区的图数据结构和所述各DAG分区的边界点之间的路径,构建边界图;
边界点索引重构模块,用于基于所述边界图,重构边界点的2-hop索引、并将重构后的边界点的2-hop索引划分至各边界点所在的DAG分区。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110720858.5A CN113449153B (zh) | 2021-06-28 | 2021-06-28 | 索引构建方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110720858.5A CN113449153B (zh) | 2021-06-28 | 2021-06-28 | 索引构建方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113449153A true CN113449153A (zh) | 2021-09-28 |
CN113449153B CN113449153B (zh) | 2023-09-26 |
Family
ID=77813517
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110720858.5A Active CN113449153B (zh) | 2021-06-28 | 2021-06-28 | 索引构建方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113449153B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111241350A (zh) * | 2020-01-07 | 2020-06-05 | 平安科技(深圳)有限公司 | 图数据查询方法、装置、计算机设备和存储介质 |
CN115374299A (zh) * | 2022-10-24 | 2022-11-22 | 杭州悦数科技有限公司 | 分布式图数据库中可达性索引的分层构建方法和系统 |
CN115544321A (zh) * | 2022-11-28 | 2022-12-30 | 厦门渊亭信息科技有限公司 | 一种图数据库存储的实现方法、装置及存储介质 |
CN115983379A (zh) * | 2023-03-20 | 2023-04-18 | 哈尔滨工业大学(深圳)(哈尔滨工业大学深圳科技创新研究院) | Mdata知识图谱的可达路径查询方法及其系统 |
CN118277619A (zh) * | 2024-03-29 | 2024-07-02 | 江苏信息职业技术学院 | 一种基于强连通分量的最短环计数方法及动态更新方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070208693A1 (en) * | 2006-03-03 | 2007-09-06 | Walter Chang | System and method of efficiently representing and searching directed acyclic graph structures in databases |
CN110377795A (zh) * | 2019-06-27 | 2019-10-25 | 浙江大学 | 一种基于Blogel的分布式时态图可达性查询处理方法 |
CN111400555A (zh) * | 2020-03-05 | 2020-07-10 | 湖南大学 | 图数据查询任务处理方法、装置、计算机设备和存储介质 |
CN112287182A (zh) * | 2020-10-30 | 2021-01-29 | 杭州海康威视数字技术股份有限公司 | 图数据存储、处理方法、装置及计算机存储介质 |
CN112363979A (zh) * | 2020-09-18 | 2021-02-12 | 杭州欧若数网科技有限公司 | 一种基于图数据库的分布式索引方法和系统 |
-
2021
- 2021-06-28 CN CN202110720858.5A patent/CN113449153B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070208693A1 (en) * | 2006-03-03 | 2007-09-06 | Walter Chang | System and method of efficiently representing and searching directed acyclic graph structures in databases |
CN110377795A (zh) * | 2019-06-27 | 2019-10-25 | 浙江大学 | 一种基于Blogel的分布式时态图可达性查询处理方法 |
CN111400555A (zh) * | 2020-03-05 | 2020-07-10 | 湖南大学 | 图数据查询任务处理方法、装置、计算机设备和存储介质 |
CN112363979A (zh) * | 2020-09-18 | 2021-02-12 | 杭州欧若数网科技有限公司 | 一种基于图数据库的分布式索引方法和系统 |
CN112287182A (zh) * | 2020-10-30 | 2021-01-29 | 杭州海康威视数字技术股份有限公司 | 图数据存储、处理方法、装置及计算机存储介质 |
Non-Patent Citations (4)
Title |
---|
DOJIN CHOI等: ""Dynamic Graph Partitioning Scheme for Supporting Load Balancing in Distributed Graph Environments"", 《IEEE ACCESS》 * |
刘雅辉;刘春阳;张铁赢;程学旗;: "图索引技术研究综述", 山东大学学报(理学版), no. 11 * |
吴志强;李肯立;郑蕙;: "高效可扩展的对称密文检索架构", 通信学报, no. 08 * |
李宗沅: ""分布式图数据库关键技术的设计与实现"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111241350A (zh) * | 2020-01-07 | 2020-06-05 | 平安科技(深圳)有限公司 | 图数据查询方法、装置、计算机设备和存储介质 |
CN115374299A (zh) * | 2022-10-24 | 2022-11-22 | 杭州悦数科技有限公司 | 分布式图数据库中可达性索引的分层构建方法和系统 |
CN115544321A (zh) * | 2022-11-28 | 2022-12-30 | 厦门渊亭信息科技有限公司 | 一种图数据库存储的实现方法、装置及存储介质 |
CN115544321B (zh) * | 2022-11-28 | 2023-03-21 | 厦门渊亭信息科技有限公司 | 一种图数据库存储的实现方法、装置及存储介质 |
CN115983379A (zh) * | 2023-03-20 | 2023-04-18 | 哈尔滨工业大学(深圳)(哈尔滨工业大学深圳科技创新研究院) | Mdata知识图谱的可达路径查询方法及其系统 |
CN115983379B (zh) * | 2023-03-20 | 2023-10-10 | 哈尔滨工业大学(深圳)(哈尔滨工业大学深圳科技创新研究院) | Mdata知识图谱的可达路径查询方法及其系统 |
CN118277619A (zh) * | 2024-03-29 | 2024-07-02 | 江苏信息职业技术学院 | 一种基于强连通分量的最短环计数方法及动态更新方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113449153B (zh) | 2023-09-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113449153B (zh) | 索引构建方法、装置、计算机设备和存储介质 | |
CN110321999B (zh) | 神经网络计算图优化方法 | |
CN110929047B (zh) | 关注邻居实体的知识图谱推理方法和装置 | |
WO2018171715A1 (zh) | 适用神经网络处理器的自动化设计方法及系统 | |
CN111666763A (zh) | 用于多任务场景的网络结构构建方法和装置 | |
Dereniowski et al. | Fast collaborative graph exploration | |
CN115186821B (zh) | 面向芯粒的神经网络推理开销估计方法及装置、电子设备 | |
CN112132287A (zh) | 一种分布式的量子计算仿真方法和装置 | |
US11782724B2 (en) | Parallel decision system and method for distributed data processing | |
CN111400555B (zh) | 图数据查询任务处理方法、装置、计算机设备和存储介质 | |
WO2016165622A1 (en) | Systems and methods for key-value stores | |
CN114330730B (zh) | 量子线路分块编译方法、装置、设备、存储介质和产品 | |
US20240311193A1 (en) | Method and apparatus for allocating computing task of neural network in heterogeneous resources, and device | |
CN113642716B (zh) | 深度变分自编码器模型训练方法、装置、设备和存储介质 | |
EP4375844A1 (en) | Neural network on-chip mapping method and device based on tabu search algorithm | |
CN108614932B (zh) | 基于边图的线性流重叠社区发现方法、系统及存储介质 | |
Gould et al. | Alphabet soup: A framework for approximate energy minimization | |
CN108198084A (zh) | 一种复杂网络重叠社区发现方法 | |
WO2024000464A1 (zh) | 一种张量计算的分块策略生成方法及装置 | |
CN115865713A (zh) | 一种高阶网络中高阶结构的重要性排序方法、系统及终端 | |
CN117786866A (zh) | 模型处理方法、装置、计算机设备、存储介质和程序产品 | |
CN110246549B (zh) | 多物理耦合应用处理方法、装置、计算机设备以及存储介质 | |
CN113065035A (zh) | 一种单机核外属性图计算方法 | |
Nasri et al. | A new DAG scheduling algorithm for heterogeneous platforms | |
CN116227585B (zh) | 集群任务的并行执行方法、装置、计算机设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |