CN116560877B - 一种实时图计算方法、装置、电子设备、存储介质 - Google Patents
一种实时图计算方法、装置、电子设备、存储介质 Download PDFInfo
- Publication number
- CN116560877B CN116560877B CN202310813943.5A CN202310813943A CN116560877B CN 116560877 B CN116560877 B CN 116560877B CN 202310813943 A CN202310813943 A CN 202310813943A CN 116560877 B CN116560877 B CN 116560877B
- Authority
- CN
- China
- Prior art keywords
- graph
- calculation
- processed
- data
- communication
- 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.)
- Active
Links
- 238000004364 calculation method Methods 0.000 title claims abstract description 280
- 238000000034 method Methods 0.000 claims abstract description 372
- 230000008569 process Effects 0.000 claims abstract description 287
- 230000006854 communication Effects 0.000 claims abstract description 150
- 238000004891 communication Methods 0.000 claims abstract description 149
- 238000013515 script Methods 0.000 claims description 40
- 238000010586 diagram Methods 0.000 claims description 33
- 238000004458 analytical method Methods 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 6
- 239000012634 fragment Substances 0.000 claims description 4
- 238000012545 processing Methods 0.000 abstract description 22
- 239000000284 extract Substances 0.000 abstract description 5
- 238000004422 calculation algorithm Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 238000001914 filtration Methods 0.000 description 4
- 230000002776 aggregation Effects 0.000 description 3
- 238000004220 aggregation Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000013404 process transfer Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000001356 surgical procedure Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本公开涉及计算机技术领域,公开了一种实时图计算方法、装置、电子设备、存储介质。所述方法包括:第一进程查询待处理图数据,将待处理图数据写入共享内存。第一进程通过进程间通信的方式,向第二进程传递任务信息。第二进程接收任务信息,根据任务信息从共享内存中取出待处理图数据,对待处理图数据执行图计算操作,得到计算结果。第二进程将计算结果发送至第一进程。本公开实施例通过共享内存和进程间通信将图查询和图计算两个独立的处理过程结合,使图数据在高速共享内存中流转,减少了图计算的耗时和图数据更新带来的开销,提高了图计算系统实时计算能力和计算结果的时效性。
Description
技术领域
本公开涉及图计算领域,尤其涉及一种实时图计算方法、装置、电子设备、存储介质。
背景技术
目前,现有的图计算系统只能面向离线数据进行图计算。通常按照以下流程进行:从相应的数据库中导出在线数据,以常见的数据文件格式(如CSV)保存,形成离线数据集,将离线数据集导入到图计算系统中,在图计算系统中执行图计算算法,获取计算结果,如果在线数据发生更新且需要对最新数据进行图计算,则现有图计算系统需要重新执行上述步骤。
数据从源数据库中被导出至文件再被导入至图计算系统,这一系列过程会涉及较多文件的读写操作,导致现有的图计算系统进行图计算的过程耗时长,计算结果的时效性差。并且当前业界缺乏成熟的增量更新技术,现有图计算系统中图计算数据集的更新代价较大。在更新数据集时,只能通过从源数据库中全量导出图数据并重新导入到图计算系统中的方式进行,这种全量导入的过程对于大规模数据集来说是耗时且代价较高的,限制了图计算系统的实时计算能力。
发明内容
有鉴于此,本公开提出了一种实时图计算方法、装置、电子设备和存储介质。
根据本公开的一方面,提供了一种实时图计算方法,包括:
第一进程查询待处理图数据,将所述待处理图数据写入共享内存;
所述第一进程通过进程间通信的方式,向第二进程传递任务信息;
所述第二进程接收所述任务信息,根据所述任务信息从所述共享内存中取出所述待处理图数据,对所述待处理图数据执行图计算操作,得到计算结果;
所述第二进程将所述计算结果发送至所述第一进程。
在一种可能的实现方式中,所述第一进程查询待处理图数据,将所述待处理图数据写入共享内存,包括:
所述第一进程的编译器对输入的图语句进行语法解析,生成查询执行脚本和计算执行脚本;
所述第一进程的查询引擎解析所述查询执行脚本,确定图查询算子逻辑;
所述第一进程的查询组件执行所述图查询算子逻辑,确定所述待处理图数据;
所述第一进程的第一通信组件调用图计算组件中的共享内存写入接口,将所述待处理图数据写入共享内存;
其中,所述图计算组件属于所述第一进程。
在一种可能的实现方式中,所述第一进程通过进程间通信的方式,向第二进程传递任务信息,包括:
所述图计算组件的任务管理模块启动进程间通信服务,构建进程通信服务端,等待所述第二进程的信息;
所述图计算组件的任务管理模块根据所述进程通信服务端的通讯信息和待处理图数据的上下文信息,以及所述计算执行脚本,确定所述任务信息;
所述图计算组件的任务管理模块以进程间通信的方式将所述任务信息传递至第二进程的任务管理模块。
在一种可能的实现方式中,所述第二进程接收所述任务信息,根据所述任务信息从所述共享内存中取出所述待处理图数据,对所述待处理图数据执行图计算操作,得到计算结果,包括:
所述第二进程的任务管理模块接收所述任务信息,构建进程通信客户端;
所述第二进程的任务管理模块将所述任务信息递交至图计算模块;
其中,所述图计算模块属于第二进程;
所述图计算模块根据所述任务信息从所述共享内存中取出所述待处理图数据;
所述第二进程的图计算模块根据所述任务信息对所述待处理图数据执行图计算操作,得到计算结果。
在一种可能的实现方式中,所述第二进程的图计算模块根据所述任务信息对所述待处理图数据执行图计算操作,得到计算结果,包括:
所述图计算模块的片段构建器将所述待处理图数据构建为适合图计算的数据结构;
所述图计算模块的计算组件对所述适合图计算的数据结构执行所述计算执行脚本,得到所述计算结果。
在一种可能的实现方式中,所述第二进程将所述计算结果发送至所述第一进程,包括:
所述图计算模块从所述任务信息中取出所述进程通信服务端的通讯信息;
所述图计算模块将所述通讯信息和所述计算结果递交至所述进程通信客户端;
所述进程通信客户端根据所述通讯信息将所述计算结果递交至所述进程通信服务端;
所述进程通信服务端将所述计算结果递交至所述第一进程的第二通信组件。
在一种可能的实现方式中,所述进程通信服务端将所述计算结果递交至所述第一进程的第二通信组件,包括:
所述进程通信服务端将所述计算结果递交至数据构建器;
数据构建器将所述计算结果构建为标准数据结构,递交至所述第一进程的第二通信组件;
其中,所述标准数据结构与所述待处理图数据形式相同。
在一种可能的实现方式中,所述方法还包括:
所述第一进程的第二通信组件接收所述计算结果后,执行所述第一进程的后续流程。
根据本公开的另一方面,提供了一种实时图计算装置,包括:
第一进程,用于查询待处理图数据,将所述待处理图数据写入共享内存;
第一进程,还用于通过进程间通信的方式,向第二进程传递任务信息;
第二进程,用于接收所述任务信息,根据所述任务信息从所述共享内存中取出所述待处理图数据,对所述待处理图数据执行图计算操作,得到计算结果;
第二进程,还用于将所述计算结果发送至所述第一进程。
根据本公开的另一方面,提出一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为在执行所述存储器存储的指令时,实现上述方法。
根据本公开的另一方面,提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其中,所述计算机程序指令被处理器执行时实现上述方法。
在本公开实施例中,第一进程查询待处理图数据,将待处理图数据写入共享内存。第一进程通过进程间通信的方式,向第二进程传递任务信息。第二进程接收任务信息,根据任务信息从共享内存中取出待处理图数据,对待处理图数据执行图计算操作,得到计算结果。第二进程将计算结果发送至第一进程。本公开通过共享内存和进程间通信将图查询和图计算两个独立的处理过程结合,使图数据在高速共享内存中流转,减少了图计算的耗时和图数据更新带来的开销,提高了图计算系统的实时计算能力和计算结果的时效性。
根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。
图1示出根据本公开一实施例的实时图计算方法的流程图。
图2示出根据本公开一实施例的第一进程查询待处理图数据,将待处理图数据写入共享内存的流程图。
图3示出根据本公开一实施例的第一进程通过进程间通信向第二进程传递任务信息的流程图。
图4示出根据本公开一实施例的第二进程接收任务信息,根据任务信息从共享内存中取出待处理图数据,对待处理图数据执行图计算操作,得到计算结果的流程图。
图5示出根据本公开一实施例的第二进程将计算结果发送至第一进程的流程图。
图6示出根据本公开实施例的一示例性应用场景的第一进程和第二进程的组件结构图。
图7示出根据本公开实施例的一示例性应用场景的第一进程的示意图。
图8示出根据本公开实施例的一示例性应用场景的实时图计算方法的流程图。
图9示出根据本公开实施例的一种电子设备的框图。
具体实施方式
以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
目前,现有的图计算系统只能面向离线数据进行图计算。数据从源数据库中被导出至文件再被导入至图计算系统,这一系列过程会涉及较多文件的读写操作,导致现有的图计算系统进行图计算的过程耗时长,计算结果的时效性差。并且当前业界缺乏成熟的增量更新技术,现有图计算系统中图计算数据集的更新代价较大,限制了图计算系统的实时计算能力。
基于此,本公开实施例中提供了一种实时图计算方法,包括:第一进程查询待处理图数据,将待处理图数据写入共享内存。第一进程通过进程间通信的方式,向第二进程传递任务信息。第二进程接收任务信息,根据任务信息从共享内存中取出待处理图数据,对待处理图数据执行图计算操作,得到计算结果。第二进程将计算结果发送至第一进程。本公开实施例通过共享内存和进程间通信将图查询和图计算两个独立的处理过程结合,使图数据在高速共享内存中流转,减少了图计算的耗时和图数据更新带来的开销,提高了图计算系统的实时计算能力和计算结果的时效性。
本公开实施例对所使用的数据库组件和操作系统的具体类型可不做限定。
图1示出根据本公开一实施例的实时图计算方法的流程图。如图1所示,所述方法可以包括:
步骤S11,第一进程查询待处理图数据,将所述待处理图数据写入共享内存。
其中,本公开实施例所述的第一进程可以是事务性处理(TransactionalProcessing,TP)进程。事务性处理进程可负责对图数据进行更新、维护和管理,其主要涉及对图数据的修改、添加、删除、查询等操作。事务性处理进程可以面向实时应用场景,对数据的查询变更等要求进行快速的响应和处理。示例性的,本公开实施例所述的第一进程可在实时图计算中,解析查询脚本,并根据要求查询相应的图数据。进一步地,所述第一进程的第二通信组件在接收到计算结果后,可继续执行第一进程的后续流程。
步骤S12,所述第一进程通过进程间通信的方式,向第二进程传递任务信息。
其中,本公开实施例所述的第二进程可以是分析性处理(AnalyticalProcessing,AP)进程。分析性处理进程可利用图计算算法对图数据进行分析、挖掘和计算。示例性的,本公开实施例所述的第二进程可在实时图计算中,以共享内存中的数据作为输入,执行图算法,并将结果返回至第一进程。
步骤S13,所述第二进程接收所述任务信息,根据所述任务信息从所述共享内存中取出所述待处理图数据,对所述待处理图数据执行图计算操作,得到计算结果。
其中,所述共享内存用于在多个并发执行的进程之间共享数据。在共享内存中,多个进程可以访问和修改同一块内存区域,从而实现数据的共享和传递。在一具体实施例中,共享内存可作为第一进程和第二进程间数据交换的媒介。第一进程可将所述待处理图数据写入共享内存,第二进程接收来自第一进程的任务信息,根据任务信息从共享内存中取出待处理图数据,对待处理图数据执行图计算操作,得到计算结果。其中,本公开实施例对第二进程涉及的图计算操作的具体种类可不做限定。
步骤S14,所述第二进程将所述计算结果发送至所述第一进程。
这样一来,本公开实施例通过共享内存和进程间通信将图查询和图计算两个独立的处理过程结合,使图数据在高速共享内存中流转,相比现有技术使用磁盘的传输速度更快,减少了图计算的耗时和图数据更新带来的开销,提高了图计算系统的实时计算能力和计算结果的时效性。图2示出根据本公开一实施例的第一进程查询待处理图数据,将待处理图数据写入共享内存的流程图。如图2所示,所述流程可以包括:
步骤S111,所述第一进程的编译器对输入的图语句进行语法解析,生成查询执行脚本和计算执行脚本。
在一具体实施例中,所述编译器在处理输入的图语句时,可通过语法分析和语义分析将图语句转化为执行脚本。示例性的,所述输入的图语句可以是“查询语句+图算法语句”。在本公开实施例的一示例性应用场景中,以open cypher图查询语言为例,所述图语句可以是:“MATCH p = (n:person)-[e:knows]->(b:person) call bfs(p, 772) return*;”。进一步地,所述编译器可对前述输入的图语句进行语法解析,按照图语句的语法和语义生成查询执行脚本和计算执行脚本。
步骤S112,所述第一进程的查询引擎解析所述查询执行脚本,确定图查询算子逻辑。
其中,本公开实施例所述查询引擎可负责解析所述编译器生成的查询执行脚本,生成相应的图查询算子逻辑。图查询算子逻辑可以是图查询语句中涉及的各种操作符或算子的逻辑,用于描述对图数据的查询操作。在一具体实施例中,所述图查询算子逻辑可以包括:节点/边的扫描、聚合、过滤等。
步骤S113,所述第一进程的查询组件执行所述图查询算子逻辑,确定所述待处理图数据。
本公开实施例所述查询组件可负责执行查询引擎生成的图查询算子逻辑。
步骤S114,所述第一进程的第一通信组件调用图计算组件中的共享内存写入接口,将所述待处理图数据写入共享内存;其中,所述图计算组件属于所述第一进程。
这样一来,本公开实施例中的第一进程将待处理图数据写入共享内存,相比现有使用磁盘传输的方法速度更快,提高了图计算系统的实时计算能力和计算结果的时效性。
图3示出根据本公开一实施例的第一进程通过进程间通信向第二进程传递任务信息的流程图。如图3所示,所述流程可以包括:
步骤S121,所述图计算组件的任务管理模块启动进程间通信服务,构建进程通信服务端,等待所述第二进程的信息。
其中,本公开实施例所述图计算组件的任务管理模块可启动进程间通信服务,构建进程通信服务端,等待所述第二进程的信息。在一具体实施例中,所述第二进程的信息可以是第二进程中进程通信客户端的连接请求。所述第一进程的进程间通信服务端可等待和接收来自进程通信客户端的连接请求。其中,本公开实施例对涉及的进程间通信方法的具体种类可不做限定。
步骤S122,所述图计算组件的任务管理模块根据所述进程通信服务端的通讯信息和待处理图数据的上下文信息,以及所述计算执行脚本,确定所述任务信息。
在一具体实施例中,所述图计算组件可将进程通信服务端的通讯信息和待处理图数据的上下文信息,以及所述计算执行脚本,封装进所述任务信息。其中,所述通讯信息为第一进程在进程间通信过程中要传递的信息或数据,可以包括:进程通信服务端识别信息、命令、参数、状态和响应等。所述待处理图数据的上下文信息可以包括待处理图数据在共享内存中的地址、待处理图数据的模式和来源等。
步骤S123,所述图计算组件的任务管理模块以进程间通信的方式将所述任务信息传递至第二进程的任务管理模块。
在一具体实施例中,所述进程间通信的方式可以是管道、消息队列、套接字等。本公开实施例对传递任务信息所涉及的进程间通信的方式可不做限定。
这样一来,本公开实施例通过进程间通信的方式将图查询和图计算两个独立的处理过程结合,提高了图计算系统的实时计算能力和计算结果的时效性。
图4示出根据本公开一实施例的第二进程接收任务信息,根据任务信息从共享内存中取出待处理图数据,对待处理图数据执行图计算操作,得到计算结果的流程图。如图4所示,所述流程可以包括:
步骤S131,所述第二进程的任务管理模块接收所述任务信息,构建进程通信客户端。
步骤S132,所述第二进程的任务管理模块将所述任务信息递交至图计算模块;其中,所述图计算模块属于第二进程。
步骤S133,所述图计算模块根据所述任务信息从所述共享内存中取出所述待处理图数据。
在一具体实施例中,所述图计算模块可根据任务信息中待处理图数据的上下文信息从所述共享内存中取出待处理图数据。这样一来,本公开实施例从所述共享内存中取出待处理图数据,减少了图计算的耗时和图数据更新带来的开销,提高了图计算系统的实时计算能力和计算结果的时效性。
步骤S134,所述第二进程的图计算模块根据所述任务信息对所述待处理图数据执行图计算操作,得到计算结果。
在一具体实施例中,所述图计算模块可根据任务信息中的计算执行脚本对所述待处理图数据执行图计算操作,得到计算结果。
在一种可能的实现方式中,所述第二进程的图计算模块根据所述任务信息对所述待处理图数据执行图计算操作,得到计算结果,可包括:
所述图计算模块的片段构建器将所述待处理图数据构建为适合图计算的数据结构。
其中,本公开实施例所述图计算模块的片段构建器可将待处理图数据的点边数据形式,构建为适合图计算的结构,如稀疏邻接矩阵、向量列存数组等。本公开实施例对所述片段构建器构建的具体图数据结构可不做限定。
所述图计算模块的计算组件对所述适合图计算的数据结构执行所述计算执行脚本,得到所述计算结果。
其中,本公开实施例所述图计算模块的计算组件可根据任务信息中的计算执行脚本,对前述根据待处理图数据构建的适合计算的图数据结构,执行相应的图算法逻辑,得到计算结果。
这样一来,本公开通过共享内存和进程间通信将图查询和图计算两个独立的处理过程结合,减少了图计算的耗时和图数据更新带来的开销,提高了图计算系统的实时计算能力和计算结果的时效性。
图5示出根据本公开一实施例的第二进程将计算结果发送至第一进程的流程图。如图5所示,所述流程可以包括:
步骤S141,所述图计算模块从所述任务信息中取出所述进程通信服务端的通讯信息。
步骤S142,所述图计算模块将所述通讯信息和所述计算结果递交至所述进程通信客户端。
步骤S143,所述进程通信客户端根据所述通讯信息将所述计算结果递交至所述进程通信服务端。
在一具体实施例中,所述进程通信客户端可根据通讯信息中进程通信服务端的识别信息、命令、参数等,将所述计算结果递交至所述进程通信服务端。
步骤S144,所述进程通信服务端将所述计算结果递交至所述第一进程的第二通信组件。
这样一来,本公开实施例的第二进程根据所述通讯信息将计算结果发送至第一进程。本公开实施例通过进程间通信将图查询和图计算两个独立的处理过程结合,减少了图计算的耗时,提高了图计算系统的实时计算能力和计算结果的时效性。
在一种可能的实现方式中,所述进程通信服务端将所述计算结果递交至所述第一进程的第二通信组件,可包括:
所述进程通信服务端将所述计算结果递交至数据构建器。
数据构建器将所述计算结果构建为标准数据结构,递交至所述第一进程的第二通信组件;其中,所述标准数据结构与所述待处理图数据形式相同。
其中,所述标准数据结构可与第一进程最初查询得到的待处理图数据的数据形式相同。这样一来,本公开实施例所述的数据构建器将所述计算结果构建为标准数据结构,便于第一流程进行后续的处理流程,提高了图计算系统的实时计算能力。
可选地,所述方法还包括:
所述第一进程的第二通信组件接收所述计算结果后,执行所述第一进程的后续流程。在本公开实施例的一示例性应用场景中,所述第一进程可以为TP进程,所述第二进程可以为TP进程。所述TP进程查询待处理图数据,将待处理图数据写入共享内存,通过进程间通信的方式,向AP进程传递任务信息。所述AP进程接收任务信息,根据任务信息从共享内存中取出待处理图数据,对待处理图数据执行图计算操作,得到计算结果后,所述AP进程将计算结果发送至TP进程。
图6示出根据本公开实施例的一示例性应用场景的第一进程和第二进程的组件结构图。如图6所示,所述示例性应用场景的第一进程的组件可以包括:
查询引擎,可用于解析所述编译器生成的查询执行脚本,生成相应的图查询算子逻辑。图查询算子逻辑可以是图查询语句中涉及的各种操作符或算子的逻辑,用于描述对图数据的查询操作,可以包括:节点/边的扫描、聚合、过滤等。
查询组件,可负责执行查询引擎生成的图查询算子逻辑。
图计算组件,可用于将待处理图数据存入共享内存。所述图计算组件的任务管理模块可用于启动进程间通信服务,根据所述进程通信服务端的通讯信息和待处理图数据的上下文信息,以及所述计算执行脚本,确定所述任务信息。
数据传输模块用于将图数据放入共享内存中。
所述示例性应用场景的第二进程的组件可以包括:
图计算模块,可根据任务信息中的计算执行脚本对所述待处理图数据执行图计算操作,得到计算结果。其中,本公开实施例所述图计算模块的片段构建器可将待处理图数据的点边数据形式,构建为适合图计算的结构。本公开实施例所述图计算模块的计算组件可根据任务信息中的计算执行脚本,对前述根据待处理图数据构建的适合计算的图数据结构,执行相应的图算法逻辑,得到计算结果。
所述示例性应用场景的共享内存可以存有由第一进程写入的待处理图数据。
图7示出根据本公开实施例的一示例性应用场景的第一进程的示意图。如图7所示,所述示例性应用场景的第一进程可以包括:
第一管道,可用于查询待处理图数据,并将查询结果经由第一通信组件发给图计算组件,由图计算组件与第二进程交互,由第二进程对待处理图数据执行图计算操作。
其中,查询引擎,可用于解析编译器生成的查询执行脚本,生成相应的图查询算子逻辑。
查询组件,可用于执行查询引擎生成的图查询算子逻辑。
第一进程的第一通信组件,可用于调用图计算组件中的共享内存写入接口,将待处理图数据写入共享内存
第二管道,可用于接收图计算结果,并在第二通信组件拿到图计算结果后,对计算结果做后续处理(如投射,过滤等),执行后续流程。
图8示出根据本公开实施例的一示例性应用场景的实时图计算方法的流程图。
如图8所示,所述示例性应用场景的实时图计算方法的流程可以包括:
步骤1,第一进程的编译器对输入的图语句进行语法解析,生成查询执行脚本和计算执行脚本。
步骤2,第一进程的查询引擎解析查询执行脚本,确定图查询算子逻辑;其中,所述图查询算子逻辑可以包括:节点/边的扫描、聚合、过滤等。
步骤3,第一进程的查询组件执行图查询算子逻辑,确定待处理图数据;
步骤4,第一进程的第一通信组件调用图计算组件中的共享内存写入接口,将待处理图数据写入共享内存;其中,图计算组件属于第一进程;
这样一来,本公开实施例中的第一进程将待处理图数据写入共享内存,相比现有使用磁盘传输的方法速度更快,提高了图计算系统的实时计算能力和计算结果的时效性。
步骤5,图计算组件的任务管理模块启动进程间通信服务,构建进程通信服务端,等待第二进程的信息;
步骤6,图计算组件的任务管理模块根据进程通信服务端的通讯信息和待处理图数据的上下文信息,以及计算执行脚本,确定任务信息;
步骤7,图计算组件的任务管理模块以进程间通信的方式将任务信息传递至第二进程的任务管理模块。
这样一来,本公开实施例通过进程间通信的方式将图查询和图计算两个独立的处理过程结合,提高了图计算系统的实时计算能力和计算结果的时效性。
步骤8,第二进程的任务管理模块接收任务信息,构建进程通信客户端;
步骤9,第二进程的任务管理模块将任务信息递交至图计算模块;其中,图计算模块属于第二进程;
步骤10,图计算模块根据所述任务信息从共享内存中取出所述待处理图数据;
这样一来,本公开实施例从所述共享内存中取出待处理图数据,减少了图计算的耗时和图数据更新带来的开销,提高了图计算系统的实时计算能力和计算结果的时效性。
步骤11,第二进程的图计算模块根据所述任务信息对所述待处理图数据执行图计算操作,确定计算结果;其中,图计算模块的片段构建器将待处理图数据构建为适合图计算的数据结构;图计算模块的计算组件对适合图计算的数据结构执行计算执行计划,确定计算结果;
步骤12,图计算模块从任务信息中取出进程通信服务端的通讯信息;图计算模块将通讯信息和计算结果递交至进程通信客户端;
步骤13,进程通信客户端根据通讯信息将所述计算结果递交至进程通信服务端;
步骤14,进程通信服务端将计算结果递交至第一进程的第二通信组件。
其中,进程通信服务端将计算结果递交至数据构建器;数据构建器将计算结果构建为标准数据结构,递交至第一进程的第二通信组件;其中,标准数据结构与待处理图数据形式相同。这样一来,本公开实施例所述数据构建器将所述计算结果构建为标准数据结构,便于第一流程进行后续的处理流程,提高了图计算系统的实时计算能力。
步骤15,第一进程的第二通信组件接收计算结果后,执行第一进程的后续流程。
这样一来,本公开实施例通过共享内存和进程间通信将图查询和图计算两个独立的处理过程结合,使图数据在高速共享内存中流转,相比现有技术使用磁盘的传输速度更快,减少了图计算的耗时和图数据更新带来的开销,提高了图计算系统的实时计算能力和计算结果的时效性。
根据本公开一实施例提供了一种实时图计算装置,包括:
第一进程,用于查询待处理图数据,将所述待处理图数据写入共享内存;
第一进程,还用于通过进程间通信的方式,向第二进程传递任务信息;
第二进程,用于接收所述任务信息,根据所述任务信息从所述共享内存中取出所述待处理图数据,对所述待处理图数据执行图计算操作,得到计算结果;
第二进程,还用于将所述计算结果发送至所述第一进程。
在一种可能的实现方式中,所述装置还包括:
第一进程的编译器,用于对输入的图语句进行语法解析,生成查询执行脚本和计算执行脚本;
第一进程的查询引擎,用于解析所述查询执行脚本,确定图查询算子逻辑;
第一进程的查询组件,用于执行所述图查询算子逻辑,确定所述待处理图数据;
第一进程的第一通信组件,用于调用图计算组件中的共享内存写入接口,将所述待处理图数据写入共享内存;其中,所述图计算组件属于所述第一进程。
在一种可能的实现方式中,所述装置还包括:
图计算组件的任务管理模块,用于启动进程间通信服务,构建进程通信服务端,等待所述第二进程的信息;
图计算组件的任务管理模块,用于根据所述进程通信服务端的通讯信息和待处理图数据的上下文信息,以及所述计算执行脚本,确定所述任务信息;
图计算组件的任务管理模块,用于以进程间通信的方式将所述任务信息传递至第二进程的任务管理模块。
在一种可能的实现方式中,所述装置还包括:
第二进程的任务管理模块,用于接收所述任务信息,构建进程通信客户端;
第二进程的任务管理模块,用于将所述任务信息递交至图计算模块;其中,所述图计算模块属于第二进程;
图计算模块,用于根据所述任务信息从所述共享内存中取出所述待处理图数据;
第二进程的图计算模块,用于根据所述任务信息对所述待处理图数据执行图计算操作,得到计算结果。
在一种可能的实现方式中,所述装置还包括:
图计算模块的片段构建器,用于将所述待处理图数据构建为适合图计算的数据结构;
图计算模块的计算组件,用于对所述适合图计算的数据结构执行所述计算执行脚本,得到所述计算结果。
在一种可能的实现方式中,所述装置还包括:
图计算模块,用于从所述任务信息中取出所述进程通信服务端的通讯信息;
图计算模块,用于将所述通讯信息和所述计算结果递交至所述进程通信客户端;
进程通信客户端,用于根据所述通讯信息将所述计算结果递交至所述进程通信服务端;
进程通信服务端,用于将所述计算结果递交至所述第一进程的第二通信组件。
在一种可能的实现方式中,所述装置还包括:
进程通信服务端,用于将所述计算结果递交至数据构建器;
数据构建器,用于将所述计算结果构建为标准数据结构,递交至所述第一进程的第二通信组件;其中,所述标准数据结构与所述待处理图数据形式相同。
在一种可能的实现方式中,所述装置还包括:
第一进程的第二通信组件,用于接收所述计算结果后,执行所述第一进程的后续流程。
本公开实施例还提出一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为在执行所述存储器存储的指令时,实现上述方法。
本公开实施例还提出一种计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述方法。计算机可读存储介质可以是易失性计算机可读存储介质或非易失性计算机可读存储介质。
上述装置、电子设备、存储介质的具体实施例可参见方法部分。
示例性的,电子设备还可以是用户设备(User Equipment,UE)、移动设备、用户终端、终端、手持设备、计算设备或者车载设备等,示例性的,一些终端的举例为:显示器、智能手机或便携设备、手机(Mobile Phone)、平板电脑、笔记本电脑、掌上电脑、移动互联网设备(Mobile Internetdevice,MID)、可穿戴设备,虚拟现实(Virtual Reality,VR)设备、增强现实(Augmentedreality,AR)设备、工业控制(Industrial Control)中的无线终端、无人驾驶(Selfdriving)中的无线终端、远程手术(Remote medical Surgery)中的无线终端、智能电网(Smart Grid)中的无线终端、运输安全(Transportation Safety)中的无线终端、智慧城市(Smart City)中的无线终端、智慧家庭(Smart Home)中的无线终端、车联网中的无线终端等。
图9示出根据本公开实施例的一种电子设备1900的框图。例如,装置1900可以被提供为一服务器或终端设备。参照图9,装置1900包括处理组件1922,其进一步包括一个或多个处理器,以及由存储器1932所代表的存储器资源,用于存储可由处理组件1922的执行的指令,例如应用程序。存储器1932中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1922被配置为执行指令,以执行上述方法。
装置1900还可以包括一个电源组件1926被配置为执行装置1900的电源管理,一个有线或无线网络接口1950被配置为将装置1900连接到网络,和一个输入输出接口1958(I/O接口)。装置1900可以操作基于存储在存储器1932的操作系统,例如Windows ServerTM,MacOS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
在示例性实施例中,还提供了一种非易失性计算机可读存储介质,例如包括计算机程序指令的存储器1932,上述计算机程序指令可由装置1900的处理组件1922执行以完成上述方法。
以上所述仅是本发明的示范性实施方式,而非用于限制本发明的保护范围,本发明的保护范围由所附的权利要求确定。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
应当说明的是,在本文中,所含术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的7范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (10)
1.一种实时图计算方法,其特征在于,包括:
第一进程查询待处理图数据,将所述待处理图数据写入共享内存;
所述第一进程通过进程间通信的方式,向第二进程传递任务信息;
所述第二进程接收所述任务信息,根据所述任务信息从所述共享内存中取出所述待处理图数据,对所述待处理图数据执行图计算操作,得到计算结果;
所述第二进程将所述计算结果发送至所述第一进程;
其中,所述第一进程查询待处理图数据,将所述待处理图数据写入共享内存,包括:
所述第一进程的编译器对输入的图语句进行语法解析,生成查询执行脚本和计算执行脚本;
所述第一进程的查询引擎解析所述查询执行脚本,确定图查询算子逻辑;
所述第一进程的查询组件执行所述图查询算子逻辑,确定所述待处理图数据;
所述第一进程的第一通信组件调用图计算组件中的共享内存写入接口,将所述待处理图数据写入共享内存;
其中,所述图计算组件属于所述第一进程。
2.根据权利要求1所述的方法,其特征在于,所述第一进程通过进程间通信的方式,向第二进程传递任务信息,包括:
所述图计算组件的任务管理模块启动进程间通信服务,构建进程通信服务端,等待所述第二进程的信息;
所述图计算组件的任务管理模块根据所述进程通信服务端的通讯信息和待处理图数据的上下文信息,以及所述计算执行脚本,确定所述任务信息;
所述图计算组件的任务管理模块以进程间通信的方式将所述任务信息传递至第二进程的任务管理模块。
3.根据权利要求2所述的方法,其特征在于,所述第二进程接收所述任务信息,根据所述任务信息从所述共享内存中取出所述待处理图数据,对所述待处理图数据执行图计算操作,得到计算结果,包括:
所述第二进程的任务管理模块接收所述任务信息,构建进程通信客户端;
所述第二进程的任务管理模块将所述任务信息递交至图计算模块;
其中,所述图计算模块属于第二进程;
所述图计算模块根据所述任务信息从所述共享内存中取出所述待处理图数据;
所述第二进程的图计算模块根据所述任务信息对所述待处理图数据执行图计算操作,得到计算结果。
4.根据权利要求3所述的方法,其特征在于,所述第二进程的图计算模块根据所述任务信息对所述待处理图数据执行图计算操作,得到计算结果,包括:
所述图计算模块的片段构建器将所述待处理图数据构建为适合图计算的数据结构;
所述图计算模块的计算组件对所述适合图计算的数据结构执行所述计算执行脚本,得到所述计算结果。
5.根据权利要求3所述的方法,其特征在于,所述第二进程将所述计算结果发送至所述第一进程,包括:
所述图计算模块从所述任务信息中取出所述进程通信服务端的通讯信息;
所述图计算模块将所述通讯信息和所述计算结果递交至所述进程通信客户端;
所述进程通信客户端根据所述通讯信息将所述计算结果递交至所述进程通信服务端;
所述进程通信服务端将所述计算结果递交至所述第一进程的第二通信组件。
6.根据权利要求5所述的方法,其特征在于,所述进程通信服务端将所述计算结果递交至所述第一进程的第二通信组件,包括:
所述进程通信服务端将所述计算结果递交至数据构建器;
数据构建器将所述计算结果构建为标准数据结构,递交至所述第一进程的第二通信组件;
其中,所述标准数据结构与所述待处理图数据形式相同。
7.根据权利要求1或5所述的方法,其特征在于,所述方法还包括:
所述第一进程的第二通信组件接收所述计算结果后,执行所述第一进程的后续流程。
8.一种实时图计算装置,其特征在于,所述装置包括:
第一进程,用于查询待处理图数据,将所述待处理图数据写入共享内存;
第一进程,还用于通过进程间通信的方式,向第二进程传递任务信息;
第二进程,用于接收所述任务信息,根据所述任务信息从所述共享内存中取出所述待处理图数据,对所述待处理图数据执行图计算操作,得到计算结果;
第二进程,还用于将所述计算结果发送至所述第一进程;
所述装置还包括:
第一进程的编译器,用于对输入的图语句进行语法解析,生成查询执行脚本和计算执行脚本;
第一进程的查询引擎,用于解析所述查询执行脚本,确定图查询算子逻辑;
第一进程的查询组件,用于执行所述图查询算子逻辑,确定所述待处理图数据;
第一进程的第一通信组件,用于调用图计算组件中的共享内存写入接口,将所述待处理图数据写入共享内存;其中,所述图计算组件属于所述第一进程。
9.一种电子设备,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为在执行所述存储器存储的指令时,实现权利要求1至7中任意一项所述的方法。
10.一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被处理器执行时实现权利要求1至7中任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310813943.5A CN116560877B (zh) | 2023-07-05 | 2023-07-05 | 一种实时图计算方法、装置、电子设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310813943.5A CN116560877B (zh) | 2023-07-05 | 2023-07-05 | 一种实时图计算方法、装置、电子设备、存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116560877A CN116560877A (zh) | 2023-08-08 |
CN116560877B true CN116560877B (zh) | 2023-09-22 |
Family
ID=87493238
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310813943.5A Active CN116560877B (zh) | 2023-07-05 | 2023-07-05 | 一种实时图计算方法、装置、电子设备、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116560877B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104063507A (zh) * | 2014-07-09 | 2014-09-24 | 时趣互动(北京)科技有限公司 | 一种图计算方法及引擎 |
CN110083455A (zh) * | 2019-05-07 | 2019-08-02 | 网易(杭州)网络有限公司 | 图计算处理方法、装置、介质及电子设备 |
CN110704360A (zh) * | 2019-09-29 | 2020-01-17 | 华中科技大学 | 一种基于异构fpga数据流的图计算优化方法 |
CN114064324A (zh) * | 2021-11-26 | 2022-02-18 | 北京人大金仓信息技术股份有限公司 | 进程间通信方法、装置、设备及计算机可读存储介质 |
CN114791968A (zh) * | 2022-06-27 | 2022-07-26 | 杭州连通图科技有限公司 | 用于图计算的处理方法、装置、系统及计算机可读介质 |
CN115562676A (zh) * | 2022-10-11 | 2023-01-03 | 中国兵器工业计算机应用技术研究所 | 一种图计算引擎的触发方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210248115A1 (en) * | 2020-02-10 | 2021-08-12 | Nvidia Corporation | Compute graph optimization |
-
2023
- 2023-07-05 CN CN202310813943.5A patent/CN116560877B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104063507A (zh) * | 2014-07-09 | 2014-09-24 | 时趣互动(北京)科技有限公司 | 一种图计算方法及引擎 |
CN110083455A (zh) * | 2019-05-07 | 2019-08-02 | 网易(杭州)网络有限公司 | 图计算处理方法、装置、介质及电子设备 |
CN110704360A (zh) * | 2019-09-29 | 2020-01-17 | 华中科技大学 | 一种基于异构fpga数据流的图计算优化方法 |
CN114064324A (zh) * | 2021-11-26 | 2022-02-18 | 北京人大金仓信息技术股份有限公司 | 进程间通信方法、装置、设备及计算机可读存储介质 |
CN114791968A (zh) * | 2022-06-27 | 2022-07-26 | 杭州连通图科技有限公司 | 用于图计算的处理方法、装置、系统及计算机可读介质 |
CN115562676A (zh) * | 2022-10-11 | 2023-01-03 | 中国兵器工业计算机应用技术研究所 | 一种图计算引擎的触发方法 |
Also Published As
Publication number | Publication date |
---|---|
CN116560877A (zh) | 2023-08-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2017156916A1 (zh) | 数据访问方法和装置 | |
US11243921B2 (en) | Database expansion system, equipment, and method of expanding database | |
US20200050450A1 (en) | Method and Apparatus for Executing Instruction | |
CN111209310B (zh) | 基于流计算的业务数据处理方法、装置和计算机设备 | |
CN111737564B (zh) | 一种信息查询方法、装置、设备及介质 | |
WO2021022714A1 (zh) | 跨区块链节点的消息处理方法及装置、设备、介质 | |
US11809429B2 (en) | Method for processing model parameters, and apparatus | |
CN110765195A (zh) | 一种数据解析方法、装置、存储介质及电子设备 | |
CN111694866A (zh) | 数据搜索及存储方法、数据搜索系统、装置、设备及介质 | |
CN116560877B (zh) | 一种实时图计算方法、装置、电子设备、存储介质 | |
CN113760242A (zh) | 一种数据处理方法、装置、服务器和介质 | |
WO2023231526A1 (zh) | 基于数字孪生DaaS平台的算法仓库管理方法及系统 | |
EP4102361A2 (en) | Method and apparatus for managing functions of a query engine | |
CN112711602B (zh) | 一种存储过程的运行方法、装置,数据库系统及存储介质 | |
CN111221841A (zh) | 基于大数据的实时处理方法及装置 | |
CN115357606A (zh) | 数据源查询方法、系统、计算机设备和存储介质 | |
CN114547199A (zh) | 数据库增量同步响应方法、装置及计算机可读存储介质 | |
CN112395365B (zh) | 一种知识图谱批量离线查询解决方案 | |
CN114003583A (zh) | 一种目标格式数据请求体的构建方法、装置、介质及设备 | |
CN113849287A (zh) | 算法服务的处理方法、装置、电子设备及存储介质 | |
CN110471708B (zh) | 基于可重用组件的配置项获取的方法及装置 | |
US8527580B2 (en) | Saving multiple data items using partial-order planning | |
CN113515285A (zh) | 生成实时计算逻辑数据的方法和装置 | |
US20230042838A1 (en) | Method for data processing, device, and storage medium | |
CN117573730B (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 |