CN110750385B - 一种基于受限恢复的图迭代器及方法 - Google Patents

一种基于受限恢复的图迭代器及方法 Download PDF

Info

Publication number
CN110750385B
CN110750385B CN201911021201.9A CN201911021201A CN110750385B CN 110750385 B CN110750385 B CN 110750385B CN 201911021201 A CN201911021201 A CN 201911021201A CN 110750385 B CN110750385 B CN 110750385B
Authority
CN
China
Prior art keywords
recovery
fault
data
graph
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.)
Active
Application number
CN201911021201.9A
Other languages
English (en)
Other versions
CN110750385A (zh
Inventor
韦刘国
赵宇海
王国仁
季航旭
李博扬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Northeastern University China
Beijing Institute of Technology BIT
Original Assignee
Northeastern University China
Beijing Institute of Technology BIT
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Northeastern University China, Beijing Institute of Technology BIT filed Critical Northeastern University China
Priority to CN201911021201.9A priority Critical patent/CN110750385B/zh
Publication of CN110750385A publication Critical patent/CN110750385A/zh
Application granted granted Critical
Publication of CN110750385B publication Critical patent/CN110750385B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Quality & Reliability (AREA)
  • Hardware Redundancy (AREA)
  • Retry When Errors Occur (AREA)

Abstract

本发明公开一种基于受限恢复的图迭代器及方法,属于分布式迭代计算技术领域。该迭代器采用分布式图计算算法的join‑GroupBy‑Union‑aggregation模式将图计算转换操作中的宽依赖转化为窄依赖,并对部分数据进行备份,从而使得只需恢复故障节点而不需要完全将整个计算回退到最近检查点保存的状态;在故障节点恢复时采用所有健康节点来并行恢复,进一步加快了故障恢复的速度;图迭代中在迭代尾部添加检查点的非阻塞检查点模型,加速了检查点的写入速度,并且在尾部检查点添加了迭代感知器,使得仅在当前迭代中的检查点完成后才启动下一个迭代,有助于在迭代图处理期间协调检查点的创建。

Description

一种基于受限恢复的图迭代器及方法
技术领域
本发明涉及分布式迭代计算技术领域,尤其涉及一种基于受限恢复的图迭代器及方法。
背景技术
由于图数据强大的表达能力,近年来分布式图数据的处理受到广泛的关注。图迭代器广泛应用于数据挖掘、机器学习和应用统计领域。随着互联网技术的快速发展,对海量数据的迭代处理与分析具有巨大的应用价值。伴随分布式系统的计算节点的不断增加,故障率也随之提升。图迭代器的设计和容错方法的设计是制约计算效率的主要瓶颈之一,是不可忽略的关键技术。
在现有技术中,为了满足大规模分布式图数据迭代处理的需要,工业界开发了许多新颖的专用系统。例如,用于大规模分布式图计算的Pregel、GraphLab和PowerGraph。这些专用系统从设计上支持为图计算量身定制的广泛的系统优化。在许多情况下图计算是整体工作流的一部分,这种整体工作流程通常包括如下步骤:数据准备、模型构建和模型评估。在上述专用系统中处理这种更复杂的场景非常麻烦,尤其是在预处理数据时(例如,当从爬取的网页中提取链接以创建web图形时)。所以我们需要在一个更通用的分布式系统上进行图计算的优化。
通用的分布式系统的图迭代器在处理批量任务时,如果某台节点发生故障或者某个任务失败时,系统会根据文件可以重复访问的特性,重新启动该迭代任务,即基于分布式快照和部分可重发的数据源实现了容错。当任务出现失败时,系统将整个Job恢复到最近一次快照的状态,并从数据源重发快照之后的数据。如果故障经常发生,这种悲观的方法很有效。然而,现有的图迭代器在任务量较小或任务发生故障概率较低的情况下,采用了悲观的容错策略,带来较大的额外开销,没有综合考虑迭代任务量大小以及任务故障率的容错方案影响了真正的迭代计算效率。
发明内容
针对上述现有技术的不足,本发明提供一种基于受限恢复的图迭代器及方法。
为解决上述技术问题,本发明所采取的技术方案是:一种基于受限恢复的图迭代器,包括:依赖转换与数据备份模块、尾检查点模块与受限恢复模块;
所述依赖转换与数据备份模块:以分布式图计算算法的join-GroupBy-Union-aggregation模式为基础,将对上游数据的依赖转换为窄依赖模式,其模型示意图如图1所示;通过数据备份来实现故障节点恢复的单依赖性,保证故障恢复时只需对故障节点进行恢复;
所述分布式图计算算法的join-GroupBy-Union-aggregation模式的流程如下:
(1)将join算子依赖的上游图数据结构的顶点集Vertex数据通过检查点机制进行备份,图数据结构的边集Edge数据持久化到Hadoop分布式文件系统HDFS中,从而保证该步骤只需从分布式文件系统中恢复即可;
(2)将GroupBy算子依赖的上游Message数据在各节点的日志系统中进行存储,该步骤的恢复只需要读取相应的日志信息即可;
(3)Union算子和join阶段的Vertex保持相同的分区,以保证没有shuffle操作,在没有shuffle操作的情况下不需要额外的恢复策略;
(4)在Union算子同分区的情况下Aggregation对上游数据是窄依赖的。
所述尾检查点模块采用非阻塞检查点,其结构如图2所示,实现反向通道与写检查点的同时进行;同时为了保证迭代的正确执行,加入迭代感知器,使迭代头知道什么时候可以进入下次迭代,检查点的存储利用Hadoop提供的分布式存储工具HDFS;
所述受限恢复模块根据依赖转换模块的窄依赖模式将故障的恢复限制在只针对故障节点的恢复,同时针对集群中可能出现的单点故障,多点故障,以及级联故障分别提出了对应的恢复方式。
采用上述基于受限恢复的图迭代器进行迭代的方法,包括如下步骤:
步骤1:依赖转换与数据备份:图数据结构由顶点集Vertex和边集Edge两部分组成,针对分布式图算法中广泛采用的join-GroupBy-Union-aggregation模式,通过将其对上游数据的依赖转换为窄依赖和通过数据备份来实现故障节点恢复的单依赖性,从而避免了完全恢复;
根据join-GroupBy-Union-aggregation模式的逆序模式来反向描述依赖转换与数据备份如何保证在只恢复故障节点的情况下还能保证恢复策略的正确性,如下:
步骤1.1:Aggregation算子对上游分区结果的窄依赖:如果Neighbor和Vertex是同分区的,那么在Union操作后的数据是良好分区的;在这种情况下,一个在Neighbor+上的Aggregation操作不需要shuffle阶段,因此其对上游分区结果是窄依赖的;为了实现这一点,需要GroupBy算子将相同的对Vertex进行分区的函数应用于Message;
步骤1.2:GroupBy算子Shuffle阶段的路由信息备份:GroupBy丢失的Neighbor分区依赖于同一故障节点上的Message分区以及在Shuffle阶段从健康节点上的其他分区接收的数据。如果所有节点在正常执行时都在groupBy中的Shuffle阶段本地存储Message数据的路由信息,那么可以保证GroupBy阶段的受限恢复。因为来自其他节点的路由Message数据只需要从本地Log中获取,而无需完全重新计算即可得到;
步骤1.3:Join算子:Vertex的丢失分区和Edge可以分别通过检查点和数据源进行重建。因此只需要重新计算出Message的丢失分区,而无需完全重新执行以将Vertex与Edge进行join操作。
步骤2:采用非阻塞的尾检查点机制,使得通过反向通道将数据传输到迭代头与写检查点操作同时进行;
步骤2.1:非阻塞检查点的实现:通过修改原有的写入检查点,然后采用反向通道传输数据的顺序,实现检查点的写入与反向通道传输数据的同时进行;
步骤2.2:加入迭代感知模块,用于接收检查点写入结束的信号,通过获取此信号来通知迭代头可以开启下次迭代;迭代感知模块简化了系统架构,并有助于在迭代图处理期间协调检查点的创建。
步骤3:受限恢复:一旦检测到节点故障,只考虑对故障节点进行恢复,不对整个集群进行恢复;采用多个健康节点并行恢复,加速状态恢复的过程。
所述的受限恢复包括:单点故障恢复、多点故障恢复和级联故障恢复。
所述单点故障恢复的流程如图3所示,包括如下步骤:
S1:从检查点恢复丢失分区的Vertex记为Vj,并从HDFS读取之前存入的Edge记为E;
S2:Vj并行地与E连接以重建故障节点的本地Message记为Mj,即节点Nj上Message的丢失分区;
S3:获取所有健康节点上的本地日志,记为Lk,其中k≠j,从中读取节点Nk到故障节点Nj的路由Message信息;
S4:将故障节点的Mj加上所有健康节点的本地日志Lk,获取Neighbor丢失的分区Nej
S5:将Vj与Nej进行Union操作,即可得到Nej +
S6:在aggregation阶段通过聚合函数f对Nej +进行聚合即可恢复Vertex'的丢失分区Vj',并且将Vj'替换为Vj
S7:当前迭代次数由i增加到i+1;
S8:重复执行S1至S7,直到迭代状态达到失败前一个的状态跳出循环。
所述多点故障恢复的过程如下:
从逻辑上将多个节点视为一个节点,则多个节点的故障将逻辑地转变为单个节点的故障,执行单点故障恢复的流程。
所述级联故障恢复的过程如下:
级联故障即在单点故障的过程中又发生了单点故障,当系统正在进行单点故障恢复时,嵌套执行单点故障恢复流程。
采用上述技术方案所产生的有益效果在于:
1、针对故障恢复提出了从检查点快速恢复的受限恢复方法,通过将图计算转换操作中的宽依赖转化为窄依赖并对部分数据进行备份,从而使得只需恢复故障节点而不需要完全将整个计算回退到最近检查点保存的状态;
2、故障节点的恢复使用所有健康节点来并行恢复,进一步加快了故障恢复的速度;
3、对以往分布式流处理系统中容错部分常用的阻塞检查点方式进行优化,在图迭代中实现了在迭代尾部添加检查点的非阻塞检查点模型;对于尾部检查点模型,使得检查点的编写与每个超步结束时顶点数据集的生成并行进行,加速了检查点的写入速度;
4、在尾部检查点添加了迭代感知器,使得仅在当前迭代中的检查点完成后才启动下一个迭代。
附图说明
图1为本发明分布式图计算算法的join-GroupBy-Union-aggregation模式示意图;
图2为本发明尾检查点模块采用非阻塞检查点的示意图;
图3为本发明单点故障恢复流程图;
图4为本发明基于受限恢复的图迭代器容错示意图;
图5为本发明实施例中Gaia中批量迭代器模型示意图;
图6为本发明实施例中连通分量算法的图数据集;
图7为本发明实施例中连通分量图数据集的初始图数据结构;
图8为本发明实施例中正常执行时每次迭代结果示意图;
图9为本发明实施例中受限情况下第二次超步SuperStep数据处理图;
图10为本发明实施例中第二个超步SuperStep的并行受限恢复。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
本实施例采用通用的分布式系统Gaia进行图计算的优化。Gaia中现有的阻塞检查点以及节点故障时集群整体状态的回退严重拖慢了迭代图计算的时间。本发明的图迭代器对上述两个问题进行了优化:根据基于窄依赖模式的受限恢复将Gaia图计算的故障恢复限制在故障节点上;通过非阻塞检查点以及迭代感知器将写检查与反向通道传输迭代数据并行进行。
基于受限恢复的图迭代器容错示意图,也就是受限恢复模块,如图4所示:故障的恢复只是对故障节点3的状态进行恢复,而不是整个集群状态的回退。依赖转换与数据备份模块确保了只对故障节点进行恢复的可行性,尾检查点模块优化了系统并行处理的速度,最终确保了受限恢复模块的实现。本实施例中基于受限恢复的图迭代器,包括:依赖转换与数据备份模块、尾检查点模块与受限恢复模块;
所述依赖转换与数据备份模块:以分布式图计算算法的join-GroupBy-Union-aggregation模式为基础,将对上游数据的依赖转换为窄依赖模式,其模型示意图如图1所示;通过数据备份来实现故障节点恢复的单依赖性,保证故障恢复时只需对故障节点进行恢复;
所述尾检查点模块采用非阻塞检查点,其结构如图2所示,实现反向通道与写检查点的同时进行;同时为了保证迭代的正确执行,加入迭代感知器,使迭代头知道什么时候可以进入下次迭代,检查点的存储利用Hadoop提供的分布式存储工具HDFS;
所述受限恢复模块根据依赖转换模块的窄依赖模式将故障的恢复限制在只针对故障节点的恢复,同时针对集群中可能出现的单点故障,多点故障,以及级联故障分别提出了对应的恢复方式。
采用上述基于受限恢复的图迭代器进行迭代的方法,包括如下步骤:
步骤1:依赖转换与数据备份:图数据结构由顶点集Vertex和边集Edge两部分组成,针对分布式图算法中广泛采用的join-GroupBy-Union-aggregation模式,通过将其对上游数据的依赖转换为窄依赖和通过数据备份来实现故障节点恢复的单依赖性,从而避免了完全恢复;
根据join-GroupBy-Union-aggregation模式的逆序模式来反向描述依赖转换与数据备份如何保证在只恢复故障节点的情况下还能保证恢复策略的正确性,如下:
步骤1.1:Aggregation算子对上游分区结果的窄依赖:如果Neighbor和Vertex是同分区的,那么在Union操作后的数据是良好分区的;在这种情况下,一个在Neighbor+上的Aggregation操作不需要shuffle阶段,因此其对上游分区结果是窄依赖的;为了实现这一点,需要GroupBy算子将相同的对Vertex进行分区的函数应用于Message;
步骤1.2:GroupBy算子Shuffle阶段的路由信息备份:GroupBy丢失的Neighbor分区依赖于同一故障节点上的Message分区以及在Shuffle阶段从健康节点上的其他分区接收的数据。如果所有节点在正常执行时都在groupBy中的Shuffle阶段本地存储Message数据的路由信息,那么可以保证GroupBy阶段的受限恢复。因为来自其他节点的路由Message数据只需要从本地Log中获取,而无需完全重新计算即可得到;让Mj(j∈[0,n-1])表示Message在节点Nj的分区,并且Mk→j表示将Message信息从节点Nk发送到节点Nj。对任何k∈[0,n-1]并且k≠j,Mk→j被写到Nk的日志中。这个在Nk节点的日志被表示为Lk
步骤1.3:Join算子:Vertex的丢失分区和Edge可以分别通过检查点和数据源进行重建。因此只需要重新计算出Message的丢失分区,而无需完全重新执行以将Vertex与Edge进行join操作。
步骤2:采用非阻塞的尾检查点机制,使得通过反向通道将数据传输到迭代头与写检查点操作同时进行;
步骤2.1:非阻塞检查点的实现:通过修改原有的写入检查点,然后采用反向通道传输数据的顺序,实现检查点的写入与反向通道传输数据的同时进行,如图2所示,检查的点写入不再阻碍反向通道传输数据到下游操作;
步骤2.2:加入迭代感知模块,用于接收检查点写入结束的信号,通过获取此信号来通知迭代头可以开启下次迭代;迭代感知模块简化了系统架构,并有助于在迭代图处理期间协调检查点的创建,如图2所示,通过监控写入HDFS中的数据,判断检查点是否已经写入完毕,如果写入完成则由迭代感知器通知迭代头可以开启下次迭代。
步骤3:受限恢复:一旦检测到节点故障,只考虑对故障节点进行恢复,不对整个集群进行恢复;采用多个健康节点并行恢复,加速状态恢复的过程。
所述的受限恢复包括:单点故障恢复、多点故障恢复和级联故障恢复。
所述单点故障恢复的流程如图3所示,包括如下步骤:
S1:从检查点恢复丢失分区的Vertex记为Vj,并从HDFS读取之前存入的Edge记为E;
S2:Vj并行地与E连接以重建故障节点的本地Message记为Mj,即节点Nj上Message的丢失分区;
S3:获取所有健康节点上的本地日志,记为Lk,其中k≠j,从中读取节点Nk到故障节点Nj的路由Message信息;
S4:将故障节点的Mj加上所有健康节点的本地日志Lk,获取Neighbor丢失的分区Nej
S5:将Vj与Nej进行Union操作,即可得到Nej +
S6:在aggregation阶段通过聚合函数f对Nej +进行聚合即可恢复Vertex'的丢失分区Vj',并且将Vj'替换为Vj
S7:当前迭代次数由i增加到i+1;
S8:重复执行S1至S7,直到迭代状态达到失败前一个的状态跳出循环。
本实施例采用Gaia系统中的批量迭代模型,分析一个单点故障的实例来阐述受限恢复图迭代器的执行过程,如图5所示为Gaia中批量迭代模型,其中步函数可以理解为循环流程中的循环体。
以图算法中的连通分量算法为例来说明单点故障恢复,图6为连通分量算法的图数据集。在连通分量算法中图中所有顶点的初始权值为其顶点编号,通过将更小的权值不断传播给相邻节点来进行迭代,最终每个连通分量中的顶点权值都变为该连通分量中的最小编号的值,通过查看权值即可找出所有的连通分量。图计算中图数据结构主要包括顶点数据集和边数据集两部分,图7为连通分量图数据集的初始图数据结构,其中所有顶点的初始权值为其顶点编号,边数据集为相邻节点的节点对的值(因为是无向图,所以源点也是目的顶点)。
图8展示了正常执行时每次迭代结果示意图,其中V0,V1,V2分别表示在节点N0,N1,N2上执行的顶点数据子集,图8展示了图7中顶点数据在四次迭代之后达到收敛。
图9展现了本发明中受限恢复的图迭代器正常执行第二次超步SuperStep的过程。首先,将顶点集Vertex和边集Edge分区,然后将Vertex和Edge进行Join操作得到Message(Message中记录的是每个节点受到的相邻节点传来的值)。注意在Vertex和Edge的Join操作中存在shuffle操作,这说明Join是宽依赖的,我们通过检查点中的Vertex和存入HDFS的边集Edge保证了在进行恢复时不需要健康节点的shuffle数据。对Message进行GroupBy分组操作时要保证Neighbor与Vertex同分区,这时也会出现对Message的shuffle操作,但是通过把各个节点的Message信息通过Log进行本地保存,这样在之后的恢复中只需要读取健康节点本地Log里面的Message信息就可以获取到故障恢复需要的来自其他节点的Message信息。因为Vertex和Neighbor本身是同分区的,所以Union是对上游数据是窄依赖的。因为Vertex和Neighbor是同分区的,所以Vertex和Neighbor+也是同分区的,所以Aggregation算子对上游数据也是窄依赖的。
图10展现了本发明中第二个超步SuperStep的并行受限恢复,这里假设节点3出现故障,所以需要对节点3进行单点故障恢复。在这里我们把节点3的任务提交到健康节点进行恢复,直到恢复到任务失败前的状态为止。首先,从检查点中读取故障节点3的顶点信息V3,并从HDFS读取存储的所有的边信息Edge。将V3与Edge进行连接操作即可得到故障节点N2执行第二次超步时的本地Message,再通过读取N0和N1节点的本地日志里的Message信息即可得到故障节点N2原来需要的来自其他节点的shuffle信息。对Message和Log相加并进行GroupBy操作,在GroupBy时需要保证Neighbor与Vertex同分区,所以只有3,6,9三个顶点的信息被保存。接着将Vertex与Neighbor进行Union操作得到Neighbor+,因为Vertex与Neighbor是同分区的,所以Union操作是没有shuffle过程的。最后将得到的Neighbor+通过聚合函数进行聚合,得到更新后的顶点集Vertex+。这里的聚合函数的作用是在Neighbor+里面找到所有顶点的最小权值。
所述多点故障恢复的过程如下:
从逻辑上将多个节点视为一个节点,则多个节点的故障将逻辑地转变为单个节点的故障,执行单点故障恢复的流程。
所述级联故障恢复的过程如下:
级联故障即在单点故障的过程中又发生了单点故障,当系统正在进行单点故障恢复时,嵌套执行单点故障恢复流程。

Claims (2)

1.一种基于受限恢复的图迭代器,其特征在于包括:依赖转换与数据备份模块、尾检查点模块与受限恢复模块;
所述依赖转换与数据备份模块:以分布式图计算算法的join-GroupBy-Union-aggregation模式为基础,将对上游数据的依赖转换为窄依赖模式;通过数据备份来实现故障节点恢复的单依赖性,保证故障恢复时只需对故障节点进行恢复;
所述分布式图计算算法的join-GroupBy-Union-aggregation模式的流程如下:
(1)将join算子依赖的上游图数据结构的顶点集Vertex数据通过检查点机制进行备份,图数据结构的边集Edge数据持久化到Hadoop分布式文件系统HDFS中,从而保证该步骤只需从分布式文件系统中恢复即可;
(2)将GroupBy算子依赖的上游Message数据在各节点的日志系统中进行存储,该步骤的恢复只需要读取相应的日志信息即可;
(3)Union算子和join阶段的Vertex保持相同的分区,以保证没有shuffle操作,在没有shuffle操作的情况下不需要额外的恢复策略;
(4)在Union算子同分区的情况下Aggregation对上游数据是窄依赖的;
所述尾检查点模块采用非阻塞检查点,实现反向通道与写检查点的同时进行;同时为了保证迭代的正确执行,加入迭代感知器,使迭代头知道什么时候可以进入下次迭代,检查点的存储利用Hadoop提供的分布式存储工具HDFS;
所述受限恢复模块根据依赖转换模块的窄依赖模式将故障的恢复限制在只针对故障节点的恢复,同时针对集群中可能出现的单点故障,多点故障,以及级联故障分别提出了对应的恢复方式。
2.采用权利要求1所述的基于受限恢复的图迭代器进行迭代的方法,其特征在于,包括如下步骤:
步骤1:依赖转换与数据备份:图数据结构由顶点集Vertex和边集Edge两部分组成,针对分布式图算法中广泛采用的join-GroupBy-Union-aggregation模式,通过将其对上游数据的依赖转换为窄依赖和通过数据备份来实现故障节点恢复的单依赖性,从而避免了完全恢复;
步骤1.1:Aggregation算子对上游分区结果的窄依赖:如果Neighbor和Vertex是同分区的,那么在Union操作后的数据是良好分区的;在这种情况下,一个在Neighbor+上的Aggregation操作不需要shuffle阶段,因此其对上游分区结果是窄依赖的;为了实现这一点,需要GroupBy算子将相同的对Vertex进行分区的函数应用于Message;
步骤1.2:GroupBy算子Shuffle阶段的路由信息备份:GroupBy丢失的Neighbor分区依赖于同一故障节点上的Message分区以及在Shuffle阶段从健康节点上的其他分区接收的数据,如果所有节点在正常执行时都在groupBy中的Shuffle阶段本地存储Message数据的路由信息,那么可以保证GroupBy阶段的受限恢复,因为来自其他节点的路由Message数据只需要从本地Log中获取,而无需完全重新计算即可得到;
步骤1.3:Join算子:Vertex的丢失分区和Edge可以分别通过检查点和数据源进行重建,因此只需要重新计算出Message的丢失分区,而无需完全重新执行以将Vertex与Edge进行join操作;
步骤2:采用非阻塞的尾检查点机制,使得通过反向通道将数据传输到迭代头与写检查点操作同时进行;
步骤2.1:非阻塞检查点的实现:通过修改原有的写入检查点,然后采用反向通道传输数据的顺序,实现检查点的写入与反向通道传输数据的同时进行;
步骤2.2:加入迭代感知模块,用于接收检查点写入结束的信号,通过获取此信号来通知迭代头可以开启下次迭代;迭代感知模块简化了系统架构,并有助于在迭代图处理期间协调检查点的创建;
步骤3:受限恢复:一旦检测到节点故障,只考虑对故障节点进行恢复,不对整个集群进行恢复;采用多个健康节点并行恢复,加速状态恢复的过程;
所述的受限恢复包括:单点故障恢复、多点故障恢复和级联故障恢复;
所述单点故障恢复的过程如下:
S1:从检查点恢复丢失分区的Vertex记为Vj,并从HDFS读取之前存入的Edge记为E;
S2:Vj并行地与E连接以重建故障节点的本地Message记为Mj,即节点Nj上Message的丢失分区;
S3:获取所有健康节点上的本地日志,记为Lk,其中k≠j,从中读取节点Nk到故障节点Nj的路由Message信息;
S4:将故障节点的Mj加上所有健康节点的本地日志Lk,获取Neighbor丢失的分区Nej
S5:将Vj与Nej进行Union操作,即可得到Nej +
S6:在aggregation阶段通过聚合函数f对Nej +进行聚合即可恢复Vertex'的丢失分区Vj',并且将Vj'替换为Vj
S7:当前迭代次数由i增加到i+1;
S8:重复执行S1至S7,直到迭代状态达到失败前一个的状态跳出循环;
所述多点故障恢复的过程如下:
从逻辑上将多个节点视为一个节点,则多个节点的故障将逻辑地转变为单个节点的故障,执行单点故障恢复的流程;
所述级联故障恢复的过程如下:
级联故障即在单点故障的过程中又发生了单点故障,当系统正在进行单点故障恢复时,嵌套执行单点故障恢复流程。
CN201911021201.9A 2019-10-25 2019-10-25 一种基于受限恢复的图迭代器及方法 Active CN110750385B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911021201.9A CN110750385B (zh) 2019-10-25 2019-10-25 一种基于受限恢复的图迭代器及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911021201.9A CN110750385B (zh) 2019-10-25 2019-10-25 一种基于受限恢复的图迭代器及方法

Publications (2)

Publication Number Publication Date
CN110750385A CN110750385A (zh) 2020-02-04
CN110750385B true CN110750385B (zh) 2022-09-09

Family

ID=69279834

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911021201.9A Active CN110750385B (zh) 2019-10-25 2019-10-25 一种基于受限恢复的图迭代器及方法

Country Status (1)

Country Link
CN (1) CN110750385B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111414338B (zh) * 2020-02-24 2023-05-12 华东师范大学 一种分布式图处理系统中以混合方式写检查点的方法
CN114356422A (zh) * 2022-03-21 2022-04-15 四川新迎顺信息技术股份有限公司 基于大数据的图计算方法、装置、设备及可读存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108293003A (zh) * 2015-09-04 2018-07-17 华为技术有限公司 分布式图处理网络的容错
CN108683738A (zh) * 2018-05-16 2018-10-19 腾讯科技(深圳)有限公司 图数据处理方法和图数据的计算任务发布方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070006145A1 (en) * 2005-05-04 2007-01-04 Hill Russell K Iterative operator in a graphical programming language

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108293003A (zh) * 2015-09-04 2018-07-17 华为技术有限公司 分布式图处理网络的容错
CN108683738A (zh) * 2018-05-16 2018-10-19 腾讯科技(深圳)有限公司 图数据处理方法和图数据的计算任务发布方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Performance comparison of Apache Hadoop and Apache Spark;Amritpal Singh et.al;《ICAICR "19: Proceedings of the Third International Conference on Advanced Informatics for Computing Research》;20190615;第1-5页 *
面向大数据分析的分布式文件系统关键技术;周江 等;《计算机研究与发展》;20140228;第51卷(第02期);第382-394页 *

Also Published As

Publication number Publication date
CN110750385A (zh) 2020-02-04

Similar Documents

Publication Publication Date Title
CN110750385B (zh) 一种基于受限恢复的图迭代器及方法
US11675654B2 (en) Systems and methods for error recovery
CN113076239B (zh) 一种高性能计算机用混合神经网络故障预测方法及系统
Riesen et al. See applications run and throughput jump: The case for redundant computing in HPC
CN111949445B (zh) 一种增量备份数据存储方法、装置、设备、产品
Chu et al. Fault tolerant neural networks with hybrid redundancy
CN110888761B (zh) 一种基于关键任务部分主动备份的容错方法和流处理平台
WO2019109256A1 (zh) 一种日志管理方法、服务器和数据库系统
Dey et al. Optimizing asynchronous multi-level checkpoint/restart configurations with machine learning
CN110795265B (zh) 一种基于乐观容错方法的迭代器
Kavitha et al. Task failure resilience technique for improving the performance of MapReduce in Hadoop
Levonyak et al. Scalable resilience against node failures for communication-hiding preconditioned conjugate gradient and conjugate residual methods
Agullo et al. Hard faults and soft-errors: possible numerical remedies in linear algebra solvers
US10379952B2 (en) Data recovery and regeneration using parity code
CN117112283B (zh) 一种基于pmc模型的并行自适应系统级故障诊断方法
Wang et al. Rect: Improving mapreduce performance under failures with resilient checkpointing tactics
Davies et al. Algorithm-based recovery for HPL
Fang et al. Towards Predicting the Impact of Roll-Forward Failure Recovery for HPC Applications
Zhu et al. A Spark-Based Parallel Implementation of Compressed Hyperspectral Image Reconstruction and Anomaly Detection
Jia et al. Hessenberg reduction with transient error resilience on gpu-based hybrid architectures
Zwerver Improving the Kim-Park Checkpointing Recovery Protocol
Abid et al. Parallelized 0/1 Knapsack Algorithm Optimization in CPU-GPU-Based Heterogeneous System with Algorithm-based Fault Tolerance
CN113722136A (zh) 一种服务器故障处理方法、系统、电子设备及存储介质
CN116203826A (zh) 基于投票器的冗余控制方法、装置、电子设备及存储介质
Fu et al. A multilevel fault-tolerance technique for the DAG data driven model

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