CN108293003A - 分布式图处理网络的容错 - Google Patents

分布式图处理网络的容错 Download PDF

Info

Publication number
CN108293003A
CN108293003A CN201680051428.6A CN201680051428A CN108293003A CN 108293003 A CN108293003 A CN 108293003A CN 201680051428 A CN201680051428 A CN 201680051428A CN 108293003 A CN108293003 A CN 108293003A
Authority
CN
China
Prior art keywords
equipment
snapshot
iteration time
processor
time
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
Application number
CN201680051428.6A
Other languages
English (en)
Other versions
CN108293003B (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202011616126.3A priority Critical patent/CN112698978A/zh
Publication of CN108293003A publication Critical patent/CN108293003A/zh
Application granted granted Critical
Publication of CN108293003B publication Critical patent/CN108293003B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0709Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems
    • 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/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1438Restarting or rejuvenating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/32Monitoring with visual or acoustical indication of the functioning of the machine
    • G06F11/323Visualisation of programs or trace data
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • 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/1405Saving, restoring, recovering or retrying at machine instruction level
    • G06F11/1407Checkpointing the instruction stream
    • 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
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents
    • 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/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2025Failover techniques using centralised failover control functionality
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2035Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant without idle spare hardware
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2097Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements maintaining the standby controller/processing unit updated
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/855Details of asynchronous mirroring using a journal to transfer not-yet-mirrored changes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/005Network, LAN, Remote Access, Distributed System

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Retry When Errors Occur (AREA)
  • Hardware Redundancy (AREA)

Abstract

一种第一设备,包括:存储器,用于存储第一子图,所述第一子图是与分布式图处理网络相关联的分布式图的一部分;处理器,其耦合到所述存储器,并用于处理所述第一子图,以及以独立于所述分布式图处理网络中的第二设备的方式在第一迭代时间保存所述第一设备的第一执行状态的第一快照;以及发送器,其耦合到所述处理器,并用于将所述第一快照传输到所述第二设备或第三设备。

Description

分布式图处理网络的容错
相关申请案交叉申请
本申请要求2016年6月6日递交的发明名称为“分布式图处理网络的容错(Faulttolerance in distributed graph processing networks)”的第15/174,356号美国非临时专利申请案的在先申请优先权,该专利申请案进而要求Keval Vora等人于2015年9月4日递交的发明名称为“基于全局不一致检查点设置及恢复的容错(Globally InconsistentCheckpointing and Recovery Based Fault Tolerance,GIFT)”的第62/214,733号美国临时申请案的在先申请优先权,这些在先申请的内容以引入的方式并入本文本中。
背景技术
在数据处理中,图是对单个实体以及这些实体之间关系的一种表征。图的各个顶点表示这些实体,而图的各条边表示这些关系。在图中表征数据可以简化对数据的处理并且使数据间的关系更加清楚。此外,图处理是一个成熟的领域,处理算法得到了很好的理解、发展和应用。然而,当图较大且有大量连接时,单一的设备或节点可能无法处理所有的数据。因此,可能需要多个节点在分布式图处理网络中处理图。这些节点可能位于存在多个节点彼此通信的数据中心或其它环境之中。
发明内容
当前的容错方法可能较慢,并且可能不允许异步处理。根据本发明的各种实施例,提供一种容错方法。所述容错方法实现了全局不一致检查点设置和异步最小恢复。所述实施例提供一种更快的设备故障恢复方法,降低了检查点设置过程中的波峰带宽利用率,实现了更快的检查点设置,并且能够对检查点频率进行微调。波峰带宽利用率的降低使得执行分布式图处理应用的设备能够同步地处理其它应用。针对其中设备具有不同可靠性保证及其它不同特性的异构分布式图处理网络,对检查点频率进行微调允许基于该些不同可靠性保证及其它不同特性进行检查点设置。
在一个实施例中,一种第一设备,包括:存储器,用于存储第一子图,所述第一子图是与分布式图处理网络相关联的分布式图的一部分;处理器,其耦合到所述存储器,并用于:处理所述第一子图;以及以独立于所述分布式图处理网络中的第二设备的方式在第一迭代时间保存所述第一设备的第一执行状态的第一快照;以及发送器,其耦合到所述处理器,并用于将所述第一快照向所述第二设备或第三设备发送。在一些实施例中,所述处理器还用于进一步以异步方式处理所述第一子图;所述第二设备是分布式图处理设备;所述第三设备是控制器;所述处理器还用于依据所述第一设备出现故障的频率来保存快照;所述处理器还用于以独立于第二设备的方式在第二迭代时间保存所述第一设备的第二执行状态的第二快照;所述处理器还用于以独立于第二设备的方式在第三迭代时间保存所述第一设备的第三执行状态的第三快照,以使得所述第一迭代时间与所述第二迭代时间之间的第一时间间隔不同于所述第二迭代时间与所述第三迭代时间之间的第二时间间隔;所述第二迭代时间保证了最大失效期的遵从性;所述第一设备还包括:接收器,用于接收指令以实现所述最大失效期。
在另一个实施例中,一种控制器,包括:存储器;处理器,其耦合到所述存储器并用于:生成用于使第一设备在第一检查点过程中在第一迭代时间保存第一快照的第一指令,以及生成用于使第二设备在所述第一检查点过程中在第二迭代时间保存第二快照的第二指令;以及发送器,其耦合到所述处理器并用于:将所述第一指令向所述第一设备发送,以及将所述第二指令向所述第二设备发送。在一些实施例中,所述处理器还用于生成指示快照最大失效期的第三指令,其中所述发送器还用于将所述第三指令向所述第一设备和所述第二设备发送;所述处理器还用于生成指示使用正确性约束进行异步处理的处理指令,其中所述正确性约束是指当所述第一设备或所述第二设备读取顶点值时,所述第一设备或所述第二设备无法读取任何之前的顶点值,并且所述发送器还用于将所述处理指令向所述第一设备和所述第二设备发送;所述第一指令指示所述第一设备将所述第一快照向所述第二设备发送;在所述控制器在预期时间没有接收到来自所述第一设备的心跳消息时,所述处理器还用于生成用于使所述第二设备利用所述第一快照进行最小恢复的第三指令;所述处理器还用于生成用于使第三设备在所述第一检查点过程中在所述第一迭代时间、所述第二迭代时间或第三迭代时间保存第三快照的第三指令,并且所述发送器还用于将所述第三指令向所述第三设备发送;在所述控制器在第一预期时间没有接收到来自所述第一设备的第一心跳消息、所述控制器在第二预期时间没有接收到来自所述第二设备的第二心跳消息、并且所述第一迭代时间早于所述第二迭代时间时,所述处理器还用于生成用于使所述第三设备发起从所述第一设备开始进行最小恢复的指令。
在又一实施例中,一种在第一设备中实现的方法,所述方法包括:存储第一子图,所述第一子图与所述第一设备相关联并且是与分布式图处理网络相关联的分布式图的一部分;处理所述第一子图;以独立于所述分布式图处理网络中的第二设备的方式在第一迭代时间保存所述第一设备的第一执行状态的第一快照;以及将所述第一快照向所述第二设备或第三设备发送。在一些实施例中,所述方法还包括进一步以异步方式处理所述第一子图;所述方法还包括接收所述第二设备在第二迭代时间的第二执行状态的第二快照;所述方法还包括:确定所述第二设备出现故障;以及对与所述第二设备相关联、且是所述分布式图的一部分的第二子图进行处理,直至收敛。
根据以下结合附图以及权利要求书进行的详细描述,将更清楚地理解这些特征以及其它特征。
附图说明
为了更透彻地理解本发明,现参阅结合附图和具体实施方式而描述的以下简要说明,其中的相同参考标号表示相同部分。
图1是一种分布式图处理网络的示意图;
图2是一种分布式图;
图3是另一种分布式图处理网络的示意图;
图4是展示同步处理的时序图;
图5是展示异步处理的时序图;
图6是全局一致检查点设置的时序图;
图7是根据本公开的实施例的全局不一致检查点设置的时序图;
图8是根据本公开的实施例的一种分布式图处理网络的逻辑框图;
图9是示出全局不一致检查点设置和最小恢复的效果的图;
图10是根据本公开的实施例的一种全局不一致检查点设置方法的流程图;
图11是根据本公开的实施例的一种设备的示意图;
图12展示所述设备的一个示例实施例。
具体实施方式
首先应理解,尽管下文提供一项或多项实施例的说明性实施方案,但所公开的系统和/或方法可使用任何数目的技术来实施,无论该技术是当前已知还是现有的。本公开决不应限于下文所说明的说明性实施方案、附图和技术,包括本文所说明并描述的示例性设计和实施方案,而是可在所附权利要求书的范围以及其等效物的完整范围内修改。
图1是一种分布式图处理网络100的示意图。所述网络100包括第一设备110、第二设备120和第三设备130,这些设备包括通过边140彼此耦合的顶点150。所述设备110-130为任何合适的计算设备或者为这类计算设备的任何逻辑或物理分区。所述设备110-130处理分布式图。所述顶点150表示实体,所述边140表示这些实体之间的关系。所述边140针对待解决的问题可具有任何任意值。作为第一实例,所述顶点150为社交媒体网络用户,所述边140为这些用户之间的朋友关系。作为第二实例,所述顶点150为网页,所述边140为这些网页之间的超链接。
图2是一种分布式图200。所述图200包括分别与第一设备110、第二设备120和第三设备130对应的第一子图210、第二子图220和第三子图230。因此,第一设备110处理第一子图210,第二设备120处理第二子图220,第三设备130处理第三子图230。所述处理可以通过分布的方式进行。在图2中,顶点值250是从主顶点150,即顶点A,到其它辅顶点150的角度得到的,是表示与各边140相关联的值之和的常数。然而,其它分布图可能是从另一主顶点150到其它辅顶点150的角度得到的。继续以社交媒体网络为例,顶点值250表示两个顶点150,即顶点A和另一顶点150,之间的朋友数目。
在t0处的迭代时间240,顶点150之间不允许存在跳。迭代是指设备更新其执行状态的过程。执行状态是指在特定时间点,设备或者设备的逻辑分区或物理分区中所存储的部分或者全部数据。第一设备110计算顶点A与顶点A之间的顶点值250。由于顶点A与其自身之间不存在边,该顶点值为0。第一设备110无法计算顶点A与顶点B之间的顶点值250,因为这条路径需要经过顶点A到顶点B之间的一跳。因而,第一设备110将顶点A与顶点B之间的顶点值250设置为无穷大(∞)。设备110-130以类似方式计算其余顶点150的顶点值250。
在t1处的迭代时间240,顶点150之间允许存在一跳。第一设备110计算顶点A与顶点A,之间的顶点值250,该顶点值250仍然为0。第一设备110也计算顶点A与顶点B之间的顶点值250,该顶点值为1。第一设备110无法计算顶点A与顶点C之间的顶点值250,因为这条路径需要经过两跳:顶点A到顶点B之间的第一跳以及顶点B到顶点C之间的第二跳。因而,第一设备110将顶点B与顶点C之间的顶点值250设置为无穷大。第二设备120和第三设备130以类似方式计算其余顶点150的顶点值250。
设备110-130以类似方式计算在t2-t6处每个其余迭代时间240的顶点值250。对于每一个顶点150,设备110-130从前面的顶点150得知各边140的值。设备110-130知道这些值是因为它们不断地向彼此传输指示这些值和顶点值250的数据包。设备110-130每次计算低级顶点值250时更新各自对应的子图210-230。例如,在t2处的迭代时间240,只允许存在两跳,所以顶点A到顶点G的唯一可用路径是通过值为10的边140。从顶点A经过顶点B和顶点C到顶点G需要三跳;从顶点A经过顶点D、顶点E和顶点F到顶点G需要四跳;从顶点A经过顶点D、顶点E、顶点F、顶点I和顶点H到顶点G需要六跳。然而,在t3处的迭代时间240,允许存在三跳,所以从顶点A经过顶点B和顶点C到顶点G底路径是可用的。这条路径的顶点值250为5(1+1+3),所以第三设备130将顶点G在第三子图230中的顶点值250由10更新为5。第三设备130随后传输数据包到其它设备110-120以指示顶点G的更新后的顶点值250,从而在后续迭代中该顶点值250可供其它设备110-120使用。设备110-130继续进行迭代直至收敛,即直到迭代时间240处的顶点值250不再变化为止。可以看出,在t5和t6处的迭代时间240的顶点值250是相同的,因此设备110-130在t6处的迭代时间之后停止迭代,因为顶点值250在该迭代时间240已经收敛。
图3是另一种分布式图处理网络300的示意图。所述网络300与图1中的网络100类似。具体地说,所述网络300包括第一设备310、第二设备320和第三设备330,这些设备与第一设备110、第二设备120和第三设备130类似。然而,不同于网络100,网络300还包括网络340和控制器350。所述网络340可以是因特网或其它网络,并且所述控制器350控制设备310-330,如下文进一步描述。网络340和控制器350由虚线表示,表明它们是可选的。因此,当控制器350被描述为执行各种功能时,设备310-330或其它未图示的组件可以基于设备310-330或所述其它组件之间的通信、协议或其它合适的手段来执行这些功能。虽然网络300显示为包括三个设备310-330,网络300可以包括任何合适数目的设备。网络300处理图的方式主要有两种:同步处理和异步处理。
图4是展示同步处理的时序图400。所述时序图400展示两条垂直线,其中第一垂直线表示顶点,如顶点150,第二垂直线表示设备,如设备110-130和310-330。第一垂直线经过一连串的顶点值V1-V5,如顶点值250,第二垂直线经过一连串的迭代时间t1-t5,如迭代时间240。同步处理是指设备在ti处的处理是基于ti-1时的顶点值。换句话说,同步处理利用写后读依赖,即设备读取其所写入的上一个顶点值。因此,在t2处,顶点值V1是有效的。类似地,在t3处,顶点值V2是有效的;在t5处,顶点值V4是有效的。然而,在t4处,顶点值V2是无效的,因为顶点值V2来自t2,而t2比t4早两个迭代时间,所以不允许使用。
图5是展示异步处理的时序图500。所述时序图500与图4中的时序图400类似。所述时序图500展示两条垂直线,其中第一垂直线表示顶点,如顶点150,第二垂直线表示设备,如设备110-130和310-330。异步处理是指设备在ti处的处理是基于可用的顶点值。因此,异步处理减轻了同步处理的写后读依赖,允许处理陈旧的顶点值,即,ti-1之前的顶点值。然而,异步处理利用正确性约束,即一旦读取某一顶点值,设备不会读取任何之前的顶点值。该正确性约束还可被称作渐进式读取。因此,在t2处,顶点值V1是有效的。类似地,在t3处,顶点值V1是有效的;在t4处,顶点值V2是有效的。然而,在t5处,顶点值V1是无效的,因为顶点值V1是在顶点值V2之前的。
再参照图3,网络300实施检查点设置和恢复以容许设备310-330的故障。检查点设置是一种在限定的时间检查点下保存执行状态的快照的过程。快照是一种输入集合,包含顶点值,以及用来计算这些顶点值的顶点和边。例如,当第一设备310获取快照时,该快照包含第一设备310所负责的子图的输入,以及设备320-330所负责的、由第一设备310从设备320-330收集的子图的输入。检查点是指处理同一分布式图的所有设备保存和/或传输快照的一段时间。故障是指设备310-330中的一个设备不能继续进行处理并且来自设备310-330的数据不可存取的事件。在图2中,阴影表示设备110-130在完成在t2处的迭代时间240的处理之后保存其执行状态的快照。所述执行状态包含顶点值250:0、1、2、1、2、∞、10、11、∞。设备310-330当接收到来自控制器350的指令时在预定时间进行检查点设置,或者在其它合适的时间进行检查点设置。当保存快照时,设备310-330便相互传输快照,或者将快照传输到控制器350或其它合适的设备。设备310-330这么做是因为如果它们本地保存快照,一旦这些设备310-330本身出现故障这些快照将不可用。
主要有四种检查点设置类型:同步检查点设置、异步检查点设置、全局一致检查点设置、和全局不一致检查点设置,对于同步检查点设置,设备310-330中的每一个设备在进行检查点设置时停止计算。对于异步检查点设置,设备310-330中的每一个设备在同时、渐进地构建快照时继续进行计算。
图6是全局一致检查点设置的时序图600。所述图600展示依次从左到右排列的迭代时间t1-tk+1,如迭代时间240,并展示依次从上到下排列的设备D1-D4,如设备110-130和310-330。全局一致检查点设置是指多个设备中的每一个在同一迭代时间保存快照。因此,在迭代时间ti,设备D1、D2、D3和D4中的每一个设备保存第一快照。此外,设备D1将其第一快照传输到设备D4,设备D2将其第一快照传输到设备D3,设备D3将其第一快照传输到设备D1,设备D4将其第一快照传输到设备D2。迭代时间ti到迭代时间ti+1之间的、设备D1-D4中的每一个设备保存并传输其第一快照的时间段被称作第一检查点。类似地,在迭代时间tk,每个设备保存并传输第二快照。同样,设备D1将其第二快照传输到设备D4,设备D2将其第二快照传输到设备D3,设备D3将其第二快照传输到设备D1,设备D4将其第二快照传输到设备D2。迭代时间tk到迭代时间tk+1之间的、设备D1-D4中的每一个设备保存并传输其第二快照的时间段被称作第二检查点。由于所有设备都同时进行计算和消息传输,全局一致检查点设置增加了峰值带宽利用率。因此,全局一致检查点设置减缓了检查点设置过程。
再者,在预定时间,当接收到来自控制器350的指令时,或者在其它合适的时间,设备310-330将心跳消息传输到控制器350以表明设备310-330仍然“存活”且正常运行。如果控制器350在预期时间没有接收到来自设备310-330中的一个设备,例如,第一设备310,的心跳消息,则控制器350确定第一设备310发生故障。然后,控制器350命令设备320-330通过回退到设备320-330的上一个快照进行最大恢复。此外,控制器350指示设备320-330中的一个设备来承担对与第一设备310相关联的子图的处理,或者指示设备320-330以分布方式联合承担对与第一设备310相关联的子图的处理。在前一种情况下,接收到来自第一设备310的快照的第二设备320或第三设备330承担所述处理。在后一种情况下,第二设备320和第三设备330可能都已经接收到来自第一设备310的快照,或者控制器350可能指示设备320-330互相传输该快照。控制器350还可以在任何其他合适的时间命令设备310-330进行恢复。这类恢复无需设备310-330在图处理开始时重新启动,因此节省了时间、计算资源以及网络资源。最大恢复是指所有可用的设备310-330,即,没有发生故障的设备310-330,回退到其上一个快照。因此,没有发生故障的设备310-330即使具有当前的顶点值,也将会不必要地回退到其上一个快照。最小恢复是指并非所有可用的设备310-330都回退到其上一个快照。然而,当前最小恢复方法仅对同步处理有效。
本文中所公开的是实现全局不一致检查点设置和异步最小恢复的容错方法的实施例。所述实施例提供一种更快的设备故障恢复方法,降低了检查点设置过程中的波峰带宽利用率,实现了更快的检查点设置,并且能够对检查点频率进行微调。波峰带宽利用率的降低使得执行分布式图处理应用的设备能够同步地处理其它应用。针对其中设备具有不同可靠性保证及其它不同特性的异构分布式图处理网络,对检查点频率进行微调允许基于该些不同可靠性保证及其它不同特性进行检查点设置。
图7是根据本公开的实施例的全局不一致检查点设置的时序图700。所述图700展示依次从左到右排列的迭代时间t1-tk+3,如迭代时间240,并展示依次从上到下排列的设备D1-D4,如设备110-130和310-330。全局不一致检查点设置是指设备在不同的迭代时间并彼此独立地保存快照。举例来说,独立是指设备D1在某一迭代时间保存快照时,不要求设备D1-D4也在该迭代时间保存快照。设备D1-D4以挥发性方式保存快照,即,将保存在主存储器,如随机存取存储器(random-access memory,RAM)中。与此相对的是永久性的保存方式,即,设备D1-D4将快照保存在二级存储器,如硬盘中。
因此,在迭代时间ti,设备D1和D3保存第一快照;在迭代时间ti+1,设备D2和D4保存第一快照。此外,设备D1将其第一快照传输到设备D4,设备D2将其第一快照传输到设备D3,设备D3将其第一快照传输到设备D1,设备D4将其第一快照传输到设备D2。迭代时间ti到迭代时间ti+2之间的、设备D1-D4中的每一个设备保存并传输其第一快照的时间段被称作第一检查点。
类似地,设备D1和D2在迭代时间tk保存其第二快照,设备D3在迭代时间tk+1保存其第二快照,设备D4在迭代时间tk+2保存其第二快照。同样,设备D1将其第二快照传输到设备D4,设备D2将其第二快照传输到设备D3,设备D3将其第二快照传输到设备D1,设备D4将其第二快照传输到设备D2。迭代时间tk到迭代时间tk+3之间的、设备D1-D4中的每一个设备保存并传输其第二快照的时间段被称作第二检查点。对于在迭代时间tk+3之后的任何迭代时间,设备D1最后一个可用的快照是在迭代时间tk的,设备D2最后一个可用的快照是在迭代时间tk的,设备D3最后一个可用的快照是在迭代时间tk+1的,设备D4最后一个可用的快照是在迭代时间tk+2的。
如图所示,各设备以至少两种方式进行全局不一致检查点设置。第一,在第一检查点和第二检查点过程中,设备D1-D4在不同的迭代时间保存并传输快照。具体地说,在第一检查点过程中,设备D1-D4在不同的迭代时间,即,ti和ti+1,保存并传输快照。类似地,在第二检查点过程中,设备D1-D4在不同的迭代时间,即,tk和ti+2,保存并传输快照。第二,第一检查点和第二检查点彼此不一致。具体地说,在第一检查点过程中,设备D4在迭代时间ti+1保存并传输快照,其中迭代时间ti+1比第一检查点过程中的第一个迭代时间--迭代时间ti--晚一个迭代时间。相比之下,在第二检查点过程中,设备D4在迭代时间tk+2保存并传输快照,其中迭代时间tk+2比第二检查点过程中的第一个迭代时间--迭代时间tk--晚两个迭代时间。以不同的方式来看,设备D4以不同的时间间隔保存并传输快照,从而第一快照与第二快照之间可能有五次迭代,第二快照与第三快照之间可能有六次迭代,等等。
设备,例如设备310-330,响应于任何合适的指令进行全局不一致检查点设置。举例而言,控制器,例如控制器350,指示设备310-330进行全局不一致检查点设置。作为第一替代例,控制器350指示设备310-330按照设备310-330选择的方式进行检查点设置。作为第二替代例,预先配置设备310-330进行全局不一致检查点设置。作为第三替代例,设备310-330的用户指示第一设备310进行全局不一致检查点设置,并且由第一设备310将该指令转发给设备320-330。作为第四替代例,设备310-330彼此协调并决定进行全局不一致检查点设置。是否进行全局不一致检查点设置可以基于设备310-330出现故障的频率等设备310-330的本地情况、网络利用率等网络条件或其他标准来决定。举例而言,如果控制器350检测到设备310-330频繁发生故障或者控制器350检测到网络300的网络利用率不平衡,则控制器350可以指示设备310-330进行全局不一致检查点设置。
设备310-330以任何合适的方式获得时间表以进行全局不一致检查点设置。例如,控制器350提供时间表给设备310-330以进行全局不一致检查点设置。作为第一替代例,控制器350指示设备310-330创建其自己的时间表。作为第二替代例,设备310-330预先配置有自己的时间表。作为第三替代例,设备310-330的用户提供时间表。作为第四替代例,设备310-330彼此协调以确定时间表。时间表可以基于设备310-330出现故障的频率等设备310-330的本地情况、网络利用率等网络条件或其他标准。作为第一实例,如果控制器350检测到第一设备310频繁发生故障,则控制器350可以指示第一设备310以比设备320-330更高的频率进行全局不一致检查点设置。作为第二实例,如果控制器350检测到网络300的网络利用率不平衡,则控制器350可以提供时间表以使设备310-330以平衡网络利用率的方式进行全局不一致检查点设置。
快照的失效期是指快照之后的迭代时间数量。参见图7,在迭代时间tk+6,设备D1的第二快照的失效期等于5,因为迭代时间tk与迭代时间tk+5之间的迭代次数是5次。迭代时间tk+6并不包含于计算中,因为计算是为了得到迭代时间tk+6处的失效期。类似地,在迭代时间tk+6,设备D2的第二快照的失效期为5,设备D3的第二快照的失效期为4,设备D4的第二快照的失效期为3。因此,由于全局不一致检查点设置,设备310-330的失效期可能不同。控制器350可以指示设备310-330令其具有相同或者不同的失效期。可替代地,设备310-330预先配置有失效期,用户向设备310-330提供失效期,或者设备310-330彼此协调以确定失效期。
尽管设备310-330可能具有不同的失效期,它们可以具有相同的最大失效期。控制器350可以指示设备310-330,令其具有最大失效期。可替代地,设备310-330预先配置有最大失效期,用户向设备310-330提供最大失效期,或者设备310-330彼此协调以确定最大失效期。通过保存并传输快照以使每个快照的失效期小于或等于最大失效期,设备310-330保证了最大失效期的遵从性。
设备310-330针对异步处理进行最小恢复。控制器350可以指示设备310-330如何进行恢复。例如,在预定时间,当接收到来自控制器350的指令时,或者在其它合适的时间,设备310-330将心跳消息传输到控制器350以表明设备310-330仍然“存活”且正常运行。如果控制器350在预期时间没有接收到来自设备310-330中的一个设备,例如,第一设备310,的心跳消息,则控制器350确定第一设备310发生故障。然后,控制器350命令设备320-330进行最小恢复。具体地说,控制器350指示设备320-330不要回退,也就是说,指示设备320-330继续使用其当前输入,同时指示设备320-330来承担利用来自第一设备310的上一个快照的第一设备310的输入对与第一设备310相关联的子图的处理,该上一个快照可以来自上一个已完成的检查点。已完成的检查点是指所有设备310-330保存快照的检查点。
参见图7,如果设备D3在迭代时间tk+6出现故障,则设备D1-D2和D4进行最小恢复。具体地说,设备D1-D2和D4继续使用其当前输入,并承担利用来自第二检查点的设备D3的第二快照的设备D3的输入对与设备D3相关联的子图的处理,该第二检查点是上一个已完成的检查点。然后,设备D1-D2和D4对与设备D3相关联的子图进行处理,直至收敛。因此,最终顶点值的迭代时间大于迭代时间tk+6,保证了渐进式读取。
如果多个设备310-330出现故障,则设备310-330从具有最早快照的设备310-330开始进行最小恢复,保证了渐进式读取。参见图7,如果设备D1和设备D4在迭代时间tk+6都出现故障,则设备D2-D3进行最小恢复。因为设备D1在迭代时间tk获取其第二快照且设备D4在迭代时间tk之后的迭代时间tk+2获取其第二快照,设备D2-D3从设备D1开始进行最小恢复。具体地说,设备D2-D3继续使用其当前输入,并承担利用来自设备D1的第二快照的设备D1的输入对与设备D1相关联的子图的处理,该第二快照来自上一个已完成的检查点,即第二检查点。此外,设备D2-D3利用第二检查点的来自设备D4的第二快照的设备D4的输入。然后,设备D2-D3对与设备D1相关联的子图进行处理,直至收敛。在此之后,设备D2-D3利用其当前输入以及来自与设备D1相关联的汇聚子图的输入对与设备D4相关联的子图进行处理。
图8是根据本公开的实施例的一种分布式图处理网络800的逻辑框图。所述网络800通常包括应用层805和容错层835。应用层805和容错层835为逻辑层。设备310-330实现应用层805和容错层835。控制器350可进一步实现应用层805和容错层835。
应用层805处理分布式图,例如,如上文所描述的图200。应用层805包括顶点程序810、任务调度程序815、计算线程820、检查点设置和恢复组件825、分布式图845、迭代引擎850以及通信线程855。顶点程序810是利用分布式图845解决任何合适的情境中问题的程序。例如,顶点程序810是社交媒体网络用户和关系,或者网页和超链接问题。任务调度程序815在边发生变化时调度对顶点值的处理。计算线程820是进行分布式图处理的编程指令序列。计算线程820驻存于设备310-330或设备310-330的逻辑或物理分区中。检查点设置和恢复组件825实现检查点设置、失效期、最大失效期以及最小恢复。分布式图845是任何合适的分布式图,例如包括具有顶点和顶点值的子图的图200,其中各个顶点值对应于各边的和。迭代引擎850实现对顶点值的迭代处理,使得各个设备310-330独立进行迭代处理。通信线程855是为了进行分布式图处理而传输数据包的编程指令序列。通信线程855驻存于设备310-330或设备310-330的逻辑或物理分区中。
容错层835在设备310-330出现故障时保持应用层805。容错层835包括异步通信层830和分布式协调器840。异步通信层830辅助设备310-330利用,例如,ZeroMQ分布式消息传输通过发布者-订阅者模型以无阻塞的方式进行通信。异步通信层830将数据信道与控制信道分离,针对数据信道使用组播模型,以及针对控制信道使用点到点模型。例如,分布式协调器840使用Apache Zookeeper检测设备310-330的故障,将这类故障告知检查点设置和恢复组件825,并提供屏障。屏障是一种同步机制,其规定线程在某一时间必须停止且只有当所有其它线程达到该时间时才能继续进行。
图9是示出全局不一致检查点设置和最小恢复的效果的图900。所述图900是分布式图处理网络中5个设备执行具有480万个顶点和6900万条边的页面等级顶点程序的结果。所述网络的启动需要45秒。在没有设备发生故障的情况下总处理时间为70秒。图900展示在处理进行45秒之后发生模拟设备故障后的处理时间。在没有容错的情况下总处理时间为210秒。在容错的情况下,图900将全局一致检查点设置和最大恢复的第一配置与全局不一致检查点设置和最小恢复的第二配置进行比较。当不存在检查点时,第一配置的总处理时间为130秒,与不进行恢复的情况相比节省了16.7%的时间。第二配置的总处理时间为115秒,与不进行恢复的情况相比节省了23.8%的时间,与第一配置相比节省了7.1%的时间。当在30秒后存在检查点时,第一配置的总处理时间为110秒,与不进行恢复的情况相比节省了26.2%的时间。第二配置的总处理时间为84秒,与不进行恢复的情况相比节省了38.6%的时间,与第一配置相比节省了12.4%的时间。因此,实现全局不一致检查点设置和最小恢复的容错在处理时间方面具有显著改进。
图10是根据本公开的实施例的一种全局不一致检查点设置方法1000的流程图。设备310-330中的一个设备执行方法1000。在步骤1010,存储与第一设备相关联的、且是与分布式图处理网络相关联的分布式图的一部分的第一子图。例如,第一设备310存储与第一设备310相关联的、且是与分布式图处理网络300相关联的分布式图200的一部分的第一子图210。在步骤1020,对所述第一子图进行处理。例如,第一设备310以收敛为目的对第一子图210进行处理。在步骤1030,以独立于所述分布式图处理网络中的第二设备的方式在第一迭代时间保存所述第一设备的第一执行状态的第一快照。例如,第一设备310独立于第二设备320保存第一快照。最后,在步骤1040,将所述第一快照传输到所述第二设备或第三设备。例如,第一设备310将第一快照传输到第二设备320或控制器350。
图11是根据本公开的实施例的一种设备1100的示意图。所述设备1100适合于实施所公开的实施例。设备1100包括:用于接收数据的入端口1110和接收器单元(Rx)1120;用于处理数据的处理器、逻辑单元或中央处理单元(central processing unit,CPU)1130;用于发送数据的发送器单元(Tx)1140和出端口1150;以及用于存储数据的存储器1160。设备1100还可以包括光电(optical-to-electrical,OE)组件和电光(electrical-to-optical,EO)组件,所述组件耦合到入端口1110、接收器单元1120、发送器单元1140以及出端口1150以用于光或电信号的离开或进入。
处理器1130通过硬件、中间件、固件和软件的任何合适的组合实施。处理器1130可以实施为一个或多个CPU芯片、核心(例如,作为多核处理器)、现场可编程门阵列(field-programmable gate array,FPGA)、专用集成电路(application specific integratedcircuit,ASIC)和数字信号处理器(digital signal processor,DSP)。处理器1130与入端口1110、接收器单元1120、发送器单元1140、出端口1150以及存储器1160通信。处理器1130包括分布式图处理组件1170。分布式图处理组件1170实施所公开的实施例。因此,包含分布式图处理组件1170显著地提高了设备1100的功能并且实现了设备1100到不同状态的转变。可替代地,分布式图处理组件1170被实施为存储于存储器1160中并由处理器1130执行的指令。处理器1130或存储器1160或这两者均可存储方法1000,以使得设备1100可以实施方法1000。
存储器1160包括一个或多个磁盘、磁带机和固态驱动器,且可以用作溢流数据存储设备以在选择程序以供执行时存储此类程序且存储在程序执行期间读取的指令和数据。存储器1160可以是易失性和非易失性的,可以是只读存储器(read-only memory,ROM)、随机存取存储器(random-access memory,RAM)、三重内容寻址存储器(ternary content-addressable memory,TCAM)或静态随机存取存储器(static random-access memory,SRAM)。
在一个示例实施例中,一种第一设备,包括:存储器元件,用于存储第一子图,所述第一子图是与分布式图处理网络相关联的分布式图的一部分;处理元件,其耦合到所述存储器,并用于处理所述第一子图,以及以独立于所述分布式图处理网络中的第二设备的方式在第一迭代时间保存所述第一设备的第一执行状态的第一快照;以及传输元件,其耦合到所述处理器,并用于将所述第一快照传输到所述第二设备或第三设备。图12展示所述设备1100的一个示例实施例。设备1100包含:存储模块1150,存储第一子图,所述第一子图与所述第一设备相关联并且是与分布式图处理网络相关联的分布式图的一部分;处理模块1160,处理所述第一子图;快照模块1170,以独立于所述分布式图处理网络中的第二设备的方式在第一迭代时间保存所述第一设备的第一执行状态的第一快照;以及传输模块1180,将所述第一快照传输到所述第二设备或第三设备。在一些实施例中,设备1100可包含用于执行实施例中所描述的步骤中的任一个或组合的其它或额外模块。
虽然本发明提供多个具体实施例,但应当理解,所公开的系统和方法也可通过其它多种具体形式体现,而不会脱离本发明的精神或范围。本发明的实例应被视为说明性而非限制性的,且本发明并不限于本文本所给出的细节。例如,各种元件或组件可以在另一系统中组合或合并,或者某些特征可以省略或不实施。
此外,在不脱离本发明的范围的情况下,各种实施例中描述和说明为离散或单独的技术、系统、子系统和方法可以与其它系统、组件、技术或方法进行组合或合并。展示或论述为彼此耦合或直接耦合或通信的其它项也可以采用电方式、机械方式或其它方式通过某一接口、设备或中间组件间接地耦合或通信。其它变更、替换、更替示例对本领域技术人员而言是显而易见的,均不脱离此处公开的精神和范围。

Claims (20)

1.一种第一设备,其特征在于,包括:
存储器,用于存储第一子图,所述第一子图是与分布式图处理网络相对应的分布式图的一部分;
处理器,其耦合到所述存储器,并用于:
处理所述第一子图;以及
以独立于所述分布式图处理网络中的第二设备的方式在第一迭代时间保存所述第一设备的第一执行状态的第一快照;以及
发送器,其耦合到所述处理器,并用于将所述第一快照向所述第二设备或第三设备发送。
2.根据权利要求1所述的第一设备,其特征在于,所述处理器还用于进一步以异步方式处理所述第一子图。
3.根据权利要求1至2中任一项所述的第一设备,其特征在于,所述第二设备是分布式图处理设备。
4.根据权利要求1至3中任一项所述的第一设备,其特征在于,所述第三设备是控制器。
5.根据权利要求1至4中任一项所述的第一设备,其特征在于,所述处理器还用于依据所述第一设备出现故障的频率来保存快照。
6.根据权利要求1至5中任一项所述的第一设备,其特征在于,所述处理器还用于以独立于第二设备的方式在第二迭代时间保存所述第一设备的第二执行状态的第二快照。
7.根据权利要求6所述的第一设备,其特征在于,所述处理器还用于以独立于第二设备的方式在第三迭代时间保存所述第一设备的第三执行状态的第三快照,以使得所述第一迭代时间与所述第二迭代时间之间的第一时间间隔不同于所述第二迭代时间与所述第三迭代时间之间的第二时间间隔。
8.根据权利要求6所述的第一设备,其特征在于,所述第二迭代时间保证了最大失效期的遵从性。
9.根据权利要求8所述的第一设备,其特征在于,还包括:接收器,用于接收指令以实现所述最大失效期。
10.一种控制器,其特征在于,包括:
存储器;
处理器,其耦合到所述存储器并用于:
生成用于使第一设备在第一检查点过程中在第一迭代时间保存第一快照的第一指令,以及
生成用于使第二设备在所述第一检查点过程中在第二迭代时间保存第二快照的第二指令;以及
发送器,其耦合到所述处理器并用于:
将所述第一指令向所述第一设备发送,以及
将所述第二指令向所述第二设备发送。
11.根据权利要求10所述的控制器,其特征在于,所述处理器还用于生成指示快照最大失效期的第三指令,其中所述发送器还用于将所述第三指令向所述第一设备和所述第二设备发送。
12.根据权利要求10至11中任一项所述的控制器,其特征在于,所述处理器还用于生成指示使用正确性约束进行异步处理的处理指令,其中所述正确性约束是指当所述第一设备或所述第二设备读取顶点值时,所述第一设备或所述第二设备无法读取任何之前的顶点值;并且所述发送器还用于将所述处理指令向所述第一设备和所述第二设备发送。
13.根据权利要求10至12中任一项所述的控制器,其特征在于,所述第一指令指示所述第一设备将所述第一快照向所述第二设备发送。
14.根据权利要求13所述的控制器,其特征在于,在所述控制器在预期时间没有接收到来自所述第一设备的心跳消息时,所述处理器还用于生成用于使所述第二设备利用所述第一快照进行最小恢复的第三指令。
15.根据权利要求10至14中任一项所述的控制器,其特征在于,所述处理器还用于生成用于使第三设备在所述第一检查点过程中在所述第一迭代时间、所述第二迭代时间或第三迭代时间保存第三快照的第三指令;并且所述发送器还用于将所述第三指令向所述第三设备发送。
16.根据权利要求15所述的控制器,其特征在于,在所述控制器在第一预期时间没有接收到来自所述第一设备的第一心跳消息、所述控制器在第二预期时间没有接收到来自所述第二设备的第二心跳消息、并且所述第一迭代时间早于所述第二迭代时间时,所述处理器还用于生成用于使所述第三设备发起从所述第一设备开始进行最小恢复的指令。
17.一种在第一设备中实现的方法,其特征在于,所述方法包括:
存储第一子图,所述第一子图与所述第一设备相关联并且是与分布式图处理网络相对应的分布式图的一部分;
处理所述第一子图;
以独立于所述分布式图处理网络中的第二设备的方式在第一迭代时间保存所述第一设备的第一执行状态的第一快照;以及
将所述第一快照向所述第二设备或第三设备发送。
18.根据权利要求17所述的方法,其特征在于,还包括进一步以异步方式处理所述第一子图。
19.根据权利要求17至18中任一权利要求所述的方法,其特征在于,还包括接收所述第二设备在第二迭代时间的第二执行状态的第二快照。
20.根据权利要求17到19中任一项所述的方法,其特征在于,还包括:
确定所述第二设备出现故障;以及
对与所述第二设备相关联、且是所述分布式图的一部分的第二子图进行处理,直至收敛。
CN201680051428.6A 2015-09-04 2016-08-30 基于分布式图处理网络的容错方法和设备 Active CN108293003B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011616126.3A CN112698978A (zh) 2015-09-04 2016-08-30 基于分布式图处理网络的容错方法和设备

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201562214733P 2015-09-04 2015-09-04
US62/214,733 2015-09-04
US15/174,356 US10635562B2 (en) 2015-09-04 2016-06-06 Fault tolerance in distributed graph processing networks
US15/174,356 2016-06-06
PCT/CN2016/097377 WO2017036383A1 (en) 2015-09-04 2016-08-30 Fault tolerance in distributed graph processing networks

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202011616126.3A Division CN112698978A (zh) 2015-09-04 2016-08-30 基于分布式图处理网络的容错方法和设备

Publications (2)

Publication Number Publication Date
CN108293003A true CN108293003A (zh) 2018-07-17
CN108293003B CN108293003B (zh) 2021-02-05

Family

ID=58186728

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201680051428.6A Active CN108293003B (zh) 2015-09-04 2016-08-30 基于分布式图处理网络的容错方法和设备
CN202011616126.3A Pending CN112698978A (zh) 2015-09-04 2016-08-30 基于分布式图处理网络的容错方法和设备

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202011616126.3A Pending CN112698978A (zh) 2015-09-04 2016-08-30 基于分布式图处理网络的容错方法和设备

Country Status (4)

Country Link
US (1) US10635562B2 (zh)
EP (1) EP3335382B1 (zh)
CN (2) CN108293003B (zh)
WO (1) WO2017036383A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110750385A (zh) * 2019-10-25 2020-02-04 东北大学 一种基于受限恢复的图迭代器及方法

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10057112B2 (en) * 2016-03-24 2018-08-21 Ca, Inc. Fault detection of service chains in a SDN/NFV network environment
US11641395B2 (en) * 2019-07-31 2023-05-02 Stratus Technologies Ireland Ltd. Fault tolerant systems and methods incorporating a minimum checkpoint interval
KR20210024751A (ko) * 2019-08-26 2021-03-08 에스케이하이닉스 주식회사 이종 메모리 장치를 포함하는 그래프 처리 시스템 및 그래프 처리 시스템의 동작방법
CN114567634B (zh) * 2022-03-07 2023-02-07 华中科技大学 面向后e级图计算的方法、系统、存储介质及电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140222871A1 (en) * 2011-12-29 2014-08-07 Teradata Us, Inc. Techniques for data assignment from an external distributed file system to a database management system
US8862743B1 (en) * 2011-01-13 2014-10-14 Google Inc. Resource management
US20150006606A1 (en) * 2013-06-29 2015-01-01 Google Inc. Asynchronous message passing for large graph clustering
CN104618153A (zh) * 2015-01-20 2015-05-13 北京大学 分布式并行图处理中基于p2p的动态容错方法及系统

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060173350A1 (en) * 2005-01-11 2006-08-03 Scimed Life Systems, Inc. Systems and methods for three dimensional imaging with an orientation adjustable array
US8201142B2 (en) * 2006-09-29 2012-06-12 Microsoft Corporation Description language for structured graphs
WO2009154752A1 (en) * 2008-06-17 2009-12-23 Attivio, Inc. Ordered message processing
US9495477B1 (en) * 2011-04-20 2016-11-15 Google Inc. Data storage in a graph processing system
US8819078B2 (en) 2012-07-13 2014-08-26 Hewlett-Packard Development Company, L. P. Event processing for graph-structured data
CN103778031B (zh) * 2014-01-15 2017-01-18 华中科技大学 一种云环境下的分布式系统多级故障容错方法
CN104392010B (zh) 2014-12-23 2017-07-11 北京理工大学 一种子图匹配的查询方法
CN104580408B (zh) * 2014-12-24 2018-01-23 连云港杰瑞深软科技有限公司 一种移动分布式计算系统及存储节点容错信息的方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8862743B1 (en) * 2011-01-13 2014-10-14 Google Inc. Resource management
US20140222871A1 (en) * 2011-12-29 2014-08-07 Teradata Us, Inc. Techniques for data assignment from an external distributed file system to a database management system
US20150006606A1 (en) * 2013-06-29 2015-01-01 Google Inc. Asynchronous message passing for large graph clustering
CN104618153A (zh) * 2015-01-20 2015-05-13 北京大学 分布式并行图处理中基于p2p的动态容错方法及系统

Non-Patent Citations (8)

* Cited by examiner, † Cited by third party
Title
ALEXANDER ALEXANDROV,RICO BERGMANN: "The Stratosphere platform for big data analytics", 《VLDB JOURNAL ,SPRINGER VERLAG,BERLIN,DE》 *
JOSEPH E. GONZALEZ,YUCHENG LOW: "PowerGraph: Distributed Graph-Parallel Computation on Natural Graphs", 《10TH USENIX SYMPOSIUM ON OPERATING SYSTEMS DESIGN AND IMPLEMENTTATION》 *
MOUR SILVA M: "checkpointing SPMD applications on transputer networks", 《SCALABLE HIGH-PERFORMANCE COMPUTING CONFERENCE》 *
OREN LAADAN, DAN PHUNG AND JASON NIEH: "Transparent Checkpoint-Restart of", 《PROCEEDINGS OF THE VLDB ENDOWMENT》 *
OREN LAADAN: "Transparent Checkpoint-Restart of Distributed Applications on Commodity Clusters", 《CLUSTER COMPUTING,2005. IEEE INTERNATIONAL,IEEE》 *
QIN LIU∗, JOHN C.S. LUI, CHENG HE: "SAND: A Fault-Tolerant Streaming Architecture for Network Traffic Analytics", 《2014 44TH ANNUAL IEEE/IFIP INTERNATIONAL CONFERENCE ON DEPENDABLE SYSTEMS AND NETWORKS》 *
YANPING GAO, CHANGHUI DENG, YANDONG CHE: "Notice of Violation of IEEE Publication Principles", 《2008 INTERNATIONAL SYMPOSIUM ON INFORMATION PROCESSING》 *
YANYAN SHEN, GANG CHEN,: "Fast Failure Recovery in Distributed Graph Processing", 《PROCEEDINGS OF THE VLDB ENDOWMENT》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110750385A (zh) * 2019-10-25 2020-02-04 东北大学 一种基于受限恢复的图迭代器及方法
CN110750385B (zh) * 2019-10-25 2022-09-09 东北大学 一种基于受限恢复的图迭代器及方法

Also Published As

Publication number Publication date
CN112698978A (zh) 2021-04-23
EP3335382A4 (en) 2019-01-16
EP3335382B1 (en) 2023-03-01
US10635562B2 (en) 2020-04-28
US20170068606A1 (en) 2017-03-09
EP3335382A1 (en) 2018-06-20
CN108293003B (zh) 2021-02-05
WO2017036383A1 (en) 2017-03-09

Similar Documents

Publication Publication Date Title
US11930107B2 (en) Entangled links, transactions and trees for distributed computing systems
CN108293003A (zh) 分布式图处理网络的容错
CN105959151B (zh) 一种高可用的流式处理系统及方法
JP2023507702A (ja) クラウド・ネイティブなワークロードのためのデータ管理プラットフォームにおけるストレージ管理
US10929157B2 (en) Techniques for checkpointing/delivery between primary and secondary virtual machines
CN107395665A (zh) 一种区块链业务受理及业务共识方法及装置
Zhou et al. Enhancing reliability via checkpointing in cloud computing systems
CN106534287B (zh) 一种会话表项的管理方法和装置
CN109828868A (zh) 数据存储方法、装置、管理设备和双活数据存储系统
WO2018024076A1 (zh) 一种流速控制方法及装置
CN106874142A (zh) 一种实时数据容错处理方法及系统
CN109039959A (zh) 一种sdn网络规则的一致性判断方法及相关装置
US10691353B1 (en) Checking of data difference for writes performed via a bus interface to a dual-server storage controller
US9930140B2 (en) Tie-breaking for high availability clusters
CN105373451B (zh) 一种虚拟机放置的方法及装置
KR20200118798A (ko) 전자 디바이스들, 시스템들 및 방법들
US9413586B2 (en) Spanning tree protocol (STP) implementation on an event driven virtual link aggregation (VLAG) system
CN110011909A (zh) 存储网关及存储网关数据发送、接收方法和装置
US9369376B2 (en) Method enabling fast switching between multicast trees
CN113760459A (zh) 虚拟机故障检测方法、存储介质和虚拟化集群
US20170331716A1 (en) Active probing for troubleshooting links and devices
WO2016054906A1 (zh) 计费方法和设备、接入设备、服务质量控制方法和设备
US20230164064A1 (en) Fast, Predictable, Dynamic Route Failover in Software-Defined Networks
CN111984376B (zh) 协议处理方法、装置、设备及计算机可读存储介质
CN1322705C (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