CN106462612A - 用于容错通信的系统和方法 - Google Patents
用于容错通信的系统和方法 Download PDFInfo
- Publication number
- CN106462612A CN106462612A CN201580026917.1A CN201580026917A CN106462612A CN 106462612 A CN106462612 A CN 106462612A CN 201580026917 A CN201580026917 A CN 201580026917A CN 106462612 A CN106462612 A CN 106462612A
- Authority
- CN
- China
- Prior art keywords
- node
- worker
- control node
- project
- instruction
- 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
- 238000004891 communication Methods 0.000 title claims abstract description 373
- 238000000034 method Methods 0.000 title claims abstract description 122
- 238000003860 storage Methods 0.000 claims description 40
- 238000004590 computer program Methods 0.000 claims description 33
- 238000001514 detection method Methods 0.000 claims description 32
- 230000005540 biological transmission Effects 0.000 claims description 29
- 238000009826 distribution Methods 0.000 claims description 28
- 238000012546 transfer Methods 0.000 claims description 20
- 238000007689 inspection Methods 0.000 claims description 17
- 238000012545 processing Methods 0.000 claims description 17
- 230000009471 action Effects 0.000 abstract description 6
- 238000005516 engineering process Methods 0.000 description 62
- 230000008569 process Effects 0.000 description 56
- 239000000872 buffer Substances 0.000 description 34
- 238000004422 calculation algorithm Methods 0.000 description 18
- 230000006870 function Effects 0.000 description 16
- 230000004044 response Effects 0.000 description 16
- 230000008859 change Effects 0.000 description 9
- 238000013500 data storage Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- 238000004458 analytical method Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 6
- 238000011084 recovery Methods 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 238000013480 data collection Methods 0.000 description 3
- 230000008520 organization Effects 0.000 description 3
- 230000000737 periodic effect Effects 0.000 description 3
- 238000000926 separation method Methods 0.000 description 3
- 238000010276 construction Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 230000033001 locomotion Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 241001671653 Aconitum carmichaelii Species 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000001994 activation Methods 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 238000011985 exploratory data analysis Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 238000005243 fluidization Methods 0.000 description 1
- 210000004602 germ cell Anatomy 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000006386 neutralization reaction Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 238000009738 saturating Methods 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/202—Error 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/2023—Failover techniques
- G06F11/203—Failover techniques using migration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/202—Error 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/2023—Failover techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/202—Error 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/2023—Failover techniques
- G06F11/2025—Failover techniques using centralised failover control functionality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/202—Error 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/2023—Failover techniques
- G06F11/2028—Failover techniques eliminating a faulty processor or activating a spare
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/202—Error 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/2023—Failover techniques
- G06F11/2033—Failover techniques switching over of hardware resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/2097—Error 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/202—Error 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/2035—Error 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/202—Error 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/2038—Error 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 with a single idle spare processing component
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/202—Error 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/2041—Error 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 with more than one idle spare processing component
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/84—Using snapshots, i.e. a logical point-in-time copy of the data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/85—Active fault masking without idle spares
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Testing And Monitoring For Control Systems (AREA)
- Hardware Redundancy (AREA)
- Telephonic Communication Services (AREA)
- Retry When Errors Occur (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明揭示用于容许通信网格中的故障的设备、系统和方法。具体来说,提供各种技术和系统以用于在通信网格中检测计算机节点的网络中的节点的故障或失效;调整所述网格以避免网格失效;以及基于所述失效采取行动。在实例中,系统可包含在备份控制节点处接收网格状态信息,所述网格状态信息包含项目状态;将所述网格状态信息存储在所述备份控制节点内;接收包含主要控制节点已失效的指示的失效通信;将所述备份控制节点指定为新主要控制节点;基于所述主要控制节点已失效的所述指示而接收经更新的网格状态信息;以及基于所述经更新的网格状态信息而传输指令集。
Description
相关申请案的交叉参考
此申请案为非临时的且依据35U.S.C.§119(e)要求标题为“分布式处理的容错通信策略(Fault-Tolerant Communication Strategies for Distributed Processing)”的美国临时申请案第62/019,426号的益处和优先权。所述美国临时申请案申请于2014年7月1日且出于所有目的以引用的方式并入本文中。
技术领域
本发明涉及用于容许通信网格中的错误的计算机技术。具体来说,提供各种技术和系统以用于检测通信网格中计算机节点的网络中的节点的错误或失效;调整所述网格以避免网格失效;以及基于所述失效采取行动。
背景技术
在包含执行作业的计算机节点的网络的通信网格中,节点可失效。节点的失效可引起整个网格的失效,并且因此整个作业的失效,从而从起点重新开始作业。对于包含较大数据集或可能花费长时间段完成的作业,此失效可尤其难以解决。
发明内容
本发明涉及用于容许通信网格中的错误的计算机技术。具体来说,提供各种技术和系统以用于检测通信网格中计算机节点的网络中的节点的错误或失效;调整所述网格以避免网格失效;以及基于所述失效采取行动。在实施例中,计算机程序产品可有形地体现在非暂时性机器可读存储媒体中。非暂时性机器可读存储媒体可包含经配置以使得数据处理设备进行以下操作的指令:在通信网格上连接到主要控制节点和工作者节点的备份控制节点处接收网格状态信息,所述网格状态信息包含主要控制节点的项目状态或工作者节点的项目状态,其中主要控制节点的项目状态和工作者节点的项目状态包含正由通信网格中的主要节点和工作者节点执行的项目的一或多个部分的状态;将网格状态信息存储在备份控制节点内;接收包含主要控制节点已失效的指示的失效通信;在接收到失效通信时基于失效通信将备份控制节点指定为新主要控制节点;基于主要控制节点已失效的所述指示而接收经更新的网格状态信息,其中经更新的网格状态信息包含主要控制节点的经更新的项目状态或工作者节点的经更新的项目状态;以及基于经更新的网格状态信息传输指令集,其中指令集包含使工作者节点在主要控制节点的失效之后继续致力于所述项目的指令。
在一个方面中,计算机程序产品可进一步包括经配置以使得数据处理设备在备份控制节点处接收包含备份控制节点为新主要控制节点的指示的主要节点通信的指令。在另一方面中,在接收到失效通信时,备份控制节点基于备份控制节点的唯一标识符或级别确定是否应将备份节点指定为新主要控制节点;和分配新主要控制节点。在另一方面中,在接收到失效通信时,备份控制节点确定备份控制节点为通信网格上的唯一备份控制节点。在另一方面中,主要控制节点控制每一工作者节点负责执行的项目的各部分。在另一方面中,给通信网格上的每一控制节点和工作者节点分配所存储的唯一标识符,其中节点的唯一标识符指示在通信网格内节点的层级,且其中每一控制节点和每一工作者节点存储通信网格上的所有其它控制节点和工作者节点的唯一标识符。在另一方面中,工作者节点的工作者节点执行项目的不同部分。在另一方面中,网格状态信息包含指示在主要控制节点的失效之前项目的进展阶段的项目检查点(或进展检查点)。在另一方面中,基于经更新的网格状态信息传输指令集包含传输来自项目检查点的指示在主要控制节点的失效之前所述项目的进展阶段的状态。在另一方面中,计算机程序产品可进一步包括经配置以使得数据处理设备进行以下操作的指令:确定主要控制节点已失效,其中确定主要控制节点已失效包含确定备份控制节点未接收到预期检测信号通信,其中检测信号通信指示主要控制节点为可操作的。在另一方面中,确定主要控制节点已失效包含确定备份控制节点在预定时间段之后未从主要控制节点接收到检测信号通信。
在另一实施例中,计算装置可包括一或多个处理器,和上面存储有指令的存储器,所述指令由一或多个处理器执行。处理器可使得计算装置执行包含以下各者的操作:在通信网格上连接到主要控制节点和工作者节点的备份控制节点处接收网格状态信息,所述网格状态信息包含主要控制节点的项目状态或工作者节点的项目状态,其中主要控制节点的项目状态和工作者节点的项目状态包含正由通信网格中的主要节点和工作者节点执行的项目的一或多个部分的状态;将网格状态信息存储在备份控制节点内;接收包含主要控制节点已失效的指示的失效通信;在接收到失效通信时基于失效通信将备份控制节点指定为新主要控制节点;基于主要控制节点已失效的所述指示而接收经更新的网格状态信息,其中经更新的网格状态信息包含主要控制节点的经更新的项目状态或工作者节点的经更新的项目状态;以及基于经更新的网格状态信息传输指令集,其中所述指令集包含使工作者节点在主要控制节点失效之后继续致力于所述项目的指令。
在一方面中,计算装置可进一步包括指令,所述指令在由一或多个处理器执行时使得计算装置执行包含以下各者的操作:在备份控制节点处接收包含备份控制节点为新主要控制节点的指示的主要节点通信。在另一方面中,在接收到失效通信时,备份控制节点基于备份控制节点的唯一标识符或级别确定是否应将备份节点指定为新主要控制节点;和分配新主要控制节点。在另一方面中,在接收到失效通信时,备份控制节点确定备份控制节点为通信网格上的唯一备份控制节点。在另一方面中,主要控制节点控制每一工作者节点负责执行的项目的各部分。在另一方面中,给通信网格上的每一控制节点和工作者节点分配所存储的唯一标识符,其中节点的唯一标识符指示在通信网格内节点的层级,且其中每一控制节点和每一工作者节点存储通信网格上的所有其它控制节点和工作者节点的唯一标识符。在另一方面中,工作者节点的工作者节点执行项目的不同部分。在另一方面中,网格状态信息包含指示在主要控制节点失效之前项目的进展阶段的项目检查点。在另一方面中,基于经更新的网格状态信息传输指令集包含传输来自项目检查点的指示在主要控制节点的失效之前所述项目的进展阶段的状态。在另一方面中,计算装置可进一步包括指令,所述指令在由一或多个处理器执行时使得计算装置执行包含以下各者的操作:确定主要控制节点已失效,其中确定主要控制节点已失效包含确定备份控制节点未接收到预期检测信号通信,其中检测信号通信指示主要控制节点为可操作的。在另一方面中,确定主要控制节点已失效包含确定备份控制节点在预定时间段之后未从主要控制节点接收到检测信号通信。
在另一实施例中,计算机实施方法可包括:在通信网格上连接到主要控制节点和工作者节点的备份控制节点处接收网格状态信息,所述网格状态信息包含主要控制节点的项目状态或工作者节点的项目状态,其中主要控制节点的项目状态和工作者节点的项目状态包含正由通信网格中的主要节点和工作者节点执行的项目的一或多个部分的状态;将网格状态信息存储在备份控制节点内;接收包含主要控制节点已失效的指示的失效通信;在接收到失效通信时基于失效通信将备份控制节点指定为新主要控制节点;基于主要控制节点已失效的所述指示接收经更新的网格状态信息,其中经更新的网格状态信息包含主要控制节点的经更新的项目状态或工作者节点的经更新的项目状态;以及基于经更新的网格状态信息传输指令集,其中所述指令集包含使工作者节点在主要控制节点失效之后继续致力于所述项目的指令。
在一方面中,所述方法可进一步包括在备份控制节点处接收包含备份控制节点为新主要控制节点的指示的主要节点通信。在另一方面中,在接收到失效通信时,备份控制节点基于备份控制节点的唯一标识符或级别确定是否应将备份节点指定为新主要控制节点;和分配新主要控制节点。在另一方面中,在接收到失效通信时,备份控制节点确定备份控制节点为通信网格上的唯一备份控制节点。在另一方面中,主要控制节点控制每一工作者节点负责执行的项目的各部分。在另一方面中,给通信网格上的每一控制节点和工作者节点分配所存储的唯一标识符,其中节点的唯一标识符指示在通信网格内节点的层级,且其中每一控制节点和每一工作者节点存储通信网格上的所有其它控制节点和工作者节点的唯一标识符。在另一方面中,工作者节点的工作者节点执行项目的不同部分。在另一方面中,网格状态信息包含指示在主要控制节点失效之前项目的进展阶段的项目检查点。在另一方面中,基于经更新的网格状态信息传输指令集包含传输来自项目检查点的指示在主要控制节点的失效之前所述项目的进展阶段的状态。在另一方面中,所述方法可进一步包括确定主要控制节点已失效,其中确定主要控制节点已失效包含确定备份控制节点未接收到预期检测信号通信,其中检测信号通信指示主要控制节点为可操作的。在另一方面中,确定主要控制节点已失效包含确定备份控制节点在预定时间段之后未从主要控制节点接收到检测信号通信。
在另一实施例中,计算机程序产品可有形地体现在非暂时性机器可读存储媒体中。非暂时性机器可读存储媒体可包含经配置以使得数据处理设备进行以下操作的指令:从通信网格上连接到一或多个工作者节点的主要控制节点传输与正由一或多个工作者节点执行的项目相关的工作者指令;产生通信网格的快照,其中通信网格的快照包含一或多个工作者节点中的每一者的项目状态,其中工作者节点的项目状态包含正由通信网格中的工作者节点执行的项目的一部分的状态;确定一或多个工作者节点中的失效工作者节点已失效,其中一或多个工作者节点在失效时间处已失效;使用通信网格的快照识别失效工作者节点的项目状态,其中失效工作者节点的项目状态包含正由失效工作者节点在失效时间处执行的项目的一部分的状态;以及传输经更新的工作者指令,其中经更新的工作者指令包含失效工作者节点的项目状态和与正由一或多个工作者节点执行的项目相关的经更新的指令,其中经更新的工作者指令促进正由失效工作者节点执行的所述项目的所述部分的执行。
在一方面中,计算机程序产品可进一步包括经配置以使得数据处理设备识别一或多个工作者节点中的起作用工作者节点以完成正由失效工作者节点执行的所述项目的所述部分的指令。在另一方面中,给通信网格上的每一工作者节点分配唯一标识符,其中工作者节点的唯一标识符指示在通信网格内与每一唯一标识符相关联的工作者节点的层级。在另一方面中,经更新的工作者指令促进一或多个工作者节点中的起作用工作者节点开始执行正由失效工作者节点执行的所述项目的所述部分。在另一方面中,计算机程序产品可进一步包括经配置以使得数据处理设备确定失效工作者节点为通信网格上的唯一工作者节点以及将新工作者节点添加到通信网格的指令。在另一方面中,主要控制节点管理每一工作者节点负责执行的项目的各部分的分布。在另一方面中,确定一或多个工作者节点中的失效工作者节点已失效包含确定主要控制节点在传输与正由一或多个工作者节点执行的所述项目相关的工作者指令之后未接收到检测信号通信。
在另一实施例中,计算装置可包括一或多个处理器,和上面存储有指令的存储器,所述指令由一或多个处理器执行。处理器可使得计算装置执行包含以下各者的操作:从通信网格上连接到一或多个工作者节点的主要控制节点传输与正由一或多个工作者节点执行的项目相关的工作者指令;产生通信网格的快照,其中通信网格的快照包含一或多个工作者节点中的每一者的项目状态,其中工作者节点的项目状态包含正由通信网格中的工作者节点执行的项目的一部分的状态;确定一或多个工作者节点中的失效工作者节点已失效,其中一或多个工作者节点在失效时间处已失效;使用通信网格的快照识别失效工作者节点的项目状态,其中失效工作者节点的项目状态包含正由失效工作者节点在失效时间处执行的项目的一部分的状态;以及传输经更新的工作者指令,其中经更新的工作者指令包含失效工作者节点的项目状态和与正由一或多个工作者节点执行的项目相关的经更新的指令,其中经更新的工作者指令促进正由失效工作者节点执行的所述项目的所述部分的执行。
在一方面中,计算装置可进一步包括指令,所述指令在由一或多个处理器执行时使得计算装置执行包含以下各者的操作:识别一或多个工作者节点中的起作用工作者节点以完成正由失效工作者节点执行的所述项目的所述部分。在另一方面中,给通信网格上的每一工作者节点分配唯一标识符,其中工作者节点的唯一标识符指示在通信网格内与每一唯一标识符相关联的工作者节点的层级。在另一方面中,经更新的工作者指令促进一或多个工作者节点中的起作用工作者节点开始执行正由失效工作者节点执行的所述项目的所述部分。在另一方面中,计算装置可进一步包括指令,所述指令在由一或多个处理器执行时使得计算装置执行包含以下各者的操作:确定失效工作者节点为通信网格上的唯一工作者节点和将新工作者节点添加到通信网格。在另一方面中,主要控制节点管理每一工作者节点负责执行的项目的各部分的分布。在另一方面中,确定一或多个工作者节点中的失效工作者节点已失效包含确定主要控制节点在传输与正由一或多个工作者节点执行的所述项目相关的工作者指令之后未接收到检测信号通信。
在另一实施例中,计算机实施方法可包括:从通信网格上连接到一或多个工作者节点的主要控制节点传输与正由一或多个工作者节点执行的项目相关的工作者指令;产生通信网格的快照,其中通信网格的快照包含一或多个工作者节点中的每一者的项目状态,其中工作者节点的项目状态包含正由通信网格中的工作者节点执行的项目的一部分的状态;确定一或多个工作者节点中的失效工作者节点已失效,其中一或多个工作者节点在失效时间处已失效;使用通信网格的快照识别失效工作者节点的项目状态,其中失效工作者节点的项目状态包含正由失效工作者节点在失效时间处执行的项目的一部分的状态;以及传输经更新的工作者指令,其中经更新的工作者指令包含失效工作者节点的项目状态和与正由一或多个工作者节点执行的项目相关的经更新的指令,其中经更新的工作者指令促进正由失效工作者节点执行的所述项目的所述部分的执行。
在一方面中,所述方法可进一步包括识别一或多个工作者节点中的起作用工作者节点以完成正由失效工作者节点执行的所述项目的所述部分。在另一方面中,给通信网格上的每一工作者节点分配唯一标识符,其中工作者节点的唯一标识符指示在通信网格内与每一唯一标识符相关联的工作者节点的层级。在另一方面中,经更新的工作者指令促进一或多个工作者节点中的起作用工作者节点开始执行正由失效工作者节点执行的所述项目的所述部分。在另一方面中,所述方法可进一步包括确定失效工作者节点为通信网格上的唯一工作者节点和将新工作者节点添加到通信网格。在另一方面中,主要控制节点管理每一工作者节点负责执行的项目的各部分的分布。在另一方面中,确定一或多个工作者节点中的失效工作者节点已失效包含确定主要控制节点在传输与正由一或多个工作者节点执行的所述项目相关的工作者指令之后未接收到检测信号通信。
本发明内容并不意图识别所要求的标的物的关键特征或基本特征,也并非意图单独用于确定所要求的标的物的范围。标的物应参考此专利的整个说明书的适当部分、任何或所有图式以及每一权利要求来理解。
在参考以下说明书、权利要求书以及附图之后,前述内容连同其它特征和实施例将变得更显而易见。
附图说明
图1说明根据本发明技术的实施例的提供对通信网格的硬件和软件组件的一般化说明的框图总线的实例。
图2说明根据本发明技术的实施例的包含控制节点和一或多个工作者节点的通信网格的实例。
图3说明根据本发明技术的实施例的包含两个控制节点和一或多个工作者节点的通信网格的实例。
图4说明根据本发明技术的实施例的包含三个控制节点和一或多个工作者节点的通信网格的实例。
图5说明根据本发明技术的实施例的包含两个控制节点(其包含具有所存储的网格快照的备份控制节点)和一或多个工作者节点的通信网格的实例。
图6说明根据本发明技术的实施例的包含两个控制节点(其包含具有所存储的网格快照的备份控制节点)和一或多个工作者节点的通信网格的实例。
图7说明根据本发明技术的实施例的包含两个控制节点(其包含具有所存储的网格快照的备份控制节点)和一或多个工作者节点的通信网格的实例。
图8说明根据本发明技术的实施例的包含新主要控制节点和前者备份控制节点以及一或多个工作者节点的通信网格的实例。
图9说明根据本发明技术的实施例的包含主要控制节点和一或多个工作者节点的通信网格的实例。
图10说明根据本发明技术的实施例的包含控制节点和一或多个工作者节点的通信网格的实例。
图11说明根据本发明技术的实施例的包含控制节点和一或多个工作者节点的通信网格的实例。
图12说明根据本发明技术的实施例的包含控制节点和一或多个工作者节点的通信网格的实例。
图13为根据本发明技术的实施例的展示用于从通信网格中的主要控制节点失效恢复的实例过程的流程图。
图14为根据本发明技术的实施例的展示用于在工作者节点的失效之后从通信网格中的工作者节点失效恢复的实例过程的流程图。
图15为根据本发明技术的实施例的展示用于从通信网格中的控制节点失效恢复的实例过程的流程图。
图16为根据本发明技术的实施例的展示用于从网格服务器的角度验证节点之间的连接的实例过程的流程图。
图17为根据本发明技术的实施例的展示用于从网格客户端的角度验证节点之间的连接的实例过程的流程图。
图18为根据本发明技术的实施例的展示将一系列节点(经m到n编号)分配为一节点(例如,控制节点)的子节点的实例过程的流程图。
图19为根据本发明技术的实施例的展示主要控制节点在通信网格中的其它节点之间分布客户端项目的工作的实例过程的流程图。
图20为根据本发明技术的实施例的展示备份控制节点接收经更新的状态信息和将其存储在通信网格中的实例过程的流程图。
图21为根据本发明技术的实施例的展示工作者节点在通信网格计算期间处理作业的实例方法的流程图。
图22为根据本发明技术的实施例的展示用于在通信网格内广播数据的实例过程的流程图。
图23为根据本发明技术的实施例的展示用于通信网格内的约简的实例过程的流程图。
具体实施方式
在以下描述中,出于解释的目的,阐述特定细节以便提供对本技术的实施例的透彻理解。然而,将显而易见的是,可在无这些特定细节的情况下实践各种实施例。图式和描述并不意图为限制性的。
以下描述仅提供实例实施例,且并不意图限制本发明的范围、适用性或配置。相反地,实例实施例的以下描述将为所属领域的技术人员提供用于实施实例实施例的启发性描述。应理解,在不脱离如在所附权利要求书中所阐述的本技术的精神和范围的情况下,可对元件的功能和布置进行各种改变。
在以下描述中给出特定细节以提供对实施例的透彻理解。然而,所属领域的一般技术人员应理解,所述实施例可在没有这些特定细节的情况下实践。举例来说,电路、系统、网络、过程和其它组件可以框图形式展示为组件以免以不必要的细节混淆实施例。在其它情况下,可以在没有不必要的细节的情况下展示熟知的电路、过程、算法、结构以及技术以免混淆实施例。
并且,应注意,个别实施例可描述为经描绘为流程图、作业图、数据作业图、结构图或框图的过程。尽管流程图可将操作描述为顺序过程,但是许多操作可并行或同时执行。另外,操作的次序可以重新布置。过程在其操作完成时终止,但是可以具有不包含在图中的额外步骤。过程可对应于方法、函数、程序、子例程、子程序等。当过程对应于函数时,过程的终止可对应于函数返回到调用函数或主函数。
术语“机器可读存储媒体”或“计算机可读存储媒体”包含(但不限于)便携式或非便携式存储装置、光学存储装置和能够存储、含有或携载指令和/或数据的各种其它媒体。机器可读媒体可包含非暂时性媒体,其中可存储数据。非暂时性媒体的实例可包含(但不限于)磁盘或磁带、光学存储媒体,例如光盘(CD)或数字通用光盘(DVD)、快闪存储器、存储器或存储器装置。计算机程序产品可包含可表示程序、函数、子程序、程序、例程、子例程、模块、软件包、类别的代码和/或机器可执行指令,或指令、数据结构或程序语句的任何组合。代码段可以通过传递和/或接收信息、数据、自变量、参数或存储器内容而耦合到另一代码段或硬件电路。信息、自变量、参数、数据等可经由包含存储器共享、消息传递、令牌传递、网络传输等任何合适的方式传递、转发或传输。
此外,实施例可以由硬件、软件、固件、中间件、微码、硬件描述语言或其任何组合来实施。当以软件、固件、中间件或微码实施时,执行必要任务的程序代码或代码段(例如,计算机程序产品)可存储于机器可读媒体中。处理器可以执行必要任务。
一些图中所描绘的系统可以各种配置提供。在一些实施例中,所述系统可经配置为分布式系统,其中所述系统的一或多个组件跨越云计算系统中的一或多个网络分布。
图1展示可用于含有和/或实施本发明的系统实施例的程序指令的独立计算机架构100的实例硬件的框图。更具体来说,架构100可包含在通信网格的节点内,如在本文中进一步参考图2到23所描述。总线152可充当互连硬件的其它所说明的组件的信息高速公路。标记为CPU(中央处理单元)的处理系统154(例如,一或多个计算机处理器)可执行执行程序所需的计算和逻辑操作。处理器可读存储媒体(例如,只读存储器(ROM)156和随机存取存储器(RAM)158)可与处理系统154通信且可含有一或多个编程指令。任选地,程序指令可存储于计算机可读存储媒体上,例如磁盘、光盘、可记录存储器装置、快闪存储器或其它物理存储媒体。还可经由通信传输、数据流或经调制载波传达计算机指令。
磁盘控制器160将一或多个任选磁盘驱动器介接到系统总线152。这些磁盘驱动器可为外部或内部软盘驱动器(例如162)、外部或内部CD-ROM、CD-R、CD-RW或DVD驱动器(例如164)或外部或内部硬盘驱动器166。如先前所指示,这些各种磁盘驱动器和磁盘控制器为任选装置。
元件管理器、实时数据缓冲器、输送机、文件输入处理器、数据库索引共享接入存储器载入器、参考数据缓冲器和数据管理器中的每一者可包含存储于连接到磁盘控制器160的磁盘驱动器、ROM 156和/或RAM 158中的一或多者中的软件应用程序。处理系统154可视需要接入每一组件。
显示接口168可准许来自总线156的信息以音频、图形或字母数字的格式显示在显示器170上。与外部装置的通信可任选地使用各种通信端口178进行。
除标准计算机类型的组件之外,硬件还可包含数据输入装置,例如键盘172;或其它输入装置174,例如麦克风、遥控器、触摸板、小键盘、触控笔、运动和/或手势传感器、位置传感器、照相机和/或摄像机、指示器、鼠标及/或操纵杆。
本发明涉及用于容许通信网格中的故障的计算机技术。具体来说,提供各种技术和系统以用于在通信网格中检测计算机节点的网络中的节点的故障或失效;调整所述网格以避免网格失效;以及基于所述失效采取行动。更具体来说,本文中所描述的方法和系统的实施例包含识别或检测通信网格中的主要控制节点的失效;和使用网格状态或检查点信息以允许备份节点接替为主要控制节点。新主要控制节点可接着控制连接到其的工作者节点以完成由网格执行的项目。替代实施例包含识别或检测通信网格中的工作者节点的失效;和使用网格状态或检查点信息以允许另一工作者节点在控制节点的控制和监督下接替由失效工作者节点执行的工作。所述工作可在可操作工作者节点当中重新分布。替代实施例包含使用阈值以确定在预定量的时间之后应在何时证实或假设节点已失效。此确定可允许备份控制节点接替失效主要控制节点或允许控制节点将由失效工作者节点执行的工作重新分布到另一工作者节点。通信网格内的节点可能够检测层级或执行用于确定哪些节点应在失效之后采取行动的其它方法。在本文中参考图2到23描述本发明技术的此类实施例。
本文中所描述的各种通信网格被描述为包含一或多个控制节点(例如,主要控制节点、备份控制节点等)和一或多个工作者节点。举例来说,节点可为计算装置,例如计算机;或不同类型的网络或电子装置,例如服务器或路由器。控制节点可维持关于网格中的节点的状态的知识(例如,网格状态信息);接受来自客户端的工作请求;跨越工作者节点细分工作(在最初和在工作者节点失效之后两种情况下);协调工作者节点;以及其它职责。工作者节点可接受来自控制节点的工作请求且为控制节点提供由工作者节点执行的工作的结果。网格可从单个节点(例如,机器、计算机、服务器等)开始。此第一节点可经分配为主要控制节点或可作为主要控制节点开始,主要控制节点将控制进入网格的任何额外节点。
为了将另一节点或机器添加到网格,主要控制节点可例如打开一对监听套接字。套接字可出于与控制节点的工作相关的不同原因而使用。这些套接字中的第一者可用于接受来自客户端的工作请求,且第二套接字可用于接受来自其它网格节点(例如,工作者节点或其它控制节点)的连接。可为主要控制节点提供将参与到网格中的其它节点(例如,其它机器、计算机、服务器)的列表和每一节点将在网格中充当的角色。主要控制节点可维持网格中的所有经配置节点的数据库。数据库可呈各种形式,包含例如配置服务器上的存储器表格、简单文本文件、满配置文件以及其它形式。在启动主要控制节点(例如,网格上的第一节点)之后,主要控制节点可使用网络协议(例如,安全外壳协议或SSH)以开始网格中每一其它节点上的服务器进程。举例来说,命令线参数可告知每一节点一或多个条信息,例如:节点将在网格中具有的角色、主要控制节点的主机名、端口编号(基于所述端口编号主要控制节点接受来自对等节点的连接)以及其它。信息还可提供于配置文件中;经由安全外壳隧道传输;从配置服务器恢复;以及其它操作。尽管网格中的其它机器最初可并不知道网格的配置,但信息还可通过主要控制节点发送到每一其它节点。网格信息的更新随后也可发送到那些节点。
对于除添加到网格的主要控制节点之外的任何控制节点,控制节点可打开三个套接字。第一套接字可接受来自客户端的工作请求;第二套接字可接受来自其它网格成员的连接;以及第三套接字可连接(例如,永久地)到主要控制节点。当控制节点(例如,主要控制节点)从另一控制节点接收连接时,其首先检查以查看对等节点是否处于网格中经配置节点的列表中。如果对等节点不在所述列表上,那么控制节点可清除连接。如果对等节点在所述列表上,那么其可接着试图验证连接。在本文中进一步参考图16和17来描述节点的验证。如果验证成功,那么验证节点可将信息传输到其对等节点,所述信息例如端口编号(基于其节点监听连接)、节点的主机名、关于如何验证节点的信息以及其它信息。当节点(例如,新控制节点)接收关于另一活动节点的信息时,所述节点将检查以查看是否其已经具有到所述另一节点的连接。如果其并不具有到所述节点的连接,那么其可接着建立到所述控制节点的连接。
添加到网格的任何工作者节点可建立到网格上的主要控制节点和任何其它控制节点的连接。在建立连接之后,其可相对于网格验证自身(例如,任何控制节点,包含主要和备份两者;或控制网格的服务器或用户)。在本文中进一步参考图16和17描述节点的验证。在成功验证之后,工作者节点可接受来自控制节点的配置信息。
网格可从任何控制节点起始在任何时间处添加新机器。在将新节点添加到网格之后,控制节点可首先将新节点添加到其网格节点表。控制节点接着还可通知每一其它控制节点关于新节点。接收通知的节点可确认其已更新其配置信息。
图2说明根据本发明技术的实施例的包含控制节点和一或多个工作者节点的通信网格200。通信网格200包含控制节点202,标记为控制节点A。通信网格200还包含一或多个工作者节点。图2中所展示的为六个工作者节点:工作者节点210(标记为工作者节点1)、工作者节点212(标记为工作者节点2)、工作者节点214(标记为工作者节点3)、工作者节点216(标记为工作者节点n-2)、工作者节点218(标记为工作者节点n-1)以及工作者节点220(标记为工作者节点n)。尽管图2展示六个工作者节点,但根据本发明技术的实施例的通信网格可包含多于或少于六个工作者节点。举例来说,通信网格可包含一个、两个或任何其它数目个工作者节点。通信网格200内的每一工作者节点连接(有线或无线地,以及直接或间接地)到控制节点202。因此,每一工作者节点可从控制节点202接收信息(例如,执行致力于项目的指令)且可将信息传输到控制节点202(例如,来自对项目执行的工作的结果)。然而,在某些实施例中,工作者节点可例如不连接(以通信方式或以其它方式)到其它工作者节点。举例来说,工作者节点可仅能够与控制其的控制节点通信,且可能并不能够与通信网格中的其它工作者节点通信,无论所述工作者节点为由控制工作者节点的控制节点控制的其它工作者节点或由通信网格中的其它控制节点控制的工作者节点。在替代实施例中,工作者节点可与彼此通信(直接或间接地)。举例来说,工作者节点可在彼此之间传输与经执行的作业或由所述工作者节点执行的作业内的个别任务相关的数据。或者,工作者节点可与彼此通信以执行广播或约简操作,例如分别参考图22和23在本文中所论述的那些操作。
控制节点(例如,控制节点202)可与外部装置(控制节点可与所述外部装置通信)连接(例如,网格用户,例如服务器或计算机,可连接到网格的主要控制器)。举例来说,服务器或计算机可连接到控制节点202且可将项目或作业传输到节点。所述项目可包含数据集。所述数据集可为任何大小。一旦控制节点接收包含较大数据集的此项目,控制节点就可分布数据集或与数据集相关的项目由工作者节点执行。或者,对于包含较大数据集的项目,可通过除控制节点之外的机器(例如,Hadoop数据节点)接收或存储数据集。此结构可防止瓶颈问题。
当项目起始于通信网格200上时,控制节点202控制项目的待执行的工作(例如,基于数据集)。由于通信网格200中的工作者节点将执行所述工作以完成所述项目内的每一任务,因此控制节点202将来自所述项目的工作分配到每一工作者节点。控制节点协调所述工作使得每一工作者节点具有工作者节点可处置且可执行且呈由用户或控制节点所需的时间量的项目的一部分。举例来说,控制节点可基于各种因数(例如,可最高效地且以正确时间量完成项目的哪些子集或部分)将工作分布到工作者节点。举例来说,工作者节点可对已经为本地的(例如,存储在工作者节点上)的数据的一部分执行分析。控制节点还在每一工作者节点执行和完成其作业之后协调由每一工作者节点执行的工作的结果。举例来说,控制节点可从一或多个工作者节点接收结果,且控制节点可组织所接收到的结果且编译所述结果以产生从终端用户所接收到的项目的完整结果。
通信网格200内的工作者节点执行致力于由控制节点202分配给工作者节点的所述项目的所述部分。在工作者节点从控制节点接收指令或项目(或项目的部分)之后,工作者节点执行如所分配的指令,且可产生结果。工作者节点可接着将结果传输回到控制节点202(或如由来自伴随分配或在分配之后经递送的控制节点202的分配或指令所指定的任何其它网络装置或外部装置)。
当节点加入通信网格200时(例如,当节点经开启或连接到网格上的现有节点或这两者时),给所述节点分配(例如,通过网格的操作系统)通用唯一标识符(UUID)。此唯一标识符可帮助其它节点和外部实体(装置、用户等)识别节点且将其与其它节点区分开。当节点连接到网格时,节点可将其唯一标识符与网格中的其它节点共享。由于每一节点可共享其唯一标识符,因此每一节点可知道网格上的每一其它节点的唯一标识符。唯一标识符还可指定网格内的节点(例如,备份控制节点)中的每一者的层级。举例来说,备份控制节点中的每一者的唯一标识符可存储于一系列备份控制节点中以指示备份控制节点将接替失效主要控制节点从而变为新主要控制节点的次序。然而,还可使用除使用节点的唯一标识符之外的方法来确定节点的层级。举例来说,层级可经预先确定或可基于其它预先确定的因数而分配。
当认为项目(例如,由客户端或网格的控制器)执行时,其可分配给节点集合。控制节点中的一者可被分配为作业的主要控制节点。任何剩余控制节点可被分配为项目的备份控制节点。所有活动工作者节点可分配到所述项目。然而,在一些实施例中,工作者节点的子集可由于项目需要较低资源而分配到所述项目。在节点分配到项目之后,可形成数据结构(即,通信器)。通信器可由所述项目使用以供信息在每一节点上运行的项目代码之间共享。通信句柄可形成于每一节点上。举例来说,句柄为对在单个节点上的单个进程内有效的通信器的参考,且句柄可在请求节点之间的通信时使用。
在通信器内,每一工作者节点和主要控制节点可各自分配有级别。举例来说,每一级别可为非负的整数。当与通信器句柄组合时,节点的级别可用于与在另一节点上的相同项目中运行的代码通信。不同于分配到节点的唯一标识符,级别可仅在通信器内为唯一的。因此,相同的级别数目可跨越不同项目指代网格中的不同节点。当项目代码识别网格中的特定节点时,其可使用分配到节点的UUID,由于此类UUIDs可为永久性的。
如所提到,通信网格200包含单个控制节点,控制节点202。因此,如果控制节点202失效(例如,如果控制节点202关闭、中断或以其它方式失效;或变得不可用于控制和协调连接到其的工作者节点),那么通信网格200可失效。换句话说,如果控制节点202失效,那么运行于通信网格200上的任何项目或作业可失效且可未完成。尽管项目可再次运行,但此失效可在完成项目时产生延迟(在一些状况下严重延迟,例如整夜延迟)。因此,具有多个控制节点(包含备份控制节点)的容错系统可为有益的。
图3说明根据本发明技术的实施例的包含两个控制节点和一或多个工作者节点的通信网格300。通信网格300包含控制节点302和控制节点304。控制节点302和控制节点304经由通信路径351以通信方式连接。因此,控制节点302和控制节点304可将信息(包含与通信网格或通知相关的信息)传输到彼此且从彼此接收信息。尽管通信网格300在图3中展示为包含两个控制节点,但通信网格可包含多于两个控制节点(例如,如图7中所展示)或小于两个控制节点(如例如图5中所展示)。
通信网格300还包含一或多个工作者节点。图3中所展示的为六个工作者节点:工作者节点310(或工作者节点1)、工作者节点312(或工作者节点2)、工作者节点314(或工作者节点3)、工作者节点316(或工作者节点n-2)、工作者节点318(或工作者节点n-1)以及工作者节点320(或工作者节点n)。尽管图3展示六个工作者节点,但根据本发明技术的实施例的通信网格可包含多于或少于六个工作者节点。举例来说,通信网格可包含一个、两个或任何其它数目个工作者节点。举例来说,包含于通信网格中的工作者节点的数目可取决于多大的项目或数据集正由通信网格实施。包含于通信网格中的工作者节点的数目还可取决于其它因数,例如每一工作者节点的能力、通信网格将想要完成项目的时间以及其它因数。
如所提到,通信网格300内的每一工作者节点可连接到控制节点302(尽管在其它实施例中,仅一些工作者节点可连接到控制节点302)。因此,每一工作者节点可从控制节点302接收信息(例如,执行致力于项目的指令)且可将信息传输到控制节点302(例如,来自对项目执行的工作的结果)。然而,在某些实施例中,工作者节点可不连接(以通信方式或以其它方式)到其它工作者节点。举例来说,工作者节点仅可连接到控制其的控制节点,且可并不连接到通信网格中的其它工作者节点,无论所述其它工作者节点是否共享控制节点。通信网格300内的每一工作者节点还连接到控制节点304。因此,每一工作者节点可从控制节点304接收信息且可将信息传输到控制节点304。
控制节点(例如,控制节点302)可被指定为主要控制节点。服务器、计算机或其它外部装置可连接到主要控制节点,例如控制节点302。一旦控制节点接收项目,主要控制节点就可将项目的各部分分布到其工作者节点以供执行。举例来说,当项目起始于通信网格300上时,主要控制节点302控制项目的待执行的工作以便按请求或指示完成项目。由于通信网格300中的工作者节点将执行工作以完成项目内的每一任务,主要控制节点302可将来自项目的工作分配到每一工作者节点。主要控制节点协调工作使得每一工作者节点具有工作者节点可处置且可完全高效地执行的项目的一部分。主要控制节点还在每一工作者节点执行和完成其作业之后协调和处理由每一工作者节点执行的工作的结果。举例来说,主要控制节点可从一或多个工作者节点接收结果,且控制节点可组织(例如,收集和汇编)所接收到的结果且编译所述结果以产生从终端用户所接收到的项目的完整结果。
另一控制节点(例如,控制节点304)可被指定为备份控制节点。备份控制节点304可不控制由通信网格300实施的项目的任何部分。替代地,备份控制节点304可充当主要控制节点302的备份。举例来说,备份控制节点304可能够接替为主要控制节点,如果主要控制节点302失效的话。举例来说,主要控制节点302可将一或多个通信传输到备份控制节点304(和例如通信网格内的其它控制或工作者节点)。可在项目的执行的已知固定阶段之间在固定的时间间隔处周期性地发送此类通信,以及其它协议。通过主要控制节点302传输的通信可为不同类型且可包含各种类型的信息。举例来说,主要控制节点302可传输通信网格的快照(例如,状态信息)以使得备份控制节点304始终具有通信网格的最新的快照。快照或网格状态可包含网格的结构(包含例如网格中的工作者节点、节点的唯一标识符或其与主要控制节点的关系)、项目的状态(包含例如项目的每一工作者节点的部分的状态)以及与通信网格或其节点相关的其它信息。快照还可包含从通信网格中的工作者节点所接收到的对于项目的全部部分中的任一部分的分析或结果。备份控制节点304可接收和存储从主要控制节点302所接收到的备份数据。备份控制节点304可请求来自主要控制节点的此快照(或其它信息),或主要控制节点可将此类信息周期性地发送到备份控制节点。
如所提到,备份数据可允许备份控制节点在主要控制节点失效的情况下接替为主要控制节点。更具体来说,备份数据可允许备份控制节点在主要控制节点失效之后继续由主要控制节点实施和控制的项目而不必从头开始项目。如果主要控制节点失效,那么备份控制节点304可检索从主要控制节点302所接收到的最新版本的快照且使用所述快照以从由备份数据所指示的项目的阶段继续项目。
备份控制节点304可使用各种方法以确定主要控制节点302已失效。在此方法的一个实例中,主要控制节点302可将指示主要控制节点302正在工作且尚未失效的通信(例如,检测信号通信)传输到备份控制节点304。此类型的通信可通过主要控制节点周期性地传输(例如,每秒一次、每五秒一次、每毫秒一次或任何其它间隔)。如果备份控制节点304在某一预定时间段(即,时间或检测信号阈值)内尚未接收到检测信号通信,或换句话说,尚未接收到预期在经过一定量的时间之前接收到的检测信号通信,那么备份控制节点304可能够确定主要控制节点302是否已失效。举例来说,主要控制节点302每六十秒可传输检测信号消息。如果备份控制节点304在大于六十秒(例如,七十秒)的时间段内尚未从主要控制节点302接收到检测信号消息,那么备份控制节点304可确定或假设主要控制节点302已失效。
作为方法的另一实例,备份控制节点304可用以确定或假设主要控制节点302已失效;备份控制节点304可从一或多个工作者节点接收主要控制节点302已失效的通信,所述工作者节点可连接到主要控制节点302和备份控制节点304两者。举例来说,工作者节点可已辨别出主要控制节点302未能与工作者节点通信。举例来说,主要控制节点302可未能对通过工作者节点传输到主要控制节点的查询或请求作出响应。在另一实例中,主要控制节点302可未能在工作者节点发送通信(例如,包含来自由工作者节点所致力于的作业的一部分的结果的通信)之后将确认(例如,ACK)消息传输回到工作者节点。备份控制节点304还可已从另一装置(例如,通信网格外部的装置)接收到例如主要控制节点失效的通信。举例来说,外部装置(例如,控制器)可已从一或多个工作者节点接收到主要控制节点失效的指示,且外部装置可已将主要控制节点失效的通信传输到备份控制节点。备份控制节点304还可已直接从主要控制节点302(或其它地方)接收到主要控制节点已失效或将要失效的指示。举例来说,主要控制节点(或另一装置)可能够基于历史数据或所检测到的图案预测主要控制节点将要失效。然而,在其失效之前,主要控制节点可将包含其已失效或将要失效的指示的通信传输(例如,广播或经由直接消息)到其它节点。
如所提到,在备份控制节点304检测到或被通知主要控制节点302已失效之后,备份控制节点304可接替主要控制节点的职责。此外,控制节点304可在其失效之前通过使用从主要控制节点所接收到的数据(例如,状态信息)继续由通信网格300实施且由控制节点302控制的项目。因而,通信网格可能够避免项目归因于主要控制节点的失效而失效。
图4说明根据本发明技术的实施例的包含三个控制节点和一或多个工作者节点的通信网格400。通信网格400包含控制节点402、控制节点404和控制节点406。控制节点402和控制节点404经由通信路径451以通信方式连接。因此,控制节点402和控制节点404可经由通信路径451将信息(包含与通信网格或通知相关的信息)传输到彼此且从彼此接收信息。控制节点402和控制节点406经由通信路径453以通信方式连接。因此,控制节点402和控制节点406可经由通信路径453将信息(包含与通信网格或通知相关的信息)传输到彼此且从彼此接收信息。控制节点404和控制节点406经由通信路径455以通信方式连接。因此,控制节点404和控制节点406可经由通信路径455将信息(包含与通信网格或通知相关的信息)传输到彼此和从彼此接收信息。尽管通信网格600在图6中展示为包含三个控制节点,但通信网格可包含多于三个控制节点或小于两个控制节点(如例如图5和6中所展示)。
通信网格400还包含一或多个工作者节点。图4中所展示的为六个工作者节点:工作者节点410(或工作者节点1)、工作者节点412(或工作者节点2)、工作者节点414(或工作者节点3)、工作者节点416(或工作者节点n-2)、工作者节点418(或工作者节点n-1)以及工作者节点420(或工作者节点n)。尽管图4展示六个工作者节点,但根据本发明技术的实施例的通信网格可包含多于或少于六个工作者节点。举例来说,通信网格可包含一个、两个或任何其它数目个工作者节点。举例来说,包含于通信网格中的工作者节点的数目可取决于多大的项目或数据集正由通信网格实施。包含于通信网格中的工作者节点的数目还可取决于其它因数,例如每一工作者节点的能力、通信网格完成项目所指定的时间以及其它因数。
类似于图6中的控制节点602,控制节点(例如,控制节点402)可在通信网格400中被指定为主要控制节点。主要控制节点402可经配置以在通信网格400中具有与如参考图6所描述的通信网格600中的主要控制节点602(和与图5中的控制节点502)类似的角色(和执行相同或类似功能)。通信网格400中的其它两个控制节点(例如,控制节点404和406)可被指定为备份控制节点。控制节点404和406可在本文中被称作备份控制节点。然而,在其它实施例中,控制节点404和406可为主要控制节点。在控制节点404和406为备份控制节点的此实施例中,备份控制节点404和406中的每一者可个别地或以组合形式执行类似于通信网格300中的备份控制节点304的功能。举例来说,备份控制节点404和406可各自从主要控制节点402接收关于通信网格400的信息,包含周期性快照或关于通信网格的其它信息。
备份控制节点404或备份控制节点406可类似于通信网格300中的备份控制节点304接替或取代主要控制节点402,如果主要控制节点402失效的话。接替失效主要控制节点402的备份控制节点可在主要控制节点302失效之后这么做使得其可与通信网格300中的备份控制节点304执行类似功能,且因此可继续由失效主要控制节点402执行的功能或项目。举例来说,备份控制节点(备份控制节点404或备份控制节点406)可控制在主要控制节点402失效之前连接到主要控制节点402的工作者节点(且如所提到,工作者节点还可连接到控制节点404和406)且控制由那些工作者节点执行的项目。
可执行不同方法以确定备份控制节点集合中的哪一备份控制节点(例如,备份控制节点404和406)将接替失效主要控制节点402且变为新主要控制节点。举例来说,可基于分配给每一备份控制节点的唯一标识符(例如,无论哪个备份控制节点具有较高或较低唯一标识符)选择新主要控制节点。唯一标识符的此分级可被称为备份控制节点的“层级”。在替代实施例中,可通过通信网格中的另一装置(例如,失效主要控制节点402)或由外部装置(例如,控制通信网格的系统基础设施或终端用户,例如服务器或计算机)将备份控制节点分配为新主要控制节点。在另一替代实施例中,可基于带宽或关于通信网格的其它统计数据指定接替为新主要控制节点的备份控制节点。举例来说,决策可基于哪一节点具有较大带宽、哪一节点包含通信网格的更新版本的快照、哪一节点经更好地装备(例如,使用关于所述节点或通信网格的其余节点的统计数据)以处置正由通信网格执行的当前项目以及其它因素。由于备份控制节点可与彼此通信(例如,经由通信路径451、453和455),因此可执行内部算法或可在备份控制节点之间共享信息以将备份控制节点中的一者指定为新主要控制节点。
图5说明根据本发明技术的实施例的包含两个控制节点和一或多个工作者节点的通信网格500。通信网格500包含主要控制节点502和备份控制节点504。主要控制节点502和备份控制节点504可在通信网格500中具有分别与图6中的通信网格600中的控制节点602和604类似的角色。主要控制节点502和备份控制节点504经由通信路径551以通信方式连接。因此,主要控制节点502和备份控制节点504可将信息(包含与通信网格或通知相关的信息)传输到彼此和从彼此接收信息。尽管通信网格500在图5中展示为包含两个控制节点,但通信网格可包含多于两个控制节点(例如,如图4中所展示)或小于两个控制节点(如例如图5中所展示)。
通信网格500还包含一或多个工作者节点。图5中所展示的为四个工作者节点:工作者节点510(或工作者节点1)、工作者节点512(或工作者节点2)、工作者节点514(或工作者节点3)以及工作者节点516(或工作者节点4)。尽管图5展示四个工作者节点,但根据本发明技术的实施例的通信网格可包含多于或小于四个工作者节点。
如所提到,主要控制节点(例如,主要控制节点502)可传输通信网格的快照以使得备份控制节点(例如,备份控制节点504)始终具有通信网格的最新的快照。举例来说,如图5中所展示,主要控制节点502可将通信网格快照540传输到备份控制节点504。快照可包含包含网格中的工作者节点和其与主要控制节点的关系的网格结构、项目的状态(包含例如项目的每一工作者节点的部分的状态)以及其它信息。快照还可包含从通信网格中的工作者节点所接收到的对于项目的全部部分中的任一部分的分析或结果。快照还可包含辅助备份控制节点在主要控制节点失效之后从作业的已知状态继续处理作业的任何其它信息。备份控制节点504可接收和存储从主要控制节点502所接收到的快照540。备份控制节点504可通过请求来自主要控制节点的此快照(或其它信息)起始通信网格的快照的接收,或主要控制节点可将此类信息周期性地发送到备份控制节点。备份控制节点504可将快照540存储在存储装置中(例如存储在本地存储装置525中)。本地存储装置525可为备份控制节点504内的短期存储装置(例如高速缓冲存储器)或较长期存储装置。在替代实施例中,备份控制节点504可将快照540(或其它数据)存储在远程位置中。举例来说,备份控制节点504可在从主要控制节点502接收通信网格快照540之后将快照540传输到备份控制节点504外部的存储装置。备份控制节点504可接着在接收或检测到主要控制节点失效的通知之后从存储装置检索所存储的网格快照,例如快照540。
图6说明根据本发明技术的实施例的包含两个控制节点(其包含具有所存储的网格快照的备份控制节点)和一或多个工作者节点的通信网格600。更具体来说,图6说明主要控制节点602可失效(通过虚线指示)并且因此说明通信网格上的主要控制节点602与其它节点之间的通信路径(例如,主要控制节点602与备份控制节点604之间的路径651以及主要控制节点602与工作者节点610到616之间的那些路径)可由于此失效而被切断。然而,如通信网格600中所展示,备份控制节点604可以通信方式连接(例如,有线或无线地)到通信网格600内的工作者节点中的每一者。如所提到,备份数据可允许备份控制节点在主要控制节点失效的情况下接替为主要控制节点。更具体来说,备份数据可允许备份控制节点在主要控制节点失效之后继续由主要控制节点实施和控制的项目而不必从头开始项目。如果主要控制节点失效,那么备份控制节点504可检索从主要控制节点502所接收到的最新版本(或另一所存储的版本,如果适用的话)的快照且使用所述快照(和其它备份数据)以从由备份数据所指示的项目阶段继续项目。
图7说明根据本发明技术的实施例的包含两个控制节点(其包含具有所存储的网格快照的备份控制节点)和一或多个工作者节点的通信网格700。通信网格700类似于通信网格600,但进一步说明备份控制节点704可从若干不同来源接收主要控制节点702失效的通知。如所提到,备份控制节点(例如,备份控制节点704)可在主要控制节点失效之后替代主要控制节点(例如,主要控制节点702)作为通信网格(例如,通信网格700)内的新主要控制节点。可以各种不同方式通知备份控制节点704主要控制节点702已失效。举例来说,备份控制节点704可接收包含通知的通信(例如,通信745),其包含主要控制节点702已失效或将在一定量的时间内失效的指示。备份控制节点704可从主要控制节点702自身接收此通知。主要控制节点702可识别其已失效或将失效且随后或同时将具有此问题的通知传输到备份控制节点704;传输到网格上的另一节点或节点组或传输到服务器或管理员(例如,服务器/管理员760)或通信网格内部或外部的另一系统基础设施。备份控制节点可接着从服务器或管理员760接收通信745。举例来说,此通知可在服务器或管理员760已从主要控制节点702接收到此通知之后出现。或者,服务器或管理员760可已从网格内的工作者节点或从另一来源接收到此通知。在另一替代实例中,服务器或管理员760可将周期性检测信号消息传输到主要控制节点702以确定主要控制节点702是否正在工作(即,尚未失效),且可由于其确定主要控制节点702失效(由于其在某一预定时间段内未接收到对其检测信号消息中的一或多者的响应)而已起始将通知传输到备份控制节点704。备份控制节点704可接着直接从工作者节点(例如,从如图7中所展示的工作者节点716)接收主要控制节点失效的通知。
图8说明根据本发明技术的实施例的包含新主要控制节点和前者备份控制节点以及一或多个工作者节点的通信网格800。通信网格800包含新主要控制节点804,其可在先前主要控制节点失效之前已从前者备份控制节点转变。如图8中所展示,新主要控制节点804(在其为备份控制节点时保持原样)连接到一或多个工作者节点。在通信网格800中,新主要控制节点804连接到工作者节点810、812、814和816。然而,新主要控制节点804可连接到相较于图8中所展示的四个工作者节点的较低或较高数目个工作者节点。新主要控制节点804可取代或接替先前主要控制节点以与前者、现失效的主要控制节点呈相同能力或功能性。换句话说,新主要控制节点804可控制通信网格800上运行的项目,并且因此可控制连接到其且执行项目的不同部分的工作者节点。
新主要控制节点804在变为通信网格800内的主要控制节点之后可重新开始项目(例如,如果如由新主要控制节点所存储的网格的上一个已知状态为项目的起点的话)。在另一实施例中,新主要控制节点804可在正执行的项目的进展期间通过在某一时刻在检查点处恢复致力于项目而回滚到检查点。在实施例中,新主要控制节点804可连同连接到其的工作者节点一起从前者主要控制节点停止的确切时刻恢复项目的执行。在另一实施例中,新主要控制节点804可从在前一主要控制节点停止的时刻之前的项目中的一时刻处的检查点恢复项目的执行(即,回滚到检查点)。新主要控制节点804可使用从新主要控制节点804内的存储装置或从另一节点或另一装置内的存储装置所检索到的网格的快照获得关于此检查点的信息。
图9说明根据本发明技术的实施例的包含主要控制节点和一或多个工作者节点的通信网格900。通信网格900包含新主要控制节点902和工作者节点910、912、914和916。如所提到,主要控制节点902可将正执行的项目内的工作分布到通信网格内的工作者节点中的每一者使得每一工作者节点执行项目的一部分。举例来说,如图9中所展示,工作者节点910、912、914和916各自可被分配正由通信网格900执行且由主要控制节点902控制的项目的四分之一部分。举例来说,主要控制节点902可例如分别经由通信路径960、962、964和966将指令传输到工作者节点。此外,工作者节点还可将信息传输到主要控制节点902。举例来说,工作者节点可产生(和例如本地存储)且将项目内其进展的检查点或项目的其所分配的部分传输到主要控制节点902,以使得主要控制节点902接收和存储工作者节点中的每一者的进展的周期性检查点或状态。每一工作者节点的所接收到的检查点可允许主要控制节点902编译通信网格上正执行的项目的进展状态。检查点可允许主要控制节点902产生通信网格的快照,或检查点可经处理为由主要控制节点用于其它能力中的单独、独立数据。在接收到检查点之后,可由主要控制节点将所述检查点存储在存储装置925中。主要控制节点902还可存储由检查点产生的任何数据,包含例如通信网格的快照。
检查点可在项目的一阶段已完成(例如,在项目为多阶段操作的情况下)之后由工作者节点(或控制节点)产生。或者,检查点可在项目的一定量(例如,某一百分比)已经完成(例如,在所述项目包含较大数据集的情况下)之后产生。可基于项目和/或情形由主要控制节点(或在其它实施例中,由网格上的其它节点或由网格外部的用户)选择产生和保存或传输检查点信息的方法。
在一些情形中,可在工作者节点处出现失效。图10到12说明根据本发明技术的实施例的包含控制节点和一或多个工作者节点的通信网格。通信网格1000包含主要控制节点1002和工作者节点1010、1012、1014和1016。如所提到,主要控制节点1002可将正执行的项目或数据集内的工作分布到通信网格内的工作者节点中的每一者使得每一工作者节点执行项目的一部分。举例来说,如图10中所展示,工作者节点1010、1012、1014和1016各自可被分配正由通信网格1000执行且由主要控制节点1002控制的项目的四分之一部分。工作者节点可将项目内的其进展的检查点或项目的其所分配的部分传输到主要控制节点1002,以使得主要控制节点1002接收和存储工作者节点中的每一者的进展的周期性检查点或状态。通信网格1000还展示工作者节点中的一者,工作者节点1012可失效(通过图10中的虚线指示),并且因此展示通信网格上的工作者节点1012与其它节点之间的通信路径(例如,主要控制节点1002与工作者节点1012之间的路径1062)可由于此失效而被切断。
然而,通信网格1000可考虑工作者节点(例如,工作者节点1012)的失效。如所提到,工作者节点1012以通信方式连接到主要控制节点1002,主要控制节点1002可控制工作者节点1012和/或由工作者节点1012所执行的工作。如果工作者节点1012失效,那么主要控制节点1002可检测到工作者节点1012已失效或可接收到工作者节点1012已失效的通知。举例来说,可通过另一工作者节点(例如,工作者节点1010、1014和/或1016,其还以通信方式连接到主要控制节点1002)或如果存在一个控制节点,那么通过通信网格1000上的另一控制节点(例如,备份控制节点)通知主要控制节点1002工作者节点1012已失效。或者,可通过用户(例如,经由网格的通信1172的图11中的服务器或管理员1170,如图11中的通信网格1100内所示,在本文中进一步论述)通知主要控制节点1002。替代实施例包含使用阈值以确定在预定量的时间之后应在何时建立或假设工作者节点已失效。举例来说,如果在大于预定阈值的一定量的时间内工作者节点尚未传输确认通信(例如,ACK)或另一预期通信,如由预期接收此通信的控制节点或其它节点所注意到,那么可假设所述工作者节点已失效。此确定可允许控制节点将由失效工作者节点所执行的工作重新分布到另一工作者节点。
为了在工作者节点1012失效之后弥补其损耗,或换句话说为了弥补分配到工作者节点1012的工作,主要控制节点1002可将由工作者节点1012所执行的工作重新分布到通信网格1000上的其它工作者节点。举例来说,在主要控制节点1002知道工作者节点1012已失效之后,主要控制节点1002可将通信(例如,消息或通知)传输到其它工作者节点(例如,仍连接到主要控制节点1002且在通信网格1000上的全部或部分工作者节点)中的每一者,所述通信包含其经分配以致力于的从工作者节点1012重新分布的工作的部分。举例来说,如图12的通信网格1200中所展示(在本文中进一步论述),主要控制节点1002可将通信1274传输到工作者节点1010;将通信1576传输到工作者节点1014;以及将通信1278传输到工作者节点1016,所述通信包含此类信息。在接收到此通信之后,工作者节点1010、1014和1016可将在其所接收到的通信中所识别的工作添加到将对项目执行的工作。举例来说,如果来自失效工作者节点1012的剩余工作在工作者节点1010、1014和1016之间经相等地重新分布,那么工作者节点1010、1014和1016中的每一者可在此工作已经重新分布之后被分配所述项目剩余的总工作的三分之一。然而,工作的其它部分或分类也是可能的。举例来说,替代方案可包含将新工作者节点添加到网格以呈现额外工作。
在替代实施例中,主要控制节点1002可将包含工作者节点中的每一者还应有目的地失效的消息的通信(例如,断开通信器消息)传输到仍在通信网格1000上的工作者节点中的每一者。换句话说,消息可包含或引起每一工作者节点内的通信错误以使得仍在网格上的工作者节点中的每一者失效。在工作者节点中的每一者失效之后,其可各自检索其状态的最新保存的检查点。每一工作者节点还可检索第一失效工作者节点,工作者节点1012的状态或检查点。举例来说,如图12中所展示,主要控制节点1002可将失效工作者节点1012的检查点1242传输到工作者节点1010、1014和1016。此可允许仍存在(例如,非失效)工作者节点中的每一者同时从其最新检查点继续致力于项目,并且因此所述工作者节点不会错漏待对项目执行的工作中的任一者。此还可允许工作者节点在工作者节点1012在执行工作时失效的时刻处继续致力于从失效工作者节点重新分布的工作。使用此检查点可允许工作者节点为高效的,以免重复已经完成的工作或错漏需要完成的工作。此类检查点可存储在每一工作者节点内或可从另一装置或来源(例如,另一工作者节点、控制节点、云网络或其它位置)所检索到。将检查点存储在除备份控制节点处之外的装置中可为有帮助的,以防出于一些原因备份控制节点尚未存储检查点或以防备份控制节点失效且新控制节点稍后加入网格。在此实施例中,已存储检查点的工作者节点或其它装置或网络可将检查点或其它状态信息传输到新控制节点。
图13为根据本发明技术的实施例的展示用于在控制节点失效之后调整通信网格中的工作项目的实例过程的流程图1300。所述过程可包含例如在通信网格上连接到主要控制节点和工作者节点的备份控制节点处接收网格状态信息,所述网格状态信息包含主要控制节点的项目状态或工作者节点的项目状态,其中主要控制节点的项目状态和工作者节点的项目状态包含正由通信网格中的主要节点和工作者节点执行的项目的一或多个部分的状态(步骤1302)。所述过程还可包含将网格状态信息存储在备份控制节点内(步骤1304)。所述过程还可包含接收包含主要控制节点已失效的指示的失效通信(步骤1306)。所述过程还可包含在接收到失效通信时基于失效通信将备份控制节点指定为新主要控制节点(步骤1308)。所述过程还可包含基于主要控制节点已失效的所述指示接收经更新的网格状态信息,其中经更新的网格状态信息包含主要控制节点的经更新的项目状态或工作者节点的经更新的项目状态(步骤1310)。所述过程还可包含基于经更新的网格状态信息传输指令集,其中所述指令集包含使工作者节点在主要控制节点失效之后继续致力于项目的指令(步骤1312)。
图14为根据本发明技术的实施例的展示用于在工作者节点失效之后调整通信网格中的工作项目的实例过程的流程图1400。所述过程可包含例如在通信网格上连接到一或多个工作者节点的主要控制节点处传输与正由一或多个工作者节点执行的项目相关的工作者指令(步骤1402)。所述过程还可包含产生通信网格的快照,其中通信网格的快照包含一或多个工作者节点中的每一者的项目状态,其中工作者节点的项目状态包含正由通信网格中的工作者节点执行的项目的一部分的项目检查点(步骤1404)。所述过程还可包含确定一或多个工作者节点中的失效工作者节点在失效时间处已失效(步骤1406)。所述过程还可包含使用通信网格的快照确定失效工作者节点的项目状态,其中失效工作者节点的项目状态包含在失效工作者节点的失效时间处的失效工作者节点的项目检查点(步骤1408)。所述过程还可包含传输经更新的工作者指令,其中所述经更新的工作者指令包含失效工作者节点的项目状态和与正由一或多个工作者节点执行的项目相关的经更新的指令,其中当接收到经更新的工作者指令时,起作用工作者节点完成正由失效工作者节点执行的所述项目的所述部分(步骤1410)。
图15为根据本发明技术的实施例的展示用于在控制节点失效之后调整通信网格中的工作项目的实例过程的流程图1500。所述过程可包含例如通过通信网格中的备份控制节点接收包含主要控制节点连接到通信网格的指示的初始通信(步骤1502)。所述过程还可包含接收通信网格的快照,其中通信网格的快照包含连接到主要控制节点和备份控制节点的多个工作者节点中的每一者的工作者状态(步骤1504)。所述过程还可包含确定自从接收到初始通信的时间段(步骤1506)。所述过程还可包含将所述时间段与阈值时间段相比较以确定主要控制节点已失效,其中在接收到失效通信时,备份控制节点为新主要控制节点(步骤1508)。所述过程还可包含基于多个工作者节点中的一或多个工作者节点的工作者状态传输指令集,其中所述指令集包含在主要控制节点失效之后继续致力于项目的指令(步骤1510)。
图16为根据本发明技术的实施例的展示用于从网格服务器的角度(例如,从网格上的经建立节点)验证节点之间的连接的实例过程的流程图1600。如所提到,当控制节点(例如,主要控制节点)从另一控制节点接收连接时,其可首先检查以查看对等节点是否处于网格中经配置节点的所存储的列表中。如果对等节点不在列表上,那么其可清除(即,拒绝)连接。如果对等节点在列表上,那么其可接着试图验证所述连接以便确保新节点属于网格上。可经由允许单向或双向验证的不同类型的消息的交换展示验证。举例来说,不同类型的消息可包含:
-MSG_AUTH_TOKEN_RSP(“ATR”)。此消息可意味着验证数据块经发送,且回复应包含数据块。所述消息可包含算法标识符。预期响应可为MSG_AUTH_TOKEN_RSP、MSG_AUTH_TOKEN_NO_RSP或MSG_AUTH_FAILED。
-MSG_AUTH_TOKEN_NO_RSP(“ATNR”)。此消息可意味着提供验证数据块,且不需要另外的验证数据作为响应。所述消息可包含算法标识符。实例ATNR消息可包含用户名和/或口令,或其它类型的消息。
-MSG_AUTH_COMPLETE(“ATC”)。此消息可包含验证已成功地完成的指示。
-MSG_AUTH_FAILED(“ATF”)。此消息可指示验证失败。所述消息可包含诊断失败代码。
如图16中所展示,验证节点可等待消息(框1602)和接收消息(框1604)。当接收到消息时,节点可确定所述消息是否为ATR或ATNR消息(框1606)。如果所述消息既不是ATR也不是ATNR消息,那么节点可传输ATF消息且过程可结束。如果确定所述消息为ATR或ATNR消息,那么验证节点可在1610和1612处确认所接收到的数据有效。如果数据有效,且消息为ATR(如在框1614处所确定),那么节点可由于ATR消息需要响应而在框1616处产生对ATR的响应。接着,节点可在框1618处确定是否需要较多验证数据,且如果是的话在1630处发送ATR。如果为否的话,那么节点可在1620处传输ATNR且在1622处等待响应。在1624处,节点可确定所接收到的响应(在框1622处)是否为ATC。如果是,那么验证成功,如框1640中所展示。如果否,那么节点可在框1632处发送ATF作为响应(由于验证失败,如框1634和1638中所展示)。
图17为根据本发明技术的实施例的展示用于从网格客户端的角度(例如,从网格上的新节点)验证节点之间的连接的实例过程的流程图1700。图17中所展示的流程图1700极其类似于图16中所展示的流程图1600,除了流程图1700包含框1702、1704、1706和1708以确定是否将需要验证数据作为响应。在框1702中,节点可产生初始验证数据,且接着在框1704处,确定是否需要验证数据作为响应。如果是,那么节点可在1706处传输ATR以需要验证数据作为响应。如果否,那么节点可在1728处传输ATNR。
如所提到,如果需要验证数据作为响应,那么验证节点可等待消息(框1712)和接收消息。当接收到消息时,节点可确定所述消息为ATR还是ATNR消息(框1714)。如果所述消息既不是ATR消息也不是ATNR消息,那么节点可传输ATF消息(框1736)且过程可由于所述过程失败(如节点1738和1740中所展示)而结束。如果确定所述消息为ATR或ATNR消息,那么验证节点可在1718和1720处确认所接收到的数据有效。如果数据有效,且消息为ATR(如在框1722处所确定),那么节点可由于ATR消息需要响应而在框1724处产生对ATR的响应。接着,节点可在框1726处确定是否需要较多验证数据,且如果是的话在1715处发送ATR。如果否,那么节点可在1728处传输ATNR且在1730处等待响应。在1732处,节点可确定所接收到的响应是否为ATC。如果是,那么验证成功,如框1742中所展示。如果否,那么节点可在1636框处发送ATF作为响应。返回参考节点1722,如果确定消息不是ATR,那么可由于验证成功(如图1742中所展示)发送ATC消息(在节点1740处)
图18为根据本发明技术的实施例的展示将一系列节点(经m到n编号)分配为一节点(例如,控制节点)的子节点的实例过程的流程图1800。在框1802处,节点m可被分配为左侧子(例如,工作者)节点。接着,为了检查以查看是否存在其它子节点,可在框1804处确定n-m是否=1,或换句话说所分配的上一个子节点(m)是否小于或等于子节点的总数目(n)。如果是,那么所述过程可结束。如果否,那么节点m+1可在框1806处被分配为右侧子节点。检查以查看是否存在其它子节点的过程通过检查以查看m-n是否=2而在框1808中再现。如果是,那么所述过程可结束。如果否,那么算法m+2+((m-n-2)/2)可在框1810处用于确定“mid”子节点值。可递归地使用所述算法以将节点m+2直到mid分配为左侧子节点的子节点且将节点mid+1直到n分配为左侧子节点的子节点。在计算出“mid”之后,可再两次调用所述算法。调用算法的第一次,可在new_m=old_m+2和new_n=mid时调用所述算法。调用算法的第二次,可在new_m=mid+1和new_n=old_n时调用算法。
图19为根据本发明技术的实施例的展示主要控制节点在通信网格中的其它节点之间分布客户端项目的工作的实例过程的流程图1900。在框1902中,主要控制节点确定如何将工作分布到工作者节点(和此种分布是否可能)。举例来说,此步骤可发生在已经分配和验证网格上的工作者节点之后,如图16到18中所描述。主要控制节点可接着在框1904处确定网格是否包含足够工作者节点以完成所述工作阶段。如果否,那么可在框1906处确定操作或阶段已失败。如果是,那么主要控制节点可在框1908处保存状态且在框1910处将网格快照或状态信息传输到备份控制节点。主要控制节点可接着在框1912处跨越工作者节点分布工作(从工作的某一阶段,在所述工作呈多阶段的情况下),且在框1914处等待工作者节点完成阶段或失效。可接着在框1916处确定任何工作者是否失效。如果一或多个工作者失效,那么可进行若干过程中的一者以补救所述失效。举例来说,主要控制节点可在工作者节点中的其余工作者节点当中重新分布工作。在另一实例中,主要控制节点可诱发所有工作者节点的失效(例如,在框1918处)以使得每一工作者节点可在致力于项目的网格的最新快照处重新开始其工作。举例来说,工作者节点可在框1920处接着将其继续工作状态恢复到所保存的状态(例如,使用所保存的快照),且接着在框1922处重试继续工作阶段(在所述阶段上失效工作者节点失效)。返回参考框1916,如果工作者未失效,那么主要控制节点可在框1924处考虑所述阶段是否为所述项目的最后一个阶段。如果是,那么主要控制节点可在框1928处报告成功完成。如果否,那么主要控制节点可在框1926处将工作分配到项目中的下一阶段的工作者节点。
图20为根据本发明技术的实施例的展示备份控制节点接收经更新的状态信息和将其存储在通信网格中的实例过程的流程图2000。如本文中所提到,通信网格可具有一个、两个、三个或更多个控制节点。图20可仅应用于包含多于一个控制节点的通信网格。在步骤2002处,备份控制节点可等待状态更新通过主要控制节点传输。在框2004、2014、2023和2022中,状态或网格快照可经更新。举例来说,如果状态具有预定时间,在所述预定时间之后状态可停用或终止(例如在框2004处所确定),且已达到所述时间,那么可在框2014处确定所述状态是否为经更新的状态(例如,在备份控制节点接收到经更新的状态信息的情况下,例如呈网格快照形式)。如果是,那么状态信息可在框2023处经保存,如果不再需要,那么旧的或过期状态信息可经丢弃,且备份控制节点可等待另一状态更新(例如,来自主要控制节点)。如果在框2004处状态准备好终止,那么状态可在框2008、2010和2012中终止。如果状态为正常(例如,经调度)终止(如在框2008处所确定),那么所述过程可在框1212处终止。如果否,那么备份控制节点可在框2010处记录错误消息且接着在框2012处终止。返回参考框2014,如果状态并不包含经更新的状态,那么备份控制节点可在框2016处确定主要控制节点已失效。在框2026处,可在框2026处恢复最新存储的状态(例如,来自主要控制节点),且备份控制节点可在框2028和2018处接替为主要控制节点。
图21为根据本发明技术的实施例的展示在通信网格计算期间的工作者节点的实例过程的流程图2100。在步骤2104处,工作者节点可接受如从控制节点所分配的工作,且可执行所分配的工作直到其已完成所述工作为止或直到所述工作者节点已失效为止(在框2106处),如在框2108处所确定。如果工作者节点失效,那么其可在框2114处恢复其最后一个所保存的状态(例如,使用先前存储的状态或快照)且接受来自控制节点的下一工作项(例如,回到框2104)。如果工作者节点未失效,且未找到错误,那么工作者节点可在框2110处确定完成状态是否为项目的最后一个阶段。如果是,那么工作者节点可在框2128处报告成功且终止所述过程。如果所述完成阶段不是最后一个阶段,那么工作者节点可在框2112处移动到其所分配工作中的下一阶段。在通过工作者节点开始任何阶段之前,工作者节点可保存其当前状态(例如,在框2104处)以使得工作者节点将具有所存储的其先前(和最新的)状态以防工作者节点失效。工作者节点可通过例如控制节点在请求工作者节点这样做的任何时间处传输其状态且所述状态可并入为网格快照的部分。
图22为根据本发明技术的实施例的展示用于在通信网格内广播数据的实例过程的流程图2200。在框2202中,节点可确定所述节点将想要广播到网格中的节点中的其余节点的数据是否较大(例如,大于64KB)。如果确定数据并不较大,那么节点可在框2204中确定所述数据是否正在工作者节点上运行(例如,并不在控制节点上运行)。如果否,那么节点可在框2208处等待所有工作者节点准备好接收数据,并且在框2210处,将所述数据传输到将想要运行所述数据的每一工作者节点。如果是,那么节点可在框2210处将数据传输到工作者节点。返回参考框2202,如果确定数据的广播较大,那么节点可在框2214中确定所述数据是否运行于工作者节点上。如果否,那么节点可在框2216处将其它节点组织成树(例如,使用图21中所展示的算法)。接着,节点可在框2220处等待所有工作者准备好接收数据(类似于框2208),且接着在框2216处将所述数据发送到其直接工作者子节点。返回参考框2214,如果确定数据运行于工作者节点上,那么节点可告知控制节点工作者节点已经准备好接收数据(在框2218处)。接着,节点可在框2222处等待来自其直接父节点(例如,控制节点)的数据块;在框2224处将数据复制到输出缓冲器;以及在框2226处将数据重新发送到直接工作者子节点中的任一者。接着,可在框2228处确定是否所有数据已由工作者节点所接收到。如果是,那么所述过程可结束。如果否,那么所述过程可返回到框2222且再次等待来自其直接父节点的数据块。
图23为根据本发明技术的实施例的展示用于通信网格内的约简算法的实例过程的流程图2300。换句话说,流程图2300展示用于从通信网格中的若干或每一节点获得输入数据且基于所述数据执行操作以获得单个结果块的过程。如本文中所描述,本发明技术的实施例限制约简操作以使得需要每一节点上的数据块为相同大小且所述操作并不取决于操作的次序。可对每一节点上的单个对象或对每一节点上的一系列对象执行约简操作。共用约简操作可包含:相乘(例如,得出所有节点上的所有值的乘积);求和(例如,得出所有节点上的所有值的总和);最小值(例如,得出所有节点上的最小值);以及最大值(例如,得出所有节点上的最大值),以及其它操作。
流程图2300可以确定约简是否较大开始(框2302)。如果是,网格可将节点组织成树(框2304);将输入缓冲器分裂成块(框2306);以及将下一块复制到约简缓冲器中(框2308)。举例来说,节点可包含三个缓冲器:(1)输入缓冲器,其可含有源自本地机器的数据;(2)输出缓冲器,其存在于控制节点上;以及(3)“约简缓冲器”,其可为可用于计算所述节点自身和连接到其的所有子节点的部分结果的每一节点上的暂时缓冲器。输出缓冲器与输入缓冲器可为相同大小(但大于约简缓冲器),且输出缓冲器可表示跨越网格中的所有节点的约简操作的结果。在步骤2306中,输入缓冲器可被细分成块,以使得每一块足够的小以刚好放入约简缓冲器中。在实例实施例中,如果输入和输出缓冲器各自含有待通过添加操作减少的百万个双精度数,那么约简缓冲器可足够的大以含有5,000个双精度数。在所述实例中,输入缓冲器可被分成每5,000个双精度数200个块。
每次到达步骤2308,可将单个数据块复制到输入缓冲器之外且复制到约简缓冲器中。网格可接着确定所述块是否具有任何直接子节点(框2326)。如果否,那么网格可检查以查看所述块是否具有父节点(框2332)。如果是,那么网格可将“准备好接收”信号发送到直接子节点(框2328);等待从子节点发送数据块(框2316);以及将子数据块合并到缓冲器(例如,约简缓冲器)(框2317)。接着,网格可检查以查看所述块是否具有父节点(框2332)。如果否,那么网格可将约简缓冲器复制到输出缓冲器(框2330)。举例来说,由于约简缓冲器的内容可含有数据的子集的结果,因此可接着将所述结果复制到输出缓冲器的正确部分中。如果仍需要处理来自输入缓冲器的任何更多数据块(步骤2338),那么执行可以步骤2308继续。返回参考框2332,如果所述块的确具有父节点,那么网格可接着等待来自父节点的“准备好接收”信号(框2328)且将约简缓冲器发送到父节点(框2336)。举例来说,约简缓冲器可含有对以当前节点为根的网格的子树的单个数据块的约简操作的结果。当父节点准备好接收更多信息时,当前节点的约简缓冲器的内容可转发到其父节点,以使得其父节点可继续操作。网格可接着在框2338处检查以查看所有块是否皆已经处理。如果否,那么流程图返回到框2308以将下一块复制到约简缓冲器中。如果是,那么所述过程移动到框2338以确定所有块是否皆已经处理。
返回参考框2302,如果确定约简并不较大,那么网格可在框2310处确定所述约简是否运行于控制节点上。如果否,那么网格可等待来自控制节点的“准备好接收”信号(框2314);将所有数据发送到控制节点(框2316);以及结束所述过程。如果是,那么网格可将本地数据复制到输出缓冲器中(框2312);且将“准备好接收”信号发送到所有工作者节点(框2318);在可用时从工作者节点接收数据(框2320);以及将数据合并到输出缓冲器中(框2322)。在框2324处,网格确定是否已接收到所有数据。如果否,那么所述过程返回到框2318。如果是,那么所述过程结束。
在节点(例如,控制节点)的通信器句柄处可用的实例操作集合描述如下。
-send_state_to_backups:可用于主要控制节点。此将状态数据块发送到每一备份控制节点。此将允许主要控制节点在在主要节点失效之后可使用的备份控制节点中建立最后一个已知状态。此调用将经阻断直到每一备份控制节点已接收到信息为止。如果不存在备份控制节点,那么此调用毫无用处。
-get_state_from_primary:可用于备份控制节点。此将接收状态信息。状态将呈以下4个形式中的一者:a)准备好正常终止;b)准备好异常终止;c)主要控制节点已失效,且已选择此控制节点充当新主要节点;d)主要控制节点状态信息。第四个形式将包含来自主要控制节点的状态数据块。此块应用于备份节点接替为主要节点的事件中。此调用还将返回特定状态,如果曾将其选为新主要节点的话。
-takeover_communicator:仅可用于备份控制节点。此将使得备份控制节点假设主要控制节点在通信器中的角色。
-send:将数据块发送到单个指定的对等节点
-recv:从单个指定的对等节点接收数据块
-find_data:找到对等节点,来自其的数据可用于接收。任选地,等待数据变为可用的。
-broadcast:将来自单个节点的数据块分布到网格中的每一其它节点。广播操作可为简单的或基于树的。对于小数据块,控制节点将整个数据块发送到每一工作者节点。对于较大数据块,将节点组织成树,其中每一节点将数据转播到最多两个其它节点。可使用图21中的算法产生所述树。可使用图22中所描述的算法或过程执行广播。
-reduce:接受网格中的每一节点上的键入数据的向量。对来自每一节点的阵列的每一元素执行特定操作。将所得数据阵列发送到单个节点。可使用图21中的算法产生树。可使用图23中所描述的算法或过程执行广播。
-reduce_all:与reduce相同的操作,除所得阵列可用于网格中的每一节点上以外。
-barrier:阻断直到网格中的每一节点调用为止。
-list_broken_nodes:找到通信器中已失效的一系列节点
-on_failure:建立每次通信API失效时将调用的回调函数。此可通过具有处理所有失效的单个功能简化错误处置。
-on_node_failure:建立将在网格中的任何对等节点已失效时调用的回调函数。此可允许集中化位置甚至在通信API尚未失效时以及时方式处理对等节点的损耗。
-root_rank:找到当前主要控制节点的级别
-num_ranks:找到参与在通信器中的节点(并不包含备份控制节点)的数目
-close:中断参与到通信器中。任何其它节点将视此节点为失效的。
-break_communicator:使得网格中的每一节点遭遇通信失效。此可用于迫使每一节点中的错误恢复路径。
-duplicate_communicator:基于现存通信器产生新通信器。新通信器中的节点可包含当前通信器中的每一节点,或那些节点的子集。
在本文中所描述的一些实例中,系统和方法可包含经由网络(例如,局域网、广域网、因特网或其组合等)、光纤媒体、载波、无线网络等传送的数据传输以供与一或多个数据处理装置的通信。数据传输可携载提供到装置或来自装置的本文中所揭示的数据中的任一者或全部。
一些方面可利用物联网(IoT),其中事物(例如,机器、装置、电话、传感器)可连接到网络且可收集来自这些事物的数据和将其在事物内和/或事物外部进行处理。举例来说,在IoT的情况下,在许多不同装置中可存在传感器,且高值分析可应用于识别隐藏关系和驱动效率提高。此可应用于大数据分析和实时(流化)分析。
另外,可通过包括可由装置处理子系统执行的程序指令的程序代码在许多不同类型的处理装置上实施本文中所描述的方法及和系统。软件程序指令可包含源码、目标代码、机器代码或任何其它存储数据,其可操作以使处理系统执行本文中所描述的方法和操作。然而,还可使用其它实施方案,例如经配置以进行本文中所描述的方法和系统的固件或甚至适当设计的硬件。
系统和方法的数据(例如,关联、映射、数据输入、数据输出、中间数据结果、最终数据结果等)可存储和实施于一或多个不同类型的计算机实施数据存储装置中,例如不同类型的存储装置和编程构造(例如,RAM、ROM、快闪存储器、可移动存储器、平面文件、暂时存储器、数据库、编程数据结构、编程变量、IF-THEN(或类似类型)语句构造等)。应注意,数据结构可描述用于在数据库、程序、存储器或由计算机程序使用的其它计算机可读媒体中组织和存储数据的格式。
计算机程序(也被称作程序、软件、软件应用程序、脚本或代码)可以任何形式的编程语言编写,包含经编译或解译语言;且其可以任何形式部署,包含作为独立程序或作为适合于在计算环境中使用的模块、组件、子例程或其它单元。计算机程序不一定与文件系统中的文件相对应。程序可存储在保持其它程序或数据(例如,存储在标记语言文档中的一或多个脚本)的文件的一部分中、专用于所讨论程序的单个文件中,或多个经协调文件(例如,存储一或多个模块、子程序或代码的部分的文件)中。计算机程序可经部署以在一个计算机上或在位于一个位点或跨越多个位点分布并由通信网络互连的多个计算机上执行。可通过一或多个可编程处理器执行一或多个计算机程序以通过对输入数据进行操作和产生输出而执行功能来执行本说明书中所描述和所展示的过程和逻辑流程和图式。
一般来说,计算机还可包含用于存储数据的一个或多个大容量存储装置,或以操作方式耦合以从所述大容量存储装置接收数据或向其传送数据或进行这两种操作,所述大容量存储装置例如磁盘、磁光盘或光盘。然而,计算机无需具有此类装置。此外,计算机可嵌入于另一装置(例如,移动电话、个人数字助理(PDA)、平板计算机、移动查看装置、移动音频播放器、全球定位系统(GPS)接收器,仅列举一些)中。适合于存储计算机程序指令和数据的计算机可读媒体包含所有形式的非易失性存储器、媒体和存储器装置,包含例如:半导体存储器装置,例如EPROM、EEPROM和快闪存储器装置;磁盘,例如内部硬盘或可移动的磁盘;磁光盘;以及CD ROM和DVD-ROM盘。处理器和存储器可由专用逻辑电路补充或并入在专用逻辑电路中。
本文中所描述的计算机组件、软件模块、函数、数据存储装置和数据结构可彼此直接或间接连接以便允许数据由于其操作所需而流动。还应注意,模块或处理器包含(但不限于)执行软件操作的代码单元,且可例如实施作为代码的子例程单元,或作为代码的软件功能单元,或作为对象(如在面向对象的范式表中),或作为小程序,或实施于计算机脚本语言中,或作为另一类型的计算机代码。软件组件或功能性可取决于迫切情况而位于单个计算机上或跨越多个计算机分布。
计算机可包含执行对数字以及文字、图形、符号和声音的高速处理的可编程机器。计算机可处理、产生或转换数据。计算机包含解译和执行指令的中央处理单元;输入装置,例如键盘、小键盘或鼠标,经由所述输入装置将数据和命令输入计算机;使得计算机能够存储程序和数据的存储器;以及输出装置,例如打印机和显示屏,其展示计算机已处理、产生或转换数据之后的结果。
本说明书中描述的标的物和功能操作的实施方案可在数字电子电路中或在计算机软件、固件或硬件(包含本说明书中揭示的结构和其结构等效物)中或在其中的一或多者的组合中实施。本说明书中所描述的标的物的实施方案可实施为编码于计算机可读媒体上以由数据处理设备执行或控制数据处理设备的操作的一或多个计算机程序产品(即,计算机程序指令的一或多个模块)。计算机可读媒体可为机器可读存储装置、机器可读存储衬底、存储器装置、实现机器可读传播、处理通信的物质的组合物或其中的一或多者的组合。术语“数据处理设备”涵盖用于处理数据的所有设备、装置和机器,作为举例,包含可编程处理器、计算机或多个处理器或计算机。除硬件之外,设备还可包含产生用于所讨论计算机程序的执行环境的代码,例如构成处理器固件、协议堆栈、图形系统、数据库管理系统、操作系统或其中的一或多者的组合的代码。
上文所论述的方法、系统、装置、实施方案和实施例为实例。各种配置可按需要省略、取代或添加各种程序或组件。举例来说,在替代配置中,所述方法可以不同于所描述的顺来执行,或可添加、省略或组合各个阶段。并且,可以各种其它配置组合关于某些配置所描述的特征。可以类似方式组合配置的不同方面和元件。而且,技术发展,且因此,元件中的许多为实例且并不限制本发明或权利要求书的范围。
一些系统可使用用于在分布式计算环境下存储和分析大数据的开放源代码框架。一些系统可使用云计算,其可实现对可在最少管理努力或服务提供商互动的情况下快速供应和释放的可配置计算资源(例如,网络、服务器、存储装置、应用程序和服务)的共享池的广泛、方便、按需网络访问。一些网格系统可实施为多节点集群,如所属领域的技术人员所理解。ApacheTM 为用于分布式计算的开放源代码软件框架。一些系统可使用 LASRTM分析服务器以便在高度交互式编程环境下递送统计模型化和机器学习能力,此可使得多个用户能够同时管理数据、转换变量、执行探索性分析、构建和比较模型和分数。一些系统可使用的SAS存储器内统计数据以读取大数据一次且通过在整个会话中使其存留在存储器内而分析其若干次。一些系统可使用若干其它类型的系统或服务器(包含本文中所提到的那些系统和服务器)的组合。
在描述中给出特定细节以提供对配置(其包含实施方案)的实例的透彻理解。然而,可在无这些特定细节的情况下实践配置。举例来说,已在无不必要细节的情况下展示众所周知的电路、过程、算法、结构和技术以免混淆配置。此描述仅提供实例配置,且并不限制权利要求书的范围、适用性或配置。确切地说,配置的先前描述将向所属领域的技术人员提供用于实施所描述技术的启发性描述。在不脱离本发明的精神或范围的情况下可对元件的功能和布置作出各种改变。
并且,可将配置描述为描绘为流程图或框图的过程。尽管每一流程图或框图可将操作描述为顺序过程,但许多操作可并行地或同时执行。此外,可以重新布置操作的次序。过程可以具有不包含在图中的额外步骤。此外,可通过硬件、软件、固件、中间件、微码、硬件描述语言或其任何组合实施所述方法的实例。当以软件、固件、中间件或微码实施时,用以执行必要任务的程序代码或代码段可存储在例如存储媒体等非暂时性计算机可读媒体中。处理器可执行所描述的任务。
在已描述若干实例配置的情况下,可在不脱离本发明的精神的情况下使用各种修改、替代构造和等效物。举例来说,上述元件可为较大系统的组件,其中其它规则可优先于本发明的应用或以其它方式修改本发明的应用。并且,可在考虑上述元件之前、期间或之后进行多个操作。因此,以上描述并不约束权利要求书的范围。
本文中“能够”、“经调适以”或“经配置以”的使用打算是开放且包含性语言,其不将经调适以或经配置以执行额外任务或步骤的装置排除之外。另外,“基于”的使用打算是开放且包含性的,原因在于“基于”一或多个所列举的条件或值的过程、步骤、计算或其它动作可实际上基于超出那些所列举的内容的额外条件或值。本文中包含的标题、列表和编号仅是为了易于解释且不打算具有限制性。
应理解,除非上下文另外明确规定,否则如在本文中的描述中以及贯穿所附的权利要求书所使用,“一(a/an)”和“所述(the)”的含义包含多个参考。并且,除非上下文另外明确规定,否则如在本文中的描述中以及贯穿所附的权利要求书所使用,“在……中(in)”的含义包含“在……中(in)”和“在……上(on)”。最后,除非上下文另外明确规定,否则如在本文中的描述中和贯穿所附权利要求书所使用,“和(and)”和“或(or)”的含义包含结合性和分离性两者且可互换使用;词组“异或(exclusive or)”可用于指示仅分离性含义可应用的情形。
尽管已关于本发明的特定实施例详细地描述了本发明的标的物,但将了解,所属领域的技术人员在理解前述内容之后可即刻容易产生对此类实施例的更改、变化和等效物。因此,应理解,已出于实例而非限制的目的呈现本发明,且如所属领域的技术人员可易于显而易见,本发明不排除包含对本发明的标的物的所述修改、变化或添加。
尽管本发明可含有许多特性,但这些特性不应理解为限制范围或可能主张的内容,而是应理解为对特定于特定实施方案的特征的描述。在本说明书中在单独实施方案的上下文中描述的某些特征还可在单个实施方案中组合地实施。相反地,在单个实施方案的上下文中描述的各种特征还可单独地在多个实施方案中实施或以任何合适的子组合形式实施。此外,尽管上文可将特征描述为以某些组合形式起作用且甚至最初如此主张,但在一些状况下,可将来自所主张的组合的一或多个特征从组合删除,并且所主张的组合可针对子组合或子组合的变化。
类似地,尽管在图式中按特定次序描绘操作,但此情形不应被理解为要求按所示的特定次序或按顺序次序执行此类操作,或执行所有所说明的操作,以实现所要结果。在某些情形下,多任务处理和并行处理可能是有利的。此外,上文所描述的实施方案中的各种系统组件的分离不应被理解为在所有实施方案中要求此分离,且应理解,所描述的程序组件和系统一般可一起集成在单个软件产品或硬件产品中或封装到多个软件产品或硬件产品中。
Claims (54)
1.一种有形地体现在非暂时性机器可读存储媒体中的计算机程序产品,其包含经配置以使得数据处理设备进行以下操作的指令:
在通信网格上连接到主要控制节点和工作者节点的备份控制节点处接收网格状态信息,所述网格状态信息包含所述主要控制节点的项目状态或所述工作者节点的项目状态,其中所述主要控制节点的所述项目状态和所述工作者节点的所述项目状态包含正由所述通信网格中的所述主要节点和工作者节点执行的项目的一或多个部分的状态;
将所述网格状态信息存储在所述备份控制节点内;
接收包含所述主要控制节点已失效的指示的失效通信;
在接收到所述失效通信时基于所述失效通信而将所述备份控制节点指定为新主要控制节点;
基于所述主要控制节点已失效的所述指示而接收经更新的网格状态信息,其中所述经更新的网格状态信息包含所述主要控制节点的经更新的项目状态或所述工作者节点的经更新的项目状态;以及
基于所述经更新的网格状态信息传输指令集,其中所述指令集包含使所述工作者节点在所述主要控制节点的失效之后继续致力于所述项目的指令。
2.根据权利要求1所述的计算机程序产品,其进一步包括经配置以使得所述数据处理设备进行以下操作的指令:
在所述备份控制节点处接收包含所述备份控制节点为所述新主要控制节点的指示的主要节点通信。
3.根据权利要求1所述的计算机程序产品,其中在接收到所述失效通信时,所述备份控制节点基于所述备份控制节点的唯一标识符或级别确定是否应将所述备份节点指定为所述新主要控制节点,和分配新主要控制节点。
4.根据权利要求1所述的计算机程序产品,其中在接收到所述失效通信时,所述备份控制节点确定所述备份控制节点为所述通信网格上的唯一备份控制节点。
5.根据权利要求1所述的计算机程序产品,其中所述主要控制节点控制所述项目的每一工作者节点负责执行的所述部分。
6.根据权利要求1所述的计算机程序产品,其中给所述通信网格上的每一控制节点和工作者节点分配所存储的唯一标识符,其中所述节点的所述唯一标识符指示所述通信网格内的所述节点的层级,且其中每一控制节点和每一工作者节点存储所述通信网格上的所有其它控制节点和工作者节点的所述唯一标识符。
7.根据权利要求1所述的计算机程序产品,其中所述工作者节点中的工作者节点执行所述项目的不同部分。
8.根据权利要求1所述的计算机程序产品,其中所述网格状态信息包含指示在所述主要控制节点的失效之前所述项目的进展阶段的项目检查点。
9.根据权利要求8所述的计算机程序产品,其中基于所述经更新的网格状态信息传输所述指令集包含传输来自所述项目检查点的指示在所述主要控制节点的所述失效之前所述项目的所述进展阶段的状态。
10.根据权利要求1所述的计算机程序产品,其进一步包括经配置以使得所述数据处理设备进行以下操作的指令:
确定所述主要控制节点已失效,其中确定所述主要控制节点已失效包含确定所述备份控制节点未接收到预期检测信号通信,其中所述检测信号通信指示所述主要控制节点为可操作的。
11.根据权利要求10所述的计算机程序产品,其中确定所述主要控制节点已失效包含确定所述备份控制节点在预定时间段之后未从所述主要控制节点接收到检测信号通信。
12.一种计算装置,其包括:
一或多个处理器;以及
存储器,其上存储有指令,所述指令在由所述一或多个处理器执行时使得所述计算装置执行包含以下各者的操作:
在通信网格上连接到主要控制节点和工作者节点的备份控制节点处接收网格状态信息,所述网格状态信息包含所述主要控制节点的项目状态或所述工作者节点的项目状态,其中所述主要控制节点的所述项目状态和所述工作者节点的所述项目状态包含正由所述通信网格中的所述主要节点和工作者节点执行的项目的一或多个部分的状态;
将所述网格状态信息存储在所述备份控制节点内;
接收包含所述主要控制节点已失效的指示的失效通信;
在接收到所述失效通信时基于所述失效通信而将所述备份控制节点指定为新主要控制节点;
基于所述主要控制节点已失效的所述指示而接收经更新的网格状态信息,其中所述经更新的网格状态信息包含所述主要控制节点的经更新的项目状态或所述工作者节点的经更新的项目状态;以及
基于所述经更新的网格状态信息传输指令集,其中所述指令集包含使所述工作者节点在所述主要控制节点的失效之后继续致力于所述项目的指令。
13.根据权利要求12所述的计算装置,其进一步包括指令,所述指令在由所述一或多个处理器执行时使得所述计算装置执行包含以下各者的操作:
在所述备份控制节点处接收包含所述备份控制节点为所述新主要控制节点的指示的主要节点通信。
14.根据权利要求12所述的计算装置,其中在接收到所述失效通信时,所述备份控制节点基于所述备份控制节点的唯一标识符或级别确定是否应将所述备份节点指定为所述新主要控制节点,和分配新主要控制节点。
15.根据权利要求12所述的计算装置,其中在接收到所述失效通信时,所述备份控制节点确定所述备份控制节点为所述通信网格上的唯一备份控制节点。
16.根据权利要求12所述的计算装置,其中所述主要控制节点控制所述项目的每一工作者节点负责执行的所述部分。
17.根据权利要求12所述的计算装置,其中给所述通信网格上的每一控制节点和工作者节点分配所存储的唯一标识符,其中所述节点的所述唯一标识符指示所述通信网格内的所述节点的层级,且其中每一控制节点和每一工作者节点存储所述通信网格上的所有其它控制节点和工作者节点的所述唯一标识符。
18.根据权利要求12所述的计算装置,其中所述工作者节点中的工作者节点执行所述项目的不同部分。
19.根据权利要求12所述的计算装置,其中所述网格状态信息包含指示在所述主要控制节点的失效之前所述项目的进展阶段的项目检查点。
20.根据权利要求19所述的计算装置,其中基于所述经更新的网格状态信息传输所述指令集包含传输来自所述项目检查点的指示在所述主要控制节点的所述失效之前所述项目的所述进展阶段的状态。
21.根据权利要求12所述的计算装置,其进一步包括指令,所述指令在由所述一或多个处理器执行时使得所述计算装置执行包含以下各者的操作:
确定所述主要控制节点已失效,其中确定所述主要控制节点已失效包含确定所述备份控制节点未接收到预期检测信号通信,其中所述检测信号通信指示所述主要控制节点为可操作的。
22.根据权利要求21所述的计算装置,其中确定所述主要控制节点已失效包含确定所述备份控制节点在预定时间段之后未从所述主要控制节点接收到检测信号通信。
23.一种计算机实施方法,其包括:
在通信网格上连接到主要控制节点和工作者节点的备份控制节点处接收网格状态信息,所述网格状态信息包含所述主要控制节点的项目状态或所述工作者节点的项目状态,其中所述主要控制节点的所述项目状态和所述工作者节点的所述项目状态包含正由所述通信网格中的所述主要节点和工作者节点执行的项目的一或多个部分的状态;
将所述网格状态信息存储在所述备份控制节点内;
接收包含所述主要控制节点已失效的指示的失效通信;
在接收到所述失效通信时基于所述失效通信而将所述备份控制节点指定为新主要控制节点;
基于所述主要控制节点已失效的所述指示而接收经更新的网格状态信息,其中所述经更新的网格状态信息包含所述主要控制节点的经更新的项目状态或所述工作者节点的经更新的项目状态;以及
基于所述经更新的网格状态信息传输指令集,其中所述指令集包含使所述工作者节点在所述主要控制节点的失效之后继续致力于所述项目的指令。
24.根据权利要求23所述的方法,其进一步包括:
在所述备份控制节点处接收包含所述备份控制节点为所述新主要控制节点的指示的主要节点通信。
25.根据权利要求23所述的方法,其中在接收到所述失效通信时,所述备份控制节点基于所述备份控制节点的唯一标识符或级别确定是否应将所述备份节点指定为所述新主要控制节点;和分配新主要控制节点。
26.根据权利要求23所述的方法,其中在接收到所述失效通信时,所述备份控制节点确定所述备份控制节点为所述通信网格上的唯一备份控制节点。
27.根据权利要求23所述的方法,其中所述主要控制节点控制所述项目的每一工作者节点负责执行的所述部分。
28.根据权利要求23所述的方法,其中给所述通信网格上的每一控制节点和工作者节点分配所存储的唯一标识符,其中所述节点的所述唯一标识符指示所述通信网格内的所述节点的层级,且其中每一控制节点和每一工作者节点存储所述通信网格上的所有其它控制节点和工作者节点的所述唯一标识符。
29.根据权利要求23所述的方法,其中所述工作者节点的工作者节点执行所述项目的不同部分。
30.根据权利要求23所述的方法,其中所述网格状态信息包含指示在所述主要控制节点的失效之前所述项目的进展阶段的项目检查点。
31.根据权利要求30所述的方法,其中基于所述经更新的网格状态信息传输所述指令集包含传输来自所述项目检查点的指示在所述主要控制节点的所述失效之前所述项目的所述进展阶段的状态。
32.根据权利要求23所述的方法,其进一步包括:
确定所述主要控制节点已失效,其中确定所述主要控制节点已失效包含确定所述备份控制节点未接收到预期检测信号通信,其中所述检测信号通信指示所述主要控制节点为可操作的。
33.根据权利要求32所述的方法,其中确定所述主要控制节点已失效包含确定所述备份控制节点在预定时间段之后未从所述主要控制节点接收到检测信号通信。
34.一种有形地体现在非暂时性机器可读存储媒体中的计算机程序产品,其包含经配置以使得数据处理设备进行以下操作的指令:
从通信网格上连接到一或多个工作者节点的主要控制节点传输与正由所述一或多个工作者节点执行的项目相关的工作者指令;
产生所述通信网格的快照,其中所述通信网格的所述快照包含所述一或多个工作者节点中的每一者的项目状态,其中工作者节点的项目状态包含所述项目的正由所述通信网格中的所述工作者节点执行的一部分的状态;
确定所述一或多个工作者节点中的失效工作者节点已失效,其中所述一或多个工作者节点在失效时间处已失效;
使用所述通信网格的所述快照识别所述失效工作者节点的项目状态,其中所述失效工作者节点的所述项目状态包含正由所述失效工作者节点在所述失效时间处执行的所述项目的一部分的状态;以及
传输经更新的工作者指令,其中所述经更新的工作者指令包含所述失效工作者节点的所述项目状态和与正由所述一或多个工作者节点执行的所述项目相关的经更新的指令,其中所述经更新的工作者指令促进正由所述失效工作者节点执行的所述项目的所述部分的执行。
35.根据权利要求34所述的计算机程序产品,其进一步包括经配置以使得所述数据处理设备进行以下操作的指令:
识别所述一或多个工作者节点中的起作用工作者节点以完成正由所述失效工作者节点执行的所述项目的所述部分。
36.根据权利要求34所述的计算机程序产品,其中给所述通信网格上的每一工作者节点分配唯一标识符,其中所述工作者节点的所述唯一标识符指示在所述通信网格内与每一唯一标识符相关联的所述工作者节点的层级。
37.根据权利要求36所述的计算机程序产品,其中所述经更新的工作者指令促进所述一或多个工作者节点中的起作用工作者节点开始执行正由所述失效工作者节点执行的所述项目的所述部分。
38.根据权利要求34所述的计算机程序产品,其进一步包括经配置以使得所述数据处理设备进行以下操作的指令:
确定所述失效工作者节点为所述通信网格上的唯一工作者节点;以及
将新工作者节点添加到所述通信网格。
39.根据权利要求34所述的计算机程序产品,其中所述主要控制节点管理所述项目的每一工作者节点负责执行的部分的分布。
40.根据权利要求34所述的计算机程序产品,其中确定所述一或多个工作者节点中的失效工作者节点已失效包含确定所述主要控制节点在传输与正由所述一或多个工作者节点执行的所述项目相关的所述工作者指令之后未接收到检测信号通信。
41.一种计算装置,其包括:
一或多个处理器;以及
存储器,其上存储有指令,所述指令在由所述一或多个处理器执行时使得所述计算装置执行包含以下各者的操作:
从通信网格上连接到一或多个工作者节点的主要控制节点传输与正由所述一或多个工作者节点执行的项目相关的工作者指令;
产生所述通信网格的快照,其中所述通信网格的所述快照包含所述一或多个工作者节点中的每一者的项目状态,其中工作者节点的项目状态包含所述项目的正由所述通信网格中的所述工作者节点执行的一部分的状态;
确定所述一或多个工作者节点中的失效工作者节点已失效,其中所述一或多个工作者节点在失效时间处已失效;
使用所述通信网格的所述快照识别所述失效工作者节点的项目状态,其中所述失效工作者节点的所述项目状态包含正由所述失效工作者节点在所述失效时间处执行的所述项目的一部分的状态;以及
传输经更新的工作者指令,其中所述经更新的工作者指令包含所述失效工作者节点的所述项目状态和与正由所述一或多个工作者节点执行的所述项目相关的经更新的指令,其中所述经更新的工作者指令促进正由所述失效工作者节点执行的所述项目的所述部分的执行。
42.根据权利要求41所述的计算装置,其进一步包括指令,所述指令在由所述一或多个处理器执行时使得所述计算装置执行包含以下各者的操作:
识别所述一或多个工作者节点中的起作用工作者节点以完成正由所述失效工作者节点执行的所述项目的所述部分。
43.根据权利要求41所述的计算装置,其中给所述通信网格上的每一工作者节点分配唯一标识符,其中所述工作者节点的所述唯一标识符指示在所述通信网格内与每一唯一标识符相关联的所述工作者节点的层级。
44.根据权利要求43所述的计算装置,其中所述经更新的工作者指令促进所述一或多个工作者节点中的起作用工作者节点开始执行正由所述失效工作者节点执行的所述项目的所述部分。
45.根据权利要求41所述的计算装置,其进一步包括指令,所述指令在由所述一或多个处理器执行时使得所述计算装置执行包含以下各者的操作:
确定所述失效工作者节点为所述通信网格上的唯一工作者节点;以及
将新工作者节点添加到所述通信网格。
46.根据权利要求41所述的计算装置,其中所述主要控制节点管理所述项目的每一工作者节点负责执行的部分的分布。
47.根据权利要求41所述的计算装置,其中确定所述一或多个工作者节点中的失效工作者节点已失效包含确定所述主要控制节点在传输与正由所述一或多个工作者节点执行的所述项目相关的所述工作者指令之后未接收到检测信号通信。
48.一种计算机实施方法,其包括:
从通信网格上连接到一或多个工作者节点的主要控制节点传输与正由所述一或多个工作者节点执行的项目相关的工作者指令;
产生所述通信网格的快照,其中所述通信网格的所述快照包含所述一或多个工作者节点中的每一者的项目状态,其中工作者节点的项目状态包含所述项目的正由所述通信网格中的所述工作者节点执行的一部分的状态;
确定所述一或多个工作者节点中的失效工作者节点已失效,其中所述一或多个工作者节点在失效时间处已失效;
使用所述通信网格的所述快照识别所述失效工作者节点的项目状态,其中所述失效工作者节点的所述项目状态包含正由所述失效工作者节点在所述失效时间处执行的所述项目的一部分的状态;以及
传输经更新的工作者指令,其中所述经更新的工作者指令包含所述失效工作者节点的所述项目状态和与正由所述一或多个工作者节点执行的所述项目相关的经更新的指令,其中所述经更新的工作者指令促进正由所述失效工作者节点执行的所述项目的所述部分的执行。
49.根据权利要求48所述的方法,其进一步包括:
识别所述一或多个工作者节点中的起作用工作者节点以完成正由所述失效工作者节点执行的所述项目的所述部分。
50.根据权利要求48所述的方法,其中给所述通信网格上的每一工作者节点分配唯一标识符,其中所述工作者节点的所述唯一标识符指示在所述通信网格内与每一唯一标识符相关联的所述工作者节点的层级。
51.根据权利要求50所述的方法,其中所述经更新的工作者指令促进所述一或多个工作者节点中的起作用工作者节点开始执行正由所述失效工作者节点执行的所述项目的所述部分。
52.根据权利要求48所述的方法,其进一步包括:
确定所述失效工作者节点为所述通信网格上的唯一工作者节点;以及
将新工作者节点添加到所述通信网格。
53.根据权利要求48所述的方法,其中所述主要控制节点管理所述项目的每一工作者节点负责执行的部分的分布。
54.根据权利要求48所述的方法,其中确定所述一或多个工作者节点中的失效工作者节点已失效包含确定所述主要控制节点在传输与正由所述一或多个工作者节点执行的所述项目相关的所述工作者指令之后未接收到检测信号通信。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010085245.4A CN111314125A (zh) | 2014-07-01 | 2015-06-23 | 用于容错通信的系统和方法 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201462019426P | 2014-07-01 | 2014-07-01 | |
US62/019,426 | 2014-07-01 | ||
PCT/US2015/037192 WO2016003708A1 (en) | 2014-07-01 | 2015-06-23 | Systems and methods for fault tolerant communications |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010085245.4A Division CN111314125A (zh) | 2014-07-01 | 2015-06-23 | 用于容错通信的系统和方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106462612A true CN106462612A (zh) | 2017-02-22 |
Family
ID=55017082
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580026917.1A Pending CN106462612A (zh) | 2014-07-01 | 2015-06-23 | 用于容错通信的系统和方法 |
CN202010085245.4A Pending CN111314125A (zh) | 2014-07-01 | 2015-06-23 | 用于容错通信的系统和方法 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010085245.4A Pending CN111314125A (zh) | 2014-07-01 | 2015-06-23 | 用于容错通信的系统和方法 |
Country Status (6)
Country | Link |
---|---|
US (2) | US9495260B2 (zh) |
EP (2) | EP3129903B1 (zh) |
CN (2) | CN106462612A (zh) |
CA (2) | CA2957749C (zh) |
ES (2) | ES2714218T3 (zh) |
WO (1) | WO2016003708A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108881446A (zh) * | 2018-06-22 | 2018-11-23 | 深源恒际科技有限公司 | 一种基于深度学习的人工智能平台系统 |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10303567B2 (en) * | 2013-08-15 | 2019-05-28 | Entit Software Llc | Managing database nodes |
US9335911B1 (en) | 2014-12-29 | 2016-05-10 | Palantir Technologies Inc. | Interactive user interface for dynamic data analysis exploration and query processing |
US20180039399A1 (en) * | 2014-12-29 | 2018-02-08 | Palantir Technologies Inc. | Interactive user interface for dynamically updating data and data analysis and query processing |
US20170199834A1 (en) * | 2016-01-13 | 2017-07-13 | Ford Global Technologies, Llc | Vehicle subsystem communication arbitration |
US11087234B2 (en) * | 2016-01-29 | 2021-08-10 | Verizon Media Inc. | Method and system for distributed deep machine learning |
CN105786405B (zh) | 2016-02-25 | 2018-11-13 | 华为技术有限公司 | 一种在线升级方法、装置及系统 |
US10203890B1 (en) * | 2016-09-20 | 2019-02-12 | Tintri Inc. | Multi-tier mechanism to achieve high availability in a multi-controller system |
US11153376B2 (en) | 2017-02-23 | 2021-10-19 | Centurylink Intellectual Property Llc | Systems and methods for an internet of things computing shell |
US10025813B1 (en) * | 2017-04-13 | 2018-07-17 | Sas Institute Inc. | Distributed data transformation system |
US9986509B1 (en) | 2017-04-21 | 2018-05-29 | Cisco Technology, Inc. | Advance remote failure notification (ARFN) |
US10885021B1 (en) | 2018-05-02 | 2021-01-05 | Palantir Technologies Inc. | Interactive interpreter and graphical user interface |
US11099925B2 (en) | 2018-07-10 | 2021-08-24 | EMC IP Holding Company LLC | Datacenter preemptive measures for improving protection using IoT sensors |
US11102301B2 (en) | 2018-07-12 | 2021-08-24 | Sap Se | PCA-based scoring of the similarity of damage patterns of operational assets |
US10740206B2 (en) * | 2018-07-18 | 2020-08-11 | Sap Se | Record-based planning in operational maintenance and service |
US10777058B2 (en) | 2018-09-22 | 2020-09-15 | Fedex Corporate Services, Inc. | Systems, apparatus, and methods for detecting an environmental anomaly and initiating an enhanced automatic response using elements of a wireless node network using ID nodes and environmental threshold conditions per ID node |
US11106528B2 (en) | 2018-10-10 | 2021-08-31 | EMC IP Holding Company LLC | Datacenter IoT-triggered preemptive measures using machine learning |
BR112019015208A2 (pt) | 2018-12-13 | 2021-07-27 | Alibaba Group Holding Limited | métodos implementado por computador, meios de armazenamento legíveis por computador não transitórios e sistemas |
KR102134549B1 (ko) * | 2018-12-13 | 2020-07-27 | 알리바바 그룹 홀딩 리미티드 | 분산 시스템에서 프라이머리 노드의 체인지 수행 |
SG11201906535WA (en) | 2018-12-13 | 2019-08-27 | Alibaba Group Holding Ltd | Performing a recovery process for a network node in a distributed system |
EP3734382A1 (en) * | 2019-05-03 | 2020-11-04 | AB Sandvik Coromant | Method for establishing communication in a machine tool system and a communication apparatus therefor |
CN112394689B (zh) | 2019-08-16 | 2024-01-30 | 台达电子国际(新加坡)私人有限公司 | 分散式虚实整合系统 |
US11106556B2 (en) * | 2019-09-13 | 2021-08-31 | EMC IP Holding Company LLC | Data service failover in shared storage clusters |
CN111753997B (zh) * | 2020-06-28 | 2021-08-27 | 北京百度网讯科技有限公司 | 分布式训练方法、系统、设备及存储介质 |
CN112434193B (zh) * | 2020-10-27 | 2023-09-29 | 北京空间飞行器总体设计部 | 一种引导式系统故障快速排查方法及装置 |
CN112511337B (zh) * | 2020-11-09 | 2023-03-14 | 迅鳐成都科技有限公司 | 区块链共识网络自恢复方法、电子设备、系统及存储介质 |
US11762743B2 (en) * | 2021-06-28 | 2023-09-19 | International Business Machines Corporation | Transferring task data between edge devices in edge computing |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1512376A (zh) * | 2002-12-31 | 2004-07-14 | 联想(北京)有限公司 | 大型机群系统的集中控制方法 |
CN101145946A (zh) * | 2007-09-17 | 2008-03-19 | 中兴通讯股份有限公司 | 一种基于消息日志的容错集群系统和方法 |
CN101594254A (zh) * | 2009-06-30 | 2009-12-02 | 中国运载火箭技术研究院 | 一种基于代理技术的网格计算容错系统及方法 |
CN103064728A (zh) * | 2012-12-13 | 2013-04-24 | 河南工业大学 | 一种MapReduce任务的容错调度方法 |
Family Cites Families (48)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5295258A (en) | 1989-12-22 | 1994-03-15 | Tandem Computers Incorporated | Fault-tolerant computer system with online recovery and reintegration of redundant components |
US5271013A (en) | 1990-05-09 | 1993-12-14 | Unisys Corporation | Fault tolerant computer system |
WO1993009494A1 (en) | 1991-10-28 | 1993-05-13 | Digital Equipment Corporation | Fault-tolerant computer processing using a shadow virtual processor |
US5621885A (en) | 1995-06-07 | 1997-04-15 | Tandem Computers, Incorporated | System and method for providing a fault tolerant computer program runtime support environment |
US5802265A (en) | 1995-12-01 | 1998-09-01 | Stratus Computer, Inc. | Transparent fault tolerant computer system |
US5796934A (en) | 1996-05-31 | 1998-08-18 | Oracle Corporation | Fault tolerant client server system |
DE19836347C2 (de) | 1998-08-11 | 2001-11-15 | Ericsson Telefon Ab L M | Fehlertolerantes Computersystem |
US6393583B1 (en) | 1998-10-29 | 2002-05-21 | International Business Machines Corporation | Method of performing checkpoint/restart of a parallel program |
EP1020797B1 (en) | 1999-01-11 | 2004-05-06 | Koken Co., Ltd. | Fault tolerant computer system |
US6993764B2 (en) | 2000-06-30 | 2006-01-31 | The Regents Of The University Of California | Buffered coscheduling for parallel programming and enhanced fault tolerance |
WO2003013675A1 (en) | 2001-08-07 | 2003-02-20 | Rebel Arts Llc | Distributed and fault tolerant server system and method |
US7305585B2 (en) | 2002-05-23 | 2007-12-04 | Exludus Technologies Inc. | Asynchronous and autonomous data replication |
EP1365538A1 (en) | 2002-05-23 | 2003-11-26 | Benoit Marchand | Implementing a scalable, dynamic, fault-tolerant, multicast based file transfer and asynchronous file replication protocol |
US7185236B1 (en) * | 2002-08-30 | 2007-02-27 | Eternal Systems, Inc. | Consistent group membership for semi-active and passive replication |
JP4457581B2 (ja) | 2003-05-28 | 2010-04-28 | 日本電気株式会社 | 耐障害システム、プログラム並列実行方法、耐障害システムの障害検出装置およびプログラム |
US8041798B1 (en) * | 2003-09-11 | 2011-10-18 | Oracle America, Inc. | Self-healing grid mechanism |
US7533168B1 (en) * | 2003-09-11 | 2009-05-12 | Sun Microsystems, Inc. | Autonomic grid computing mechanism |
CN1292346C (zh) * | 2003-09-12 | 2006-12-27 | 国际商业机器公司 | 用于在分布式计算体系结构中执行作业的系统和方法 |
US7149858B1 (en) * | 2003-10-31 | 2006-12-12 | Veritas Operating Corporation | Synchronous replication for system and data security |
US7475274B2 (en) | 2004-11-17 | 2009-01-06 | Raytheon Company | Fault tolerance and recovery in a high-performance computing (HPC) system |
JP4411602B2 (ja) | 2004-12-16 | 2010-02-10 | 日本電気株式会社 | フォールトトレラント・コンピュータシステム |
US20060253726A1 (en) | 2005-05-06 | 2006-11-09 | Vikas Kukshya | Fault-tolerant architecture for a distributed control system |
WO2006121990A2 (en) | 2005-05-06 | 2006-11-16 | Marathon Technologies Corporation | Fault tolerant computer system |
US7484032B2 (en) | 2005-06-30 | 2009-01-27 | Smith Roger A | Fault tolerant computer system |
US8788565B2 (en) | 2005-07-18 | 2014-07-22 | Wayne Bevan | Dynamic and distributed queueing and processing system |
US7941404B2 (en) * | 2006-03-08 | 2011-05-10 | International Business Machines Corporation | Coordinated federated backup of a distributed application environment |
JP4546413B2 (ja) * | 2006-03-17 | 2010-09-15 | 富士通株式会社 | 並列計算機のリダクション処理方法及び並列計算機 |
US7571347B2 (en) | 2006-03-20 | 2009-08-04 | Sun Microsystems, Inc. | Method and apparatus for providing fault-tolerance in parallel-processing systems |
US7657787B2 (en) | 2006-04-11 | 2010-02-02 | Hewlett-Packard Development Company, L.P. | Method of restoring communication state of process |
US8291419B2 (en) | 2006-09-26 | 2012-10-16 | International Business Machines Corporation | Fault tolerant system for execution of parallel jobs |
US7917469B2 (en) | 2006-11-08 | 2011-03-29 | Hitachi Data Systems Corporation | Fast primary cluster recovery |
US7610510B2 (en) | 2007-02-16 | 2009-10-27 | Symantec Corporation | Method and apparatus for transactional fault tolerance in a client-server system |
US8112593B2 (en) | 2007-03-29 | 2012-02-07 | Netapp, Inc. | System and method for improving cluster performance |
US8335813B2 (en) | 2007-05-01 | 2012-12-18 | Illinois Institute Of Technology | Systems, methods, and protocols for process migration and group membership management |
US8161480B2 (en) * | 2007-05-29 | 2012-04-17 | International Business Machines Corporation | Performing an allreduce operation using shared memory |
US7779298B2 (en) | 2007-06-11 | 2010-08-17 | International Business Machines Corporation | Distributed job manager recovery |
US20090019258A1 (en) | 2007-07-09 | 2009-01-15 | Shi Justin Y | Fault tolerant self-optimizing multi-processor system and method thereof |
US8990397B2 (en) * | 2009-07-31 | 2015-03-24 | Ntt Docomo, Inc. | Resource allocation protocol for a virtualized infrastructure with reliability guarantees |
US8874961B2 (en) * | 2010-03-22 | 2014-10-28 | Infosys Limited | Method and system for automatic failover of distributed query processing using distributed shared memory |
US8595234B2 (en) | 2010-05-17 | 2013-11-26 | Wal-Mart Stores, Inc. | Processing data feeds |
US8250405B2 (en) | 2010-05-27 | 2012-08-21 | International Business Machines Corporation | Accelerating recovery in MPI environments |
US8473783B2 (en) | 2010-11-09 | 2013-06-25 | International Business Machines Corporation | Fault tolerance in distributed systems |
US8271537B2 (en) | 2010-11-15 | 2012-09-18 | Sas Institute Inc. | Grid computing system alongside a distributed database architecture |
US8984328B2 (en) | 2011-03-11 | 2015-03-17 | Microsoft Technology Licensing, Llc | Fault tolerance in a parallel database system |
CN102411520B (zh) * | 2011-09-21 | 2013-09-25 | 电子科技大学 | 一种基于数据单元的地震数据的灾难恢复方法 |
US20140067887A1 (en) * | 2012-08-29 | 2014-03-06 | Sas Institute Inc. | Grid Computing System Alongside A Distributed File System Architecture |
CN103778031B (zh) * | 2014-01-15 | 2017-01-18 | 华中科技大学 | 一种云环境下的分布式系统多级故障容错方法 |
CN103853634B (zh) * | 2014-02-26 | 2017-02-01 | 北京优炫软件股份有限公司 | 一种容灾备份系统及方法 |
-
2015
- 2015-06-23 ES ES16205816T patent/ES2714218T3/es active Active
- 2015-06-23 WO PCT/US2015/037192 patent/WO2016003708A1/en active Application Filing
- 2015-06-23 US US14/747,965 patent/US9495260B2/en active Active
- 2015-06-23 EP EP15814364.4A patent/EP3129903B1/en active Active
- 2015-06-23 CN CN201580026917.1A patent/CN106462612A/zh active Pending
- 2015-06-23 ES ES15814364T patent/ES2705708T3/es active Active
- 2015-06-23 CN CN202010085245.4A patent/CN111314125A/zh active Pending
- 2015-06-23 CA CA2957749A patent/CA2957749C/en active Active
- 2015-06-23 US US14/747,763 patent/US9424149B2/en active Active
- 2015-06-23 CA CA2948914A patent/CA2948914C/en active Active
- 2015-06-23 EP EP16205816.8A patent/EP3179368B1/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1512376A (zh) * | 2002-12-31 | 2004-07-14 | 联想(北京)有限公司 | 大型机群系统的集中控制方法 |
CN101145946A (zh) * | 2007-09-17 | 2008-03-19 | 中兴通讯股份有限公司 | 一种基于消息日志的容错集群系统和方法 |
CN101594254A (zh) * | 2009-06-30 | 2009-12-02 | 中国运载火箭技术研究院 | 一种基于代理技术的网格计算容错系统及方法 |
CN103064728A (zh) * | 2012-12-13 | 2013-04-24 | 河南工业大学 | 一种MapReduce任务的容错调度方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108881446A (zh) * | 2018-06-22 | 2018-11-23 | 深源恒际科技有限公司 | 一种基于深度学习的人工智能平台系统 |
CN108881446B (zh) * | 2018-06-22 | 2021-09-21 | 深源恒际科技有限公司 | 一种基于深度学习的人工智能平台系统 |
Also Published As
Publication number | Publication date |
---|---|
EP3179368A1 (en) | 2017-06-14 |
CA2957749A1 (en) | 2016-01-07 |
EP3129903B1 (en) | 2018-11-28 |
EP3179368B1 (en) | 2018-12-12 |
CA2957749C (en) | 2017-08-15 |
US20160004610A1 (en) | 2016-01-07 |
ES2714218T3 (es) | 2019-05-27 |
US9495260B2 (en) | 2016-11-15 |
WO2016003708A1 (en) | 2016-01-07 |
EP3129903A1 (en) | 2017-02-15 |
EP3129903A4 (en) | 2017-12-20 |
CA2948914C (en) | 2017-09-05 |
CA2948914A1 (en) | 2016-01-07 |
CN111314125A (zh) | 2020-06-19 |
US20160004609A1 (en) | 2016-01-07 |
ES2705708T3 (es) | 2019-03-26 |
US9424149B2 (en) | 2016-08-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106462612A (zh) | 用于容错通信的系统和方法 | |
Bonawitz et al. | Towards federated learning at scale: System design | |
US8775387B2 (en) | Methods and systems for validating accessibility and currency of replicated data | |
WO2021022943A1 (zh) | 基于数据安全的任务审批流程管理方法、装置及系统 | |
CN109522363B (zh) | 基于区块链的云平台同步方法、系统、设备及存储介质 | |
CN102902600A (zh) | 有效的应用感知的灾难恢复 | |
US10255341B2 (en) | Mode switching in high availability disaster recovery (HADR) systems | |
CN112313629B (zh) | 备份和恢复验证 | |
US20230023053A1 (en) | Data loss recovery in a secondary storage controller from a primary storage controller | |
CN112269690B (zh) | 一种数据备份的方法和装置 | |
CN111552494B (zh) | 一种容器组的管理方法、设备、系统及介质 | |
CN109062599B (zh) | 微服务架构下代码更新的管理方法和装置 | |
WO2023244491A1 (en) | Techniques for replication checkpointing during disaster recovery | |
CN112738153B (zh) | 业务系统中的网关选择方法、系统、装置、服务器及介质 | |
CN113485828B (zh) | 基于quartz的分布式任务调度系统及方法 | |
CN110677497A (zh) | 一种网络介质分发方法及装置 | |
US20190155642A1 (en) | Dataflow life cycles | |
CN117057974B (zh) | 一种gpu大数据平台、电子设备和存储介质 | |
WO2014040426A1 (zh) | 查询处理方法和装置 | |
US12001404B2 (en) | Techniques for replication checkpointing during disaster recovery | |
US20230409540A1 (en) | End-to-end restartability of cross-region replication using a new replication | |
CN108241551A (zh) | 一种冗余数据库系统 | |
KR20160132433A (ko) | 메시지 재송신 메커니즘을 위한 기술들 | |
WO2023244446A1 (en) | Scalable and secure cross-region and optimized file system replication for cloud scale | |
CN116843856A (zh) | 面向多用户的分布式大型多场景多源三维重建方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1229912 Country of ref document: HK |
|
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170222 |
|
RJ01 | Rejection of invention patent application after publication | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: WD Ref document number: 1229912 Country of ref document: HK |