图计算方法和系统技术方案

技术编号:19691293 阅读:161 留言:0更新日期:2018-12-08 11:02
本申请提供一种图计算方法和系统。该方法包括:计算节点接收上一轮节点发送的图数据,并根据所述上一轮节点发送的结束消息确定图数据是否已接收完毕;计算节点若确定所述图数据已接收完毕,则根据所述图数据进行图计算,并在计算完成后检测其计算的顶点是否收敛;计算节点在确定存在未收敛的顶点时,将未收敛顶点的计算结果发送给下一轮计算节点,并在发送完毕所述计算结果后向所述下一轮计算节点发送结束消息;其中,所述上一轮节点包括:源节点、上一轮计算节点。本申请迭代计算过程无需将计算结果落库到中间存储,节省了计算节点大量的处理性能,还可以提高图计算速率。

【技术实现步骤摘要】
图计算方法和系统
本申请涉及互联网
,尤其涉及一种图计算方法和系统。
技术介绍
图计算(GraphComputation)是以“图论”为基础对现实世界的一种“图”结构的抽象表达,以及在这种数据结构上的计算模式。图数据结构可以很好的表达数据之间的关联性(dependenciesbetweendata),在大数据时代,通过图计算可以从噪音很多的海量数据中抽取出有用的信息,比如:用户传播网络、用户的购买行为等。相关技术中,通常采用批处理的方式进行图计算。批处理的方式在每次迭代时,都会将迭代结果落库到中间存储,下一次迭代任务启动时,再从中间存储中读取上一次的迭代结果进行计算。然而,每次迭代都落库到中间存储会造成巨大的性能消耗,还会导致计算时延,影响图计算的速率。
技术实现思路
有鉴于此,本申请提供一种图计算方法和系统。具体地,本申请是通过如下技术方案实现的:一种图计算方法,包括:计算节点接收上一轮节点发送的图数据,并根据所述上一轮节点发送的结束消息确定图数据是否已接收完毕;计算节点若确定所述图数据已接收完毕,则根据所述图数据进行图计算,并在计算完成后检测其计算的顶点是否收敛;计算节点在确定存在未收敛的顶点时,将未收敛顶点的计算结果发送给下一轮计算节点,并在发送完毕所述计算结果后向所述下一轮计算节点发送结束消息;其中,所述上一轮节点包括:源节点、上一轮计算节点。一种图计算系统,包括:源节点和计算节点;其中,计算节点接收上一轮节点发送的图数据,并根据所述上一轮节点发送的结束消息确定图数据是否已接收完毕;计算节点若确定所述图数据已接收完毕,则根据所述图数据进行图计算,并在计算完成后检测其计算的顶点是否收敛;计算节点在确定存在未收敛的顶点时,将未收敛顶点的计算结果发送给下一轮计算节点,并在发送完毕所述计算结果后向所述下一轮计算节点发送结束消息;其中,所述上一轮节点包括:所述源节点、上一轮计算节点。由以上描述可以看出,本申请计算节点执行完本轮图计算后,若确定存在未收敛的顶点,则可将未收敛顶点的计算结果发送给下一轮计算节点,并在计算结果发送完毕后发送结束消息给下一轮计算节点,下一轮计算节点根据结束消息判断是否接收到上一轮迭代的所有计算结果,以继续进行迭代计算。整个迭代计算过程无需将计算结果落库到中间存储,节省了计算节点大量的处理性能,还可以提高图计算速率。附图说明图1是本申请一示例性实施例示出的一种图计算方法的流程示意图。图2是本申请一示例性实施例示出的一种图计算系统的结构示意图。图3是本申请一示例性实施例示出的一种结束消息传递示意图。具体实施方式这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。图1是本申请一示例性实施例示出的一种图计算方法的流程示意图。请参考图1,所述图计算方法可以应用在图计算系统中,该图计算系统的物理载体可以为服务器或服务器集群,所述图计算方法可包括以下步骤:步骤101,计算节点接收上一轮节点发送的图数据,并根据所述上一轮节点发送的结束消息确定图数据是否已接收完毕。在本实施例中,图计算系统可以包括源节点和计算节点。其中,所述源节点可用于获取图计算任务的顶点信息和边信息,所述计算节点可以接收来自源节点或上一轮计算节点的图数据,并进行图计算处理。所述源节点和计算节点的数量都可以为多个。具体地,图计算是一个迭代计算的过程,本申请所述上一轮计算节点指的是上一次进行迭代计算的计算节点,与本轮计算节点可能是同一个计算节点,也可能是不同的计算节点,本申请对此不作特殊限制。在本实施例中,源节点或上一轮计算节点在将本次图数据发送完毕后,可以发送结束消息,本轮计算节点可以根据所述结束消息判断图数据是否发送完毕。在本实施例中,当所述上一轮节点是源节点时,所述图数据包括:源节点加载的顶点信息和边信息;当所述上一轮节点是上一轮计算节点时,所述图数据包括:上一轮计算节点发送的未收敛顶点的计算结果。步骤102,计算节点若确定所述图数据已接收完毕,则根据所述图数据进行图计算,并在计算完成后检测其计算的顶点是否收敛。步骤103,计算节点在确定存在未收敛的顶点时,将未收敛顶点的计算结果发送给下一轮计算节点,并在发送完毕所述计算结果后向所述下一轮计算节点发送结束消息。在本实施例中,下一轮计算节点在接收到所有本轮计算节点发送的结束消息时,可以确定已接收到本轮处理后的所有计算结果,进而可以根据接收到计算结果继续进行图计算,并在计算完成后检测其计算的顶点是否收敛,直至本次图计算的所有计算节点均确认顶点收敛。由以上描述可以看出,本申请计算节点执行完本轮图计算后,若确定存在未收敛的顶点,则可将未收敛顶点的计算结果发送给下一轮计算节点,并在计算结果发送完毕后发送结束消息给下一轮计算节点,下一轮计算节点根据结束消息判断是否接收到上一轮迭代的所有计算结果,以继续进行迭代计算。整个迭代计算过程无需将计算结果落库到中间存储,节省了计算节点大量的处理性能,还可以提高图计算速率。下面结合具体的实施例来描述本申请的实现过程。在本实施例中,可将图计算系统划分为3种系统角色,分别为:触发器、源节点以及计算节点。请参考图2所示的图计算系统,该图计算系统包括1个触发器、2个源节点和3个计算节点。其中,触发器可以是一个进程,用于触发图计算任务,其触发逻辑可以由用户自行设置,比如:可以触发单个图计算任务,也可以一次性触发多个并行的图计算任务;就触发时机而言,可以根据用户的指示触发,也可以定时触发等,本申请对此不作特殊限制。触发器在确定图计算任务被触发时,可以将本次图计算任务的计算信息发送给源节点。其中,所述计算信息通常由用户设置,包括有本次图计算任务的相关描述。可选的,触发器可以将所述计算信息发送至所有源节点,也可以根据用户的设置将所述计算信息发送至部分源节点。源节点在接收到触发器发送的计算信息后,可以从外部加载本次图计算所需要使用的数据,在图计算领域,可以将加载到的数据抽象为顶点信息和边信息,其中,所述顶点信息包括:顶点ID和顶点的属性值,所述边信息包括:起始顶点、结束顶点以及边上的属性值等。结合实际的应用场景,以用户的购买行为为例,有两类顶点,分别为:用户和产品,边是购买行为。顶点的ID可以为用户ID和产品本文档来自技高网...

【技术保护点】
1.一种图计算方法,包括:计算节点接收上一轮节点发送的图数据,并根据所述上一轮节点发送的结束消息确定图数据是否已接收完毕;计算节点若确定所述图数据已接收完毕,则根据所述图数据进行图计算,并在计算完成后检测其计算的顶点是否收敛;计算节点在确定存在未收敛的顶点时,将未收敛顶点的计算结果发送给下一轮计算节点,并在发送完毕所述计算结果后向所述下一轮计算节点发送结束消息;其中,所述上一轮节点包括:源节点、上一轮计算节点。

【技术特征摘要】
1.一种图计算方法,包括:计算节点接收上一轮节点发送的图数据,并根据所述上一轮节点发送的结束消息确定图数据是否已接收完毕;计算节点若确定所述图数据已接收完毕,则根据所述图数据进行图计算,并在计算完成后检测其计算的顶点是否收敛;计算节点在确定存在未收敛的顶点时,将未收敛顶点的计算结果发送给下一轮计算节点,并在发送完毕所述计算结果后向所述下一轮计算节点发送结束消息;其中,所述上一轮节点包括:源节点、上一轮计算节点。2.根据权利要求1所述的方法,所述结束消息中携带未收敛顶点的数量;所述方法还包括:计算节点若确定其计算的所有顶点都收敛,则发送未收敛顶点数量是零的结束消息给下一轮计算节点;计算节点在确定所有上一轮计算节点发送的结束消息携带的未收敛顶点数量均是零时,确定完成图计算。3.根据权利要求1所述的方法,还包括:触发器在确定图计算任务被触发时,将本次图计算任务的计算信息发送给所述源节点;所述源节点根据所述计算信息获取本次图计算任务的顶点信息和边信息;所述源节点根据预设的分发策略将所述顶点信息和所述边信息分发给计算节点进行计算。4.根据权利要求1所述的方法,所述结束消息中携带图计算任务ID,以供计算节点区分图计算任务。5.根据权利要求1所述的方法,当所述上一轮节点是源节点时,所述图数据包括:顶点信息、边信息;当所述上一轮节点是上一轮计算节点时,所述图数据包括:未收敛顶点的计算结果。6.一种图计算...

【专利技术属性】
技术研发人员:潘臻轩
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛,KY

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

1