CN112637067A - 基于模拟网络广播的图并行计算系统和方法 - Google Patents
基于模拟网络广播的图并行计算系统和方法 Download PDFInfo
- Publication number
- CN112637067A CN112637067A CN202011580124.3A CN202011580124A CN112637067A CN 112637067 A CN112637067 A CN 112637067A CN 202011580124 A CN202011580124 A CN 202011580124A CN 112637067 A CN112637067 A CN 112637067A
- Authority
- CN
- China
- Prior art keywords
- message
- machine
- parallel computing
- query
- adjacent node
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 32
- 238000012545 processing Methods 0.000 claims abstract description 91
- 238000004364 calculation method Methods 0.000 claims abstract description 23
- 230000008569 process Effects 0.000 claims abstract description 21
- 230000004931 aggregating effect Effects 0.000 claims abstract description 7
- 230000006870 function Effects 0.000 claims description 21
- 230000005540 biological transmission Effects 0.000 claims description 7
- 238000004140 cleaning Methods 0.000 claims description 6
- 230000002776 aggregation Effects 0.000 claims description 3
- 238000004220 aggregation Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 6
- 230000005055 memory storage Effects 0.000 description 4
- 238000000547 structure data Methods 0.000 description 4
- 230000006378 damage Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 235000008694 Humulus lupulus Nutrition 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/20—Hop count for routing purposes, e.g. TTL
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24532—Query optimisation of parallel queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24554—Unary operations; Data partitioning operations
- G06F16/24556—Aggregation; Duplicate elimination
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Multi Processors (AREA)
Abstract
本申请涉及一种基于模拟网络广播的图并行计算方法和系统,其中,该方法包括:一机器A的起始节点接收一查询前置服务模块根据ID规则发出的消息,并通过一跳查询返回位于本机或/和其他机器上的邻接节点的ID;起始节点根据各邻接节点的ID,结合ID规则,将消息发送至各邻接节点;邻接节点处理消息并进行转发,当邻接节点判断当前消息的TTL为零时,不在传送消息,并取出邻接节点的ID,将处理结果写入到邻接节点对应的局部存储器后将消息销毁;查询前置服务判断消息是否全部销毁,并从各机器上取出处理结果,对处理结果进行聚合后返回至一客户端。通过图并行计算系统,结合分布式存储(Hbase),实现了多机存储‑多机并行计算的架构,大大加快了对图数据的查询和计算。
Description
技术领域
本申请涉及但不限于基于模拟网络广播的图并行计算领域,尤其涉及一种模拟网络广播的图并行计算系统和方法。
背景技术
近年来,随着互联网和社交网络的快速发展,大规模的图结构数据逐渐增多,例如将知识图谱、社交网络等信息抽象成的图结构数据。相比于传统的大数据处理系统,图系统能更好地利用图的结构信息,对图数据的处理更为高效。随着图结构化数据的增多,如何高效处理大量图结构数据成为研究的热点。
尤其对于OLTP场景,目前部分图数据库使用多机存储-单机计算的架构模式,一个OLTP请求只会打在一台机器上面,然后取多台机器的数据到这台机器进行计算,最后将结果返回。这样的效率无疑是低下的,如果查询路径上出现超点更是可能导致内存溢出等问题。
目前针对相关技术中效率低的问题,尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种基于模拟网络广播的图并行计算系统和方法,本申请基于NEST分布式图数据库,在海量图谱数据下,基于OLAP场景,采用多机存储-多机并行计算的方式,以至少解决相关技术中效率低的问题。
第一方面,本申请实施例提供了一种基于模拟网络广播的图并行计算方法,包括以下步骤:
消息接收步骤,一机器A的起始节点接收一查询前置服务模块根据ID规则发出的消息,并通过一跳查询返回位于本机或/和其他机器上的邻接节点的ID;
消息传输步骤,所述起始节点根据各所述邻接节点的ID,结合所述ID规则,将所述消息发送至各所述邻接节点;
消息处理步骤,所述邻接节点处理所述消息并进行转发,当所述邻接节点判断当前所述消息的TTL为零时,不在传送所述消息,并取出所述邻接节点的 ID,将处理结果写入到所述邻接节点对应的局部存储器后将所述消息销毁;
结果聚合步骤,所述查询前置服务判断所述消息是否全部销毁,并从各所述机器上取出所述处理结果,对所述处理结果进行聚合后返回至一客户端。
在其中一些实施例中,所述消息传输步骤具体包括:
所述起始节点在发送时首先将所述消息进行复制并生成消息副本,将所述消息副本发送至各所述邻接节点,根据所述消息副本量减少所述消息的TTL,并在销毁所述消息后减少所述起始点的消息个数。
在其中一些实施例中,所述消息处理步骤包括:
当所述消息传输到一邻接节点后,所述邻接节点根据一消息处理函数处理所述消息;
所述消息处理函数继承于MessageHandler类,所述MessageHandler类内置多个接口,所述接口包括MessageSyatem、ShareMemory和LocalMemory。
上述接口中,MessageSystem提供消息的发送,获取当前的环境,获取当前的邻居,消息销毁等消息系统网络相关的接口;ShareMemory提供多机共享内存的存储,用于存储中间结果或者最终结果;LocalMemory提供单机本地的内存存储,用于存储中间结果或者最终结果。
在其中一些实施例中,所述邻接节点处理消息的具体步骤包括:
消息队列消息接收步骤,一消息队列接受本机或其他机器的所述消息,所述消息表明消息来源和消息接收者;
任务生成步骤,一线程池根据所述消息来源对应每一条所述消息生成一个任务,完成对所述消息的处理;
消息转发步骤,当所述消息转发给本地节点,直接生成新消息发送到所述消息队列;当所述消息转发给外部节点,直接生成新消息发送到外部机器;
处理结果存储步骤,所述消息处理函数将处理结果写入所述局部存储器的消息表后,所述消息被销毁;
通知步骤,所述邻接节点通过redisincr和decr来统计当前消息个数,当所述邻接节点的消息个数为0时,通知所述查询前置服务。
在其中一些实施例中,所述消息接收步骤之前还包括前置查询处理步骤,包括以下步骤:
消息首次传送步骤,对所述消息进行初始化,并对所述消息进行首次传送;
内存清理步骤,当所有的所述消息都被销毁以后,聚合或分析出相应的处理结果,销毁存储所述处理结果的内存。
所述前置查询处理继承于QueryExecutor类,所述QueryExecutor类内置有多个接口。上述接口包括MessageSystem、ShareMemory、LocalMemory,其中, MessageSystem提供消息的发送,消息的等待销毁。ShareMemory提供多机共享内存的存储,用于存储中间结果或者最终结果。LocalMemory提供单机本地的内存存储,用存储中间结果或者最终结果。
在其中一些实施例中,所述消息在各节点之间传输,所述消息自带TTL,通过路径查询或两跳查询获取所述消息的TTL,当所述TTL为零时,所述消息被销毁。
第二方面,本申请实施例提供了一种基于模拟网络广播的图并行计算系统,应用上述第一方面所述的图并行计算方法,包括:
ID服务模块,将用户传入的KEY转换成LONG型ID并输出;
查询前置服务模块,接收所述LONG型ID,依据ID规则将所述消息输出,并收集和聚合所述消息的计算结果;
多机并行计算模块,包括多台机器,所述机器用于接收所述消息,并返回对应的处理结果。
在其中一些实施例中,还包括共享内存服务模块,与所述查询前置服务模块和所述多机并行计算模块连接,所述共享内存服务模块缓存有一定量的超点和图结构,并进行其共享内存的计算,对所述处理结果进行收集。
在其中一些实施例中,所述查询前置服务模块负责发送所述消息给多机并行计算模块,并从所述多机并行计算模块和所述共享内存服务模块中收集并聚合计算结果;
查询所述多机并行计算模块中各所述机器的任务处理状态,并在任务结束后清理任务缓存;
所述查询前置服务模块中注册有消息触发程序、自定义消息体和自定义消息处理函数,所述自定义消息处理函数利用嵌套多层消息完成图计算。
在其中一些实施例中,所述多机并行计算模块接收所述查询前置服务模块的消息,通过所述消息处理函数处理所述消息并得到处理结果,将所述消息发送至本机或其他机器,并将本地的所述处理结果聚合。
相比于相关技术,本申请实施例提供的基于模拟网络广播的图并行计算方法和系统,通过图并行计算系统,结合分布式存储(Hbase),实现了多机存储- 多机并行计算的架构,大大加快了对图数据的查询和计算。
本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的基于模拟网络广播的图并行计算方法的流程图;
图2是根据本申请实施例的邻接节点处理消息的具体步骤流程图一;
图3是根据本申请实施例的邻接节点处理消息的具体步骤流程图二;
图4是根据本申请实施例的前置查询处理步骤的流程图;
图5是根据本申请优选实施例的基于模拟网络广播的图并行计算方法的流程图;
图6是根据本申请实施例的基于模拟网络广播的图并行计算系统的结构框图。
附图说明:
ID服务模块1;查询前置服务模块2;多机并行计算模块3;
共享内存服务模块4。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其他类似情景。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本申请公开的内容相关的本领域的普通技术人员而言,在本申请揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本申请所描述的实施例在不冲突的情况下,可以与其它实施例相结合。
除非另作定义,本申请所涉及的技术术语或者科学术语应当为本申请所属技术领域内具有一般技能的人士所理解的通常意义。本申请所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本申请所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本申请所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本申请所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。
本发明基于以研发的NEST分布式图数据库,Nest图数据库基于janusgraph 将图谱数据存储在hbase之上。HBase–Hadoop Database是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统。
本实施例提供了一种基于模拟网络广播的图并行计算方法。图1是根据本申请实施例的基于模拟网络广播的图并行计算方法的流程图,如图1所示,该流程包括如下步骤:
消息接收步骤S1,一机器A的起始节点接收一查询前置服务模块根据ID规则发出的消息,并通过一跳查询返回位于本机或/和其他机器上的邻接节点的 ID;
消息传输步骤S2,起始节点根据各邻接节点的ID,结合ID规则,将消息发送至各邻接节点;
消息处理步骤S3,邻接节点处理消息并进行转发,当邻接节点判断当前消息的TTL为零时,不在传送消息,并取出邻接节点的ID,将处理结果写入到邻接节点对应的局部存储器后将消息销毁;
结果聚合步骤S4,查询前置服务判断消息是否全部销毁,并从各机器上取出处理结果,对处理结果进行聚合后返回至一客户端。
将处理结果更新到本地内存的原因是,若每一个节点都将结果发回给查询前置服务,IO过于频繁。
本申请实施例提出的方法基于消息系统编程模型,用户可以通过系统的接口设计自定义计算逻辑。
上述消息处理步骤S3适用于各邻接节点,可进行连续的消息处理步骤,各邻接节点不规则的布置在机器上。
通过上述步骤,通过图并行计算模型,结合分布式存储(HBase),实现了多机存储-多机并行计算的架构,大大加快了对图数据的查询和计算。
在其中一些实施例中,消息传输步骤S2具体包括:
起始节点在发送时首先将消息进行复制并生成消息副本,将消息副本发送至各邻接节点,根据消息副本量减少消息的TTL,并在销毁消息后减少起始点的消息个数。
在其中一些实施例中,消息处理步骤S3包括:
当消息传输到一邻接节点后,邻接节点根据一消息处理函数处理消息;
消息处理函数继承于MessageHandler类,MessageHandler类内置多个接口,接口包括MessageSyatem、ShareMemory和LocalMemory。
需要说明的是,上述接口中,MessageSystem提供消息的发送,获取当前的环境,获取当前的邻居,消息销毁等消息系统网络相关的接口。ShareMemory提供多机共享内存的存储,用存储中间结果或者最终结果。LocalMemory提供单机本地的内存存储,用存储中间结果或者最终结果。
在实际的应用中,当消息传输到一个邻接节点以后,邻接节点作为一个处理器去处理消息。
图2-3是根据本申请实施例的邻接节点处理消息的具体步骤流程图一、二,如图2-3所示,在其中一些实施例中,邻接节点处理消息的具体步骤包括:
消息队列消息接收步骤S31,一消息队列接受本机或其他机器的所述消息,所述消息表明消息来源和消息接收者;
任务生成步骤S32,一线程池根据所述消息来源对应每一条所述消息生成一个任务,完成对所述消息的处理;
消息转发步骤S33,当所述消息转发给本地节点,直接生成新消息发送到所述消息队列;当所述消息转发给外部节点,直接生成新消息发送到外部机器;
处理结果存储步骤S34,所述消息处理函数会将处理结果写入局部存储器的消息表后,消息被销毁;
通知步骤S35,所述邻接节点通过redisincr和decr来统计当前消息个数,当邻接节点的消息个数为0时,通知所述查询前置服务。
在实际应用中,邻接节点上设置有消息计算模型,在消息计算模型中,每一个节点都可以处理消息,通过借助消息队列、线程池和kv hash表完成。
消息队列用于接收消息,线程池会根据消息生成对应的任务去执行。消息上携带信息,信息表明此条消息的来源和接收方,根据消息的接收方决定消息的运行位置。
各任务之间通过OriID进行表示各任务的标号,各任务之间相互独立,并没有依赖。
邻接节点获得查询前置服务自定义的消息处理函数,消息处理函数会将结果写到局部存储器的消息表,此处的消息表就是kv hash表。
当消息转发给本地节点,直接生成新消息发送到消息队列;当消息转发给外部节点,直接生成新消息发送到外部机器。
在邻接节点处理消息的过程中,通过redis incr和decr来统计消息的当前个数,当消息的个数为0时,通知查询前置服务。
图4是根据本申请实施例的前置查询处理步骤的流程图,如图4所示,在其中一些实施例中,消息接收步骤之前还包括前置查询处理步骤S5,包括以下步骤:
消息首次传送步骤S51,对所述消息进行初始化,并对所述消息进行首次传送;
内存清理步骤S52,当所有的所述消息都被销毁以后,聚合或分析出相应的处理结果,销毁存储处理结果的内存。
前置查询处理继承于QueryExecutor类,QueryExecutor类内置有多个接口。
前置查询步骤的具体实施包括以下代码:
上述接口包括MessageSystem、ShareMemory和LocalMemory,其中,MessageSystem提供消息的发送,消息的等待销毁。ShareMemory提供多机共享内存的存储,用存储中间结果或者最终结果。LocalMemory提供单机本地的内存存储,用存储中间结果或者最终结果。上述得到一个列表,表示每台机器的执行结果。
在其中一些实施例中,消息在各节点之间传输,消息自带TTL,通过路径查询或两跳查询获取消息的TTL,当TTL为零时,消息被销毁。
在实际的应用中,消息就是节点网络中传输的消息,消息自带TTL,当TTL 为0时,消息会被销毁。用户可以自定义消息,并携带的信息,也可以不携带任何信息,所有的消息都继承Message类。
路径查询,消息可以携带经过节点的ID。
两跳查询,我们只需要根据网络传输消息就可以,不用携带任何信息。
现在以简单二跳为例,消息定义如下:
下面以二跳为例子,通过优选实施例对本申请实施例进行描述和说明。
TTL(Time to live)一般是指定IP包被路由器丢弃之前允许通过的最大网段数量。下面优选实施例中TTL是指消息的生命周期,或消息可以转发或处理的次数。
图5是根据本申请优选实施例的基于模拟网络广播的图并行计算方法的流程图。
S401,接受消息
查询前置服务根据ID规则,将消息发送给指定的机器。假设发送至机器A,当机器A收到查询前置服务发送的消息,会将消息的TTL减去1;对于一跳的查询,起始节点只需要获取邻接节点直接返回,不需要传递任何消息。
S402,传输消息
起始节点1获取它的邻接ID,根据ID规则,在发送时将消息进行复制,发送消息副本给本地或者远端上的所有的邻接节点,以免在本地引起并发修改的问题。
根据符合要求的邻接节点的消息副本量,原子增加,同时减少当前消息的 TTL计数,当TTL为零时,销毁原本的消息,原子减少,该起始节点的消息个数减少。
S403,处理消息
起始节点1不需要处理消息,只需要转发消息即可。
邻接节点判断消息的TTL为0,不再传送此消息,并取出邻接节点的ID,将结果写入到消息ID对应local memory后,销毁消息,原子减少,该邻接节点的消息个数减少。
每一个邻接节点利用计算模型都可以处理消息,需要借助消息队列和线程池,kvhash表来完成。
S404,聚合结果
查询前置服务判断消息已经全部销毁,就会从每一台机器取出结果。查询前置服务判断会取出部分处理结果,聚合所有的处理结果并返回完整的处理结果给客户端。
需要说明的是,在上述流程中或者附图的流程图中示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本实施例还提供了一种基于模拟网络广播的图并行计算系统,该系统用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”、“单元”、“子单元”等可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的系统较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图6是根据本申请实施例的基于模拟网络广播的图并行计算系统的结构框图,如图6所示,该系统包括:
ID服务模块1,将用户传入的KEY转换成LONG型ID并输出;
查询前置服务模块2,接收LONG型ID,依据ID规则将消息输出,并收集和聚合消息的计算结果;
多机并行计算模块3,包括多台机器,机器用于接收消息,并返回对应的处理结果。
需要说明的是,系统内部的图框架和图计算只识别LONG型ID。
多机并行计算模块3中包含消息系统编程模型,基于此,用户可以自定义计算逻辑,提高了本系统的计算适用性。
多机并行计算模块3中包含计算模型,通过计算模型对图数据进行计算。且多机并行计算模块3中包括多台机器,多台机器并行工作,采用多机存储-多机计算的架构模式,改变了现存的多机存储-单机计算的架构模式,大大的加快了对图数据的查询和计算。
在其中一些实施例中,还包括共享内存服务模块4,与查询前置服务模块和多机并行计算模块连接,共享内存服务模块缓存有一定量的超点和图结构,并进行其共享内存的计算,对处理结果进行收集。
在实际的应用中,共享内存服务模块通过稀疏位表缓存一定量的超点。
在系统中设置共享内存服务模块,可以进一步提高效率,防止查询路径上出现超点或内存溢出等问题。
共享内存指(shared memory)在多处理器的计算机系统中,可以被不同中央处理器(CPU)访问的大容量内存。由于多个CPU需要快速访问存储器,这样就要对存储器进行缓存(Cache)。任何一个缓存的数据被更新后,由于其他处理器也可能要存取,共享内存就需要立即更新,否则不同的处理器可能用到不同的数据。共享内存是Unix下的多进程之间的通信方法,这种方法通常用于一个程序的多进程间通信,实际上多个程序间也可以通过共享内存来传递信息。
在其中一些实施例中,查询前置服务模块负责发送消息给多机并行计算模块,并从多机并行计算模块和共享内存服务模块中收集并聚合计算结果;
查询多机并行计算模块中各机器的任务处理状态,并在任务结束后清理任务缓存;
查询前置服务模块中注册有消息触发程序、自定义消息体和自定义消息处理函数,自定义消息处理函数利用嵌套多层消息完成图计算。
查询前置服务模块负责发送消息给多机并行计算模块,并从多机并行计算模块和共享内存服务模块中收集并聚合计算结果;
在其中一些实施例中,多机并行计算模块接收查询前置服务模块的消息,通过消息处理函数处理消息并得到处理结果,将消息发送至本机或其他机器,并将本地的处理结果聚合。
需要说明的是,上述各个模块可以是功能模块也可以是程序模块,既可以通过软件来实现,也可以通过硬件来实现。对于通过硬件来实现的模块而言,上述各个模块可以位于同一处理器中;或者上述各个模块还可以按照任意组合的形式分别位于不同的处理器中。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种基于模拟网络广播的图并行计算方法,其特征在于,包括以下步骤:
消息接收步骤,一机器A的起始节点接收一查询前置服务模块根据ID规则发出的消息,并通过一跳查询返回位于本机或/和其他机器上的邻接节点的ID;
消息传输步骤,所述起始节点根据各所述邻接节点的ID,结合所述ID规则,将所述消息发送至各所述邻接节点;
消息处理步骤,所述邻接节点处理所述消息并进行转发,当所述邻接节点判断当前所述消息的TTL为零时,不在传送所述消息,并取出所述邻接节点的ID,将处理结果写入到所述邻接节点对应的局部存储器后将所述消息销毁;
结果聚合步骤,所述查询前置服务判断所述消息是否全部销毁,并从各所述机器上取出所述处理结果,对所述处理结果进行聚合后返回至一客户端。
2.根据权利要求1所述的基于模拟网络广播的图并行计算方法,其特征在于,所述消息传输步骤具体包括:
所述起始节点在发送时首先将所述消息进行复制并生成消息副本,将所述消息副本发送至各所述邻接节点,根据所述消息副本量减少所述消息的TTL,并在销毁所述消息后减少所述起始点的消息个数。
3.根据权利要求1所述的基于模拟网络广播的图并行计算方法,其特征在于,所述消息处理步骤包括:
当所述消息传输到一邻接节点后,所述邻接节点根据一消息处理函数处理所述消息;
所述消息处理函数继承于MessageHandler类,所述MessageHandler类内置多个接口,所述接口包括MessageSyatem、ShareMemory和LocalMemory。
4.根据权利要求3所述的基于模拟网络广播对的图并存计算方法,其特征在于,所述邻接节点处理消息的具体步骤包括:
消息队列消息接收步骤,一消息队列接受本机或其他机器的所述消息,所述消息表明消息来源和消息接收者;
任务生成步骤,一线程池根据所述消息来源对应每一条所述消息生成一个任务,完成对所述消息的处理;
消息转发步骤,当所述消息转发给本地节点,直接生成新消息发送到所述消息队列;当所述消息转发给外部节点,直接生成新消息发送到外部机器;
处理结果存储步骤,所述消息处理函数将处理结果写入所述局部存储器的消息表后,所述消息被销毁;
通知步骤,所述邻接节点通过redis incr和decr来统计当前消息个数,当所述邻接节点的消息个数为0时,通知所述查询前置服务。
5.根据权利要求1所述的基于模拟网络广播的图并行计算方法,其特征在于,所述消息接收步骤之前还包括前置查询处理步骤,包括以下步骤:
消息首次传送步骤,对所述消息进行初始化,并对所述消息进行首次传送;
内存清理步骤,当所有的所述消息都被销毁以后,聚合或分析出相应的处理结果,销毁存储所述处理结果的内存。
6.根据权利要求1所述的基于模拟网络广播的图并行计算方法,其特征在于,所述消息在各节点之间传输,所述消息自带TTL,通过路径查询或两跳查询获取所述消息的TTL,当所述TTL为零时,所述消息被销毁。
7.一种基于模拟网络广播的图并行计算系统,应用上述权利要求1-6任意一项所述的图并行计算方法,其特征在于,包括:
ID服务模块,将用户传入的KEY转换成LONG型ID并输出;
查询前置服务模块,接收所述LONG型ID,依据ID规则将所述消息输出,并收集和聚合所述消息的计算结果;
多机并行计算模块,包括多台机器,所述机器用于接收所述消息,并返回对应的处理结果。
8.根据权利要求7所述的基于模拟网络广播对的图并行系统,其特征在于,还包括共享内存服务模块,与所述查询前置服务模块和所述多机并行计算模块连接,所述共享内存服务模块缓存有一定量的超点和图结构,并进行其共享内存的计算,对所述处理结果进行收集。
9.根据权利要求8所述的基于模拟网络广播的图并行系统,其特征在于,所述查询前置服务模块负责发送所述消息给多机并行计算模块,并从所述多机并行计算模块和所述共享内存服务模块中收集并聚合计算结果;
查询所述多机并行计算模块中各所述机器的任务处理状态,并在任务结束后清理任务缓存;
所述查询前置服务模块中注册有消息触发程序、自定义消息体和自定义消息处理函数,所述自定义消息处理函数利用嵌套多层消息完成图计算。
10.根据权利要求7所述的基于模拟网络广播的图并行系统,其特征在于,所述多机并行计算模块接收所述查询前置服务模块的消息,通过所述消息处理函数处理所述消息并得到处理结果,将所述消息发送至本机或其他机器,并将本地的所述处理结果聚合。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011580124.3A CN112637067A (zh) | 2020-12-28 | 2020-12-28 | 基于模拟网络广播的图并行计算系统和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011580124.3A CN112637067A (zh) | 2020-12-28 | 2020-12-28 | 基于模拟网络广播的图并行计算系统和方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112637067A true CN112637067A (zh) | 2021-04-09 |
Family
ID=75325514
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011580124.3A Pending CN112637067A (zh) | 2020-12-28 | 2020-12-28 | 基于模拟网络广播的图并行计算系统和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112637067A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114925123A (zh) * | 2022-04-24 | 2022-08-19 | 杭州悦数科技有限公司 | 一种分布式的图数据库与图计算系统间的数据传输方法 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005119476A2 (en) * | 2004-05-19 | 2005-12-15 | Wurld Media, Inc. | Routing of digital content in a peer-to-peer dynamic connection structure |
CN102663117A (zh) * | 2012-04-18 | 2012-09-12 | 中国人民大学 | 面向数据库与Hadoop混合平台的OLAP查询处理方法 |
CN103336808A (zh) * | 2013-06-25 | 2013-10-02 | 中国科学院信息工程研究所 | 一种基于bsp模型的实时图数据处理系统及方法 |
CN104657497A (zh) * | 2015-03-09 | 2015-05-27 | 国家电网公司 | 一种基于分布式计算的海量用电信息并行计算系统及方法 |
CN105824868A (zh) * | 2015-12-24 | 2016-08-03 | 广东亿迅科技有限公司 | 一种分布式数据库数据处理方法和分布式数据库系统 |
CN107172149A (zh) * | 2017-05-16 | 2017-09-15 | 成都四象联创科技有限公司 | 大数据即时调度方法 |
CN109815002A (zh) * | 2017-11-21 | 2019-05-28 | 中国电力科学研究院有限公司 | 一种基于在线仿真的分布式并行计算平台及其方法 |
CN111639082A (zh) * | 2020-06-08 | 2020-09-08 | 成都信息工程大学 | 基于Ceph的十亿级节点规模知识图谱的对象存储管理方法及系统 |
CN112114984A (zh) * | 2020-09-17 | 2020-12-22 | 清华大学 | 图数据处理方法及装置 |
-
2020
- 2020-12-28 CN CN202011580124.3A patent/CN112637067A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005119476A2 (en) * | 2004-05-19 | 2005-12-15 | Wurld Media, Inc. | Routing of digital content in a peer-to-peer dynamic connection structure |
CN102663117A (zh) * | 2012-04-18 | 2012-09-12 | 中国人民大学 | 面向数据库与Hadoop混合平台的OLAP查询处理方法 |
CN103336808A (zh) * | 2013-06-25 | 2013-10-02 | 中国科学院信息工程研究所 | 一种基于bsp模型的实时图数据处理系统及方法 |
CN104657497A (zh) * | 2015-03-09 | 2015-05-27 | 国家电网公司 | 一种基于分布式计算的海量用电信息并行计算系统及方法 |
CN105824868A (zh) * | 2015-12-24 | 2016-08-03 | 广东亿迅科技有限公司 | 一种分布式数据库数据处理方法和分布式数据库系统 |
CN107172149A (zh) * | 2017-05-16 | 2017-09-15 | 成都四象联创科技有限公司 | 大数据即时调度方法 |
CN109815002A (zh) * | 2017-11-21 | 2019-05-28 | 中国电力科学研究院有限公司 | 一种基于在线仿真的分布式并行计算平台及其方法 |
CN111639082A (zh) * | 2020-06-08 | 2020-09-08 | 成都信息工程大学 | 基于Ceph的十亿级节点规模知识图谱的对象存储管理方法及系统 |
CN112114984A (zh) * | 2020-09-17 | 2020-12-22 | 清华大学 | 图数据处理方法及装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114925123A (zh) * | 2022-04-24 | 2022-08-19 | 杭州悦数科技有限公司 | 一种分布式的图数据库与图计算系统间的数据传输方法 |
CN114925123B (zh) * | 2022-04-24 | 2024-06-07 | 杭州悦数科技有限公司 | 一种分布式的图数据库与图计算系统间的数据传输方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Yang et al. | Elastic sketch: Adaptive and fast network-wide measurements | |
Wang et al. | Adaptive and fault-tolerant data processing in healthcare IoT based on fog computing | |
Lam et al. | Muppet: Mapreduce-style processing of fast data | |
US20050097300A1 (en) | Processing system and method including a dedicated collective offload engine providing collective processing in a distributed computing environment | |
Song et al. | Fcm-sketch: generic network measurements with data plane support | |
US9736034B2 (en) | System and method for small batching processing of usage requests | |
US9158689B2 (en) | Aggregating cache eviction notifications to a directory | |
Guo et al. | Exploiting efficient and scalable shuffle transfers in future data center networks | |
CN107135268B (zh) | 基于信息中心网络的分布式任务计算方法 | |
Wang et al. | Randomized error removal for online spread estimation in data streaming | |
KR102126320B1 (ko) | 분산 처리 시스템, 데이터 처리 방법 및 제어 노드 장치 | |
EP2514175A1 (en) | Method and apparatus for locating services within peer-to-peer networks | |
WO2011127716A1 (zh) | 多线程处理方法和装置 | |
Moeini et al. | Routing in IoT network for dynamic service discovery | |
Pellegrino et al. | A distributed publish/subscribe system for RDF data | |
US6973536B1 (en) | Self-adaptive hybrid cache | |
CN112637067A (zh) | 基于模拟网络广播的图并行计算系统和方法 | |
Pereñíguez-García et al. | Secure communications in wireless network-on-chips | |
Pan et al. | Scalable breadth-first search on a GPU cluster | |
Xiang et al. | Carpool: A bufferless on-chip network supporting adaptive multicast and hotspot alleviation | |
Moeini et al. | Service specification and discovery in IoT networks | |
Chakraborty et al. | PMI extensions for scalable MPI startup | |
CN113934933B (zh) | 低延迟的消息转发方法、设备及存储介质 | |
US10193790B2 (en) | Systems and methods for an intelligent, distributed, autonomous, and scalable resource discovery, management, and stitching | |
Yoshihisa et al. | A low-load stream processing scheme for IoT environments |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210409 |