CN113965494A - 用于冗余进程网络中的故障检测和角色选择的方法 - Google Patents
用于冗余进程网络中的故障检测和角色选择的方法 Download PDFInfo
- Publication number
- CN113965494A CN113965494A CN202110664834.2A CN202110664834A CN113965494A CN 113965494 A CN113965494 A CN 113965494A CN 202110664834 A CN202110664834 A CN 202110664834A CN 113965494 A CN113965494 A CN 113965494A
- Authority
- CN
- China
- Prior art keywords
- heartbeat
- network
- processes
- priority
- subset
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3055—Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
-
- 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/0703—Error 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/0706—Error 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/0721—Error 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 within a central processing unit [CPU]
-
- 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/0703—Error 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/0751—Error or fault detection not based on redundancy
- G06F11/0754—Error or fault detection not based on redundancy by exceeding limits
- G06F11/0757—Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
-
- 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/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/142—Reconfiguring to eliminate the error
- G06F11/1425—Reconfiguring to eliminate the error by reconfiguration of node membership
-
- 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/14—Error detection or correction of the data by redundancy in operation
- G06F11/1479—Generic software techniques for error detection or fault masking
- G06F11/1482—Generic software techniques for error detection or fault masking by means of middleware or OS 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/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/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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/22—Arrangements for detecting or preventing errors in the information received using redundant apparatus to increase reliability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
- H04L41/0668—Management of faults, events, alarms or notifications using network fault recovery by dynamic selection of recovery network elements, e.g. replacement by the most appropriate element after failure
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Hardware Redundancy (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Biomedical Technology (AREA)
Abstract
本发明总体涉及一种用于对冗余进程网络中的进程(302、304、306、308、309)进行故障检测和角色选择的方法,该冗余进程网络包括主进程,该主进程被配置为以预定的间隔向网络的进程传输心跳信号。
Description
技术领域
本发明总体涉及一种用于对冗余进程网络中的进程进行故障检测和角色选择的方法、用于执行冗余进程网络中的进程的控制单元以及对应的计算机程序产品。
背景技术
通常,在用于其中停机成本高昂的应用的自动化系统中实现分布式控制系统(DCS)。这样的应用例如可以在石油工业中、并且涉及石油产品的生产以及从油井中提取油,其中停机时间成本高昂。减少停机时间的一种常用方式是具有多个关键硬件,例如,控制器复制。常用方案是N中取M模式(M out of N pattern),其中N个节点准备接管M个操作节点。
这些冗余方案通常为二中取一,这意味着如果主节点发生故障,则备份节点准备接管。两个硬件单元之间的通信通常通过满足目的的专用冗余链路来实现。该链路允许使用专用的线进行故障检测,也就是说,如果主设备可能发生故障,则硬件支持可以确保备份检测到该故障。
然而,对于以网络为中心的下一代控制系统,期望最大限度地减少使用满足目的的专门硬件(诸如用于冗余通信的链路)来实现冗余目的。取而代之的是,要使用通用通信装置,诸如以太网。对于冗余,这允许在多种平台(诸如工业PC、云服务器或边缘设备)中部署和托管冗余控制应用。此外,它针对灵活冗余配置开放,在该灵活冗余配置中,主控制器可以具有N个备份,或计算能力强大的服务器可以充当多个主控制器的备份。
因而,为了最大限度地减少满足目的的使用,用于冗余目的的专门硬件需要一种故障检测方式并且以有效方式使得备份控制器能够使用这种通用通信装置接管。
发明内容
鉴于现有技术的上述缺点和其他缺点,本发明的一个目的是提供一种用于在冗余进程网络中进行故障检测和角色选择的基于消息的方法,其至少部分缓解了现有技术的缺点。
根据本发明的第一方面,提供了一种用于对冗余进程网络中的进程进行故障检测和角色选择的方法,该冗余进程网络包括主进程,该主进程被配置为以预定的间隔向网络的进程传输心跳信号,该方法包括:响应于网络中的监督进程没有在预定的时间间隔内从主进程接收到心跳,通过监督进程向网络中的其他进程传输带有揭示命令的心跳,该揭示命令提示优先级高于监督进程的优先级的进程传输心跳;从比监督进程具有更高优先级的进程接收心跳,其中优先级最高的进程担当主进程的角色;或者如果监督进程没有接收到心跳,则担当作为主进程的角色。
本发明至少部分基于利用心跳进行故障检测和角色选择两者的实现。因此,通常在进程网络中用于指示进程的正常操作的心跳被用于进行故障检测和角色选择,而无需任何其他消息传递。例如,无需专用的请求-响应处置来选择新主进程。
心跳本身为本领域技术人员所已知,并且经常用于同步计算机系统中的不同部分或用于指示进程的正常操作。心跳是进程之间传输的周期性信号。
进程之间的通信(即,用于传输心跳的通信)可以使用硬连线通信(诸如以太网)或无线解决方案(诸如Wifi、蓝牙、3G-5G等)来执行。进一步地,进程可以在同一控制单元上操作,即,在同一处理器上操作,其中软件装置和协议用于允许进程相互通信。应当理解,软件模块之间的心跳传输本身已知,并且本领域技术人员可以预见实现这种传输的各种方式。
故障检测基于以特定间隔从受监督进程(即,主进程)传输的心跳。监督进程假设应当在某个间隔内观察到心跳。如果在该间隔内未接收到心跳消息,则假设受监督进程已经发生故障。
角色选择基于故障检测所交换的心跳,即,无需附加消息。因此,发明人认识到用于进行故障检测的心跳还可以借助于心跳中的消息字段用于进行角色选择。
本文中的角色是某个进程在网络中所具有的角色,其中作为主进程就是一个这种角色。依据例如给定进程的优先级水平,主进程是负责给定任务的进程,并且其他进程是冗余进程,这些冗余进程可以接替主进程。
所传输的心跳可以是多播心跳。换言之,心跳以一对多的方式发送到网络中的所有进程。
冗余进程网络可以是以网络为中心的进程控制系统。
“进程”应当以广义方式进行解释,并且通常包括计算机程序和该计算机程序所提供的活动或服务。因此,进程可以是指计算机程序产品的实例化和执行。因此,进程需要CPU时间和存储器来执行计算机程序产品。
进程可以托管在控制器、计算机设备(例如,PC)或所谓的边缘设备上。通常,进程可以由任何设备或模块驱动,该设备或模块能够驱动对计算机程序产品的执行。
例如,每个进程可以被认为是网络中的节点。每个节点可以包括处理器和计算机程序产品,该计算机程序产品存储指令,这些指令当由处理器执行时,使得节点运行指令以提供活动或服务。
在可能的实现方式中,几个进程由同一控制器或处理器执行。因此,控制器/处理器托管几个节点,每个节点包括计算机程序产品,该计算机程序产品存储指令,这些指令当由处理器执行时使得节点运行指令以提供活动或服务。
在实施例中,该方法可以包括:通过网络中的至少一个其他进程,基于至少一个其他进程的优先级次序来担当次要角色。因此,由于所有进程都获知进程的优先级水平,所以网络中除主进程之外的其他进程可以基于它们的优先级次序担当其他角色。这提供了在选择主进程的同时对附加角色进行分配。
例如,次要角色可以是备份角色,该备份角色指示进程有望担当主进程的角色。一个或多个进程可以担当备份进程的角色。进程维持备份角色并且继续利用来自主进程的状态进行更新,即,它从主进程接收心跳,以使作为备份进程的进程准备接替主进程。
在实施例中,响应于揭示命令而传输的心跳可以至少通过进程子集中的进程中的每个进程而被接收,由此向接收到响应心跳的所有进程通知新主进程。因而,由于多播心跳,所以新主进程的信息有效传输到所有进程。心跳消息可以例如包括消息字段,消息字段具有指示多播心跳的进程的优先级的信息。因而,由于连续地多播心跳,所以连续地向网络中的进程通知网络中的进程的优先级水平。
在实施例中,进程可传输的心跳可以包括消息字段,该消息字段至少包括指示进程的优先级的字段、揭示命令字段和平局打破指示符。平局打破指示符可以是区分开进程与其他进程的值或串。如果两个进程具有相同的优先级,则规则或算法对平局打破指示符进行评估,以使进程中的一个进程优先于另一进程。
因此,如果两个进程被认为具有相同的最高优先级,则主进程基于与这两个进程相关联的平局打破指示符来确定。
优选地,子集中的进程至少可以能够由单独物理控制单元执行。
还应当设想,进程中的至少两个进程可以能够在同一物理控制单元上执行。
优选地,传输心跳包括:多播心跳,使得所有进程都接收心跳。
根据本发明的第二方面,提供了一种控制单元,该控制单元被配置为执行监督进程,该监督进程包括计算机程序产品,该计算机程序产品存储用于提供活动的指令,该监督进程是冗余进程网络的一部分,该冗余进程网络包括主进程,该主进程被配置为以预定的间隔至少向网络中的进程子集传输心跳信号,该控制单元包括装置,该装置用于:响应于监督进程没有在预定的时间间隔内从主进程接收到心跳,控制监督进程以至少向网络中的进程子集传输带有揭示命令的心跳,该揭示命令提示优先级高于监督进程的优先级的进程传输心跳;并且从比监督进程具有更高优先级的进程接收心跳,其中优先级最高的进程担当主进程的角色;或者如果监督进程没有接收到心跳,则担当作为主进程的角色。
控制单元可以被配置为至少执行监督进程和网络的一个其他进程。
控制单元可以被配置为执行网络的每个进程。控制单元可以被配置为执行进程子集中的每个进程。
本发明的第二方面的其他效果和特征在很大程度上类似于上文结合本发明的第一方面所描述的效果和特征。
根据本发明的第三方面,提供了一种用于对冗余进程网络中的第一进程进行角色选择的方法,该冗余进程网络包括主进程,该主进程被配置为以预定的间隔至少向网络的进程子集传输心跳信号。该方法包括:响应于通过第一进程从网络的监督进程接收带有揭示命令的心跳,如果第一进程的优先级高于监督进程的优先级,则通过第一进程至少向网络的进程子集传输心跳;通过第一进程接收至少一个心跳,该至少一个心跳指示冗余进程的至少一个子集的优先级,其中如果第一进程的优先级高于子集的其他进程的优先级,则在网络中担当作为主进程的角色。
该方法可以包括:如果第一进程的优先级改变,则通过第一进程至少向冗余进程的子集传输心跳,该心跳包括揭示命令,该揭示命令提示优先级高于第一进程的优先级的进程传输心跳;其中如果第一进程的优先级高于该子集的其他进程的优先级,则在网络中担当主进程的角色。因而,第一进程可以在后续心跳中将其新优先级通知其他进程,并且包括后续心跳中的揭示命令,以便检查第一进程是否应该接替主进程,因此有利地在没有故障的情况下提供角色选择。
本发明的第三方面的其他效果和特征在很大程度上类似于上文结合本发明的第一方面和第二方面所描述的效果和特征。
根据本发明的第四方面,提供了一种控制单元,该控制单元被配置为执行第一进程,该第一进程包括计算机程序产品,该计算机程序产品存储用于提供活动的指令,该第一进程被包括在冗余进程网络中,该冗余进程网络包括主进程,该主进程被配置为以预定的间隔至少向网络的进程子集传输心跳信号。该控制单元包括装置,该装置用于:响应于从网络的监督进程接收带有揭示命令的心跳,如果第一进程的优先级高于监督进程的优先级,则从第一进程至少向网络的进程子集传输心跳;接收指示冗余进程的至少一个子集的优先级的心跳,其中如果第一进程的优先级高于子集的进程的优先级,则控制第一进程以在网络中担当作为主进程的角色。
控制单元中包括的装置可以是指计算机程序产品,该计算机程序产品包括用于提供步骤的指令或代码。
本发明的第四方面的其他效果和特征在很大程度上类似于结合本发明的第一方面、第二方面和第三方面所描述的效果和特征。
在本发明的第五方面中,提供了一种计算机程序产品,包括其上存储有计算机程序装置的计算机可读介质,该计算机程序装置用于执行冗余进程网络中的监督进程,该冗余进程网络包括主进程,该主进程被配置为以预定的间隔至少向网络的进程子集传输心跳信号,其中计算机程序产品包括:代码,用于响应于网络中的监督进程没有在预定的时间间隔内从主进程接收到心跳,执行从监督进程至少向网络中的进程子集传输带有揭示命令的心跳,该揭示命令提示优先级高于监督进程的优先级的进程传输心跳;代码,用于在响应于揭示命令而没有接收到心跳的情况下,通过监督进程担当作为主进程的角色。
本发明的第五方面的其他效果和特征在很大程度上类似于上文结合本发明的其他方面所描述的效果和特征。
在本发明的第六方面,提供了一种计算机程序产品,该计算机程序产品包括其上存储有计算机程序装置的计算机可读介质,该计算机程序装置用于执行冗余进程网络中的第一进程,该冗余进程网络包括主进程,该主进程被配置为以预定的间隔至少向网络的进程子集传输心跳信号,其中计算机程序产品包括:代码,用于响应于通过第一进程从网络的监督进程接收带有揭示命令的心跳并且如果第一进程的优先级高于监督进程的优先级,则执行从第一进程至少向网络的进程子集传输心跳;代码,用于通过第一进程评估至少一个接收到的心跳所指示的优先级;以及代码,用于如果第一进程的优先级高于子集的其他进程的优先级,则通过第一进程在网络中担当作为主进程的角色。
本发明的第六方面的其他效果和特征在很大程度上类似于上文结合本发明的其他方面所描述的效果和特征。
当研究所附权利要求和以下描述时,本发明的其他特征和优点将变得显而易见。本领域技术人员认识到,在没有背离本发明的范围的情况下,可以组合本发明的不同特征来创建除以下所描述的实施例之外的实施例。
附图说明
现在,参考示出了本发明的示例实施例的附图对本发明的这些和其他方面进行更详细的描述,其中:
图1A概念性地图示了根据本发明的实施例的进程网络;
图1B概念性地图示了进程网络;
图2是根据本发明的实施例的方法步骤的流程图;
图3A概念性地图示了根据本发明的实施例的进程网络;
图3B概念性地图示了根据本发明的实施例,进程可以在同一控制单元上执行;
图3C概念性地图示了根据本发明的实施例,进程可以在单独控制单元上执行;
图4是指示心跳消息的一些优选消息字段的表;
图5是根据本发明的实施例的方法步骤的流程图;以及
图6是根据本发明的实施例的方法步骤的流程图。
具体实施方式
在本具体实施方式中,本文中结合具体实现方式对本发明的各种实施例进行了描述。为了清楚起见,采用特定术语来描述实施例。然而,本发明不旨在限于如此选择的特定术语。虽然讨论了特定示例性实施例,但是应当理解,这仅用于说明目的。相关领域的技术人员应当认识到,在没有背离本发明的范围的情况下,可以使用其他部件和配置。
图1A概念性地图示了进程网络100。这里,该网络包括:第一计算机设备102,该第一计算机设备102包括控制器103,该控制器103被配置为执行进程;以及第二计算机设备105,该第二计算机设备105包括控制器106,该控制器106被配置为执行进程。控制器103可以是主控制器,并且控制器106可以是备份控制器。可以基于以太网通信的诸如冗余链路之类的通信链路110允许主控制器103和备份控制器106跨通信链路110彼此通信。可以使用通信链路110传输心跳(heartbeat)。控制器103和106可以存储有用于执行计算机程序产品的指令。
图1B图示了另一示例进程网络118。这里,控制器121和122可以共享硬件120,而硬件125包括控制器126,并且硬件128包括控制器129。控制器126和控制器129都可以是主控制器,并且主控制器126具有备份控制器121,而主控制器129具有备份控制器122。备份控制器121和122共享硬件120。如图1A所示,主控制器126和129通过通信链路110与备份控制器121和122通信。
图2是根据本发明的实施例的方法步骤的流程图,而图3A概念性地图示了冗余进程302、304、306、308、309的网络。在图3中,假设进程302为监督进程并且假设进程304为当前主进程。图2中的步骤针对用于对冗余进程网络中的进程进行故障检测和角色选择的方法,该冗余进程网络包括主进程,该主进程被配置为以预定间隔至少向网络的进程子集传输心跳信号,并且将结合图3A对图2中的步骤进行描述。
在步骤S104中,响应于网络中的监督进程302没有在步骤S102中的预定时间间隔内从主进程304接收到心跳,通过监督进程302至少向网络中的进程306、308和309的子集传输带有揭示命令的心跳310。该揭示命令提示优先级高于监督进程的优先级的进程传输心跳。揭示命令可以通过在心跳的揭示消息字段中设置不同于零的值或任何其他预定值来提供。当其他进程306、308、309接收到心跳并且检测到设置了揭示时,如果它们相应的优先级高于监督进程302的优先级,则提示它们多播心跳以揭示其在它们相应的心跳消息的优先级消息字段中的优先级。
接着,在步骤S106中,至少通过监督进程从优先级高于监督进程302的优先级的进程接收心跳312、314。这样,向冗余网络中的进程通知其他进程(或至少是优先级高于监督进程的优先级的进程)的优先级。在图3A所示的概念示例网络中,进程306和308的优先级高于监督进程302的优先级,由此它们分别多播心跳312和314。心跳312和314被多播到网络中的所有进程。从此,如果响应于揭示命令而传输的心跳通过进程中的每个进程而被接收,则向接收到响应心跳的所有进程通知新主进程。
响应于此,优先级最高的进程在步骤S108中担当主进程的角色。例如,如果进程306具有最高优先级,则它会得知这点,因为它接收到心跳314以及与优先级也高于监督进程的优先级的其他进程308的优先级有关的信息。可替代地,如果响应于心跳310中包括的揭示命令,监督进程302没有接收到心跳,则它在步骤S110中担当主进程的角色。因此,在这种情况下,没有优先级高于监督进程302的优先级的进程。
进一步地,这里优先级低于进程306的优先级的进程308可以基于其优先级在次序中为次要的而担当次要角色。例如,次要角色可以是备份角色,该备份角色指示进程308有望担当主进程的角色。
图4中的表指示心跳消息的一些优选消息字段。这些消息字段至少包括指示进程的优先级的字段、揭示命令字段、以及平局打破(tiebreaker)指示符。进一步地,成为受监督进程指示是否应当监督该进程。该消息当然可以使用其他合适的字段进行扩展。诸如受监督进程的地址、或禁用监督的命令、或序列号。受监督进程的地址可能适于包括;它可以用作允许备份将其状态报告回到主进程的装置。
如果两个进程被认为具有相同的最高优先级,则确定主进程基于与这两个进程相关联的平局打破指示符。然后,基于规则或算法来确定判定,该规则或算法基于平局打破指示符优先于具有相同优先级的另一进程来选择进程。
如图1A所示,进程103和106可以在单独物理控制单元102和105上操作。同样,如图1B所示,进程126和129在单独硬件125和128上可操作。然而,还如图1B所示,进程121、122中的至少两个进程在相同的物理硬件上操作。
更详细地,对于故障检测,主进程循环发送具有心跳时段的多播心跳。如果已经接收到心跳,则监督进程(即,备份进程)检查每个心跳时段。因此,可以存在多于一个的监督进程,诸如多个监督进程。可以允许最大数目的缺失心跳。然而,如果在预定的故障时间段之后没有从受监督主进程接收到心跳,则监督进程假设主进程已经发生故障。
监督进程每次从主进程接收到心跳时,都会重置预定的故障时间段,并且监督进程会再次检查心跳。预定的故障时间段可能长于主进程的心跳时段,或是主进程的心跳时段。可替代地,使用两个不同的心跳时段,一个用于受监督进程,即,发送方心跳时段,以及另一个用于监督进程,即,接收方心跳时段。在这种情况下,发送方心跳时段必须小于接收方心跳时段,以便避免误报故障指示。
有利地,角色选择基于故障检测以实现确定性角色选择。角色选择算法基于与故障检测算法的前景状态交互、以及上文所描述的揭示命令功能。更具体地,如上文所描述的,“揭示”强制指令优先级高于揭示命令的发送方的优先级的所有进程揭示它们自己和它们的优先级。响应于揭示它们自身,进程进入前景状态。有利地,优先级最高的进程将过渡到主状态。当确定哪个进程具有最高优先级时,评估中还包括打破平局(TieBreaker)。优先级低于最高优先级进程的进程被配置为如果它们首先过渡到前景状态,则过渡回到备份状态。
现在,转到图3B,其概念性地图示了进程302、304、306、308、309可以在同一控制单元320a上执行。因此,控制单元320a包括存储器,或控制单元320a访问存储用于执行进程的指令的计算机可读介质。每个进程302、304、306、308、309在这里可以涉及由控制单元320a执行以提供控制服务或活动的单独计算机程序产品。
现在,转到图3C,其概念性地图示了进程302、304、306、308、309可以由单独控制单元302a、304a、306a、308a和309a执行。因此,每个控制单元包括存储器,或每个控制单元访问用于存储用于执行相应进程的指令的计算机可读介质。每个进程302、304、306、308、309可以涉及单独计算机程序产品,该单独计算机程序产品由在它们自己的操作系统上运行的相应控制单元执行以提供控制服务或活动。
控制单元(例如,图3B中的320a或图3C中的302a)可以被配置为执行监督进程302,该监督进程302包括计算机程序产品,该计算机程序产品存储指令,这些指令用于在冗余进程网络中提供活动或控制服务,在该冗余进程网络中,主进程被配置为以预定间隔至少向网络的进程的子集传输心跳信号。控制单元302a或320a包括装置,该装置用于:响应于监督进程没有在预定的时间间隔内从主进程304接收到心跳,控制监督进程至少向网络中的进程306、308、309的子集传输带有揭示命令的心跳,该揭示命令提示优先级高于监督进程的优先级的进程传输心跳。控制单元302a或320a还包括装置,该装置用于:从优先级高于监督进程的优先级的进程接收心跳,其中优先级最高的进程担当主进程的角色,或如果监督进程没有接收到任何心跳,则控制单元302a、320a控制监督进程来担当主进程的角色。控制单元302a、320a包括用于接收并传输心跳的适当的输入/输出装置、以及用于解释心跳消息字段的软件模块。
图5是根据本发明的实施例的方法步骤的流程图。图5中的步骤用于对冗余进程302、306、308、309的网络中的第一进程306进行角色选择,该冗余进程的网络包括主进程,该主进程被配置为以预定间隔至少向网络的进程子集传输心跳信号,以及将结合图3A对图5中的步骤进行描述。
在步骤S202中,响应于通过第一进程306从网络的监督进程302接收到带有揭示命令的心跳310,如果第一进程306的优先级高于监督进程302的优先级,则通过第一进程306至少向网络的进程304、308、309、302的子集传输心跳312。
在步骤S204中,至少通过第一进程306接收至少一个心跳314,该至少一个心跳314指示冗余进程的至少一个子集的优先级,在这里,子集仅包括进程308,其中如果第一进程306的优先级高于子集的其他进程308的优先级,则第一进程306被配置为在网络中担当主进程的角色。
进一步地并且现在转到图6,如果第一进程306的优先级改变,则在步骤S302中,通过第一进程,至少向冗余进程302、304、306、308、309的子集传输心跳,该心跳包括揭示命令,该揭示命令提示优先级高于第一进程的优先级的进程传输心跳。如果第一进程的优先级高于子集的其他进程的优先级,则在步骤S304中,在网络中担当作为主进程的角色。
在一个实施例中,提供了控制单元306a或320a,该控制单元306a或320a被配置为执行作为冗余进程网络的一部分的第一进程306,该第一进程306包括计算机程序产品,该计算机程序产品存储用于提供活动的指令,该冗余进程网络包括主进程,该主进程被配置为以预定间隔至少向网络的进程子集传输心跳信号。控制单元包括装置,该装置用于:响应于从网络的监督进程302接收到带有揭示命令的心跳310,如果第一进程306的优先级高于监督进程302的优先级,则从第一进程306至少向网络的进程子集传输心跳312。
进一步地,控制单元306a/320a(对于320a,参见图3C)包括装置,该装置用于:通过/针对第一进程306接收指示冗余进程308的至少一个子集的优先级的心跳314,其中如果第一进程306的优先级高于子集的进程的优先级时,则控制单元306a/320a控制第一进程306以在网络中担当主进程的角色。
还提供了一种冗余进程网络,该冗余进程网络包括主进程,该主进程被配置为以预定间隔至少向该网络的进程子集传输心跳信号,该网络还包括至少一个监督进程,该至少一个监督进程被配置为响应于没有在预定的时间间隔内从主进程接收到心跳,至少向网络中的进程子集传输带有揭示命令的心跳,该揭示命令提示优先级高于监督进程的优先级的进程传输心跳。网络的监督进程被配置为从优先级高于相应监督进程的优先级的进程接收心跳,其中网络中优先级最高的监督进程担当主进程的角色,或如果传输揭示评论的监督进程没有接收到心跳,则它担当主进程的角色。
控制单元可以包括微处理器、微控制器、可编程数字信号处理器、或另一可编程器件。控制单元还可以或替代地包括专用集成电路、可编程门阵列或可编程阵列逻辑、可编程逻辑器件或数字信号处理器。在控制单元包括可编程器件(诸如上文所提及的微处理器、微控制器或可编程数字信号处理器)的情况下,处理器还可以包括计算机可执行代码,该计算机可执行代码控制可编程器件的操作。
在一个或多个示例中,所描述的功能可以以硬件、软件、固件或其任何组合实现。如果以软件实现,则这些功能可以作为一个或多个指令或代码存储在计算机可读介质上或通过计算机可读介质传输,并且由基于硬件的处理单元执行。计算机可读介质可以包括计算机可读存储介质,该计算机可读存储介质与诸如数据存储介质之类的有形介质相对应、或与通信介质相对应,该通信介质包括便于例如根据通信协议将计算机程序从一个地方传送到另一地方的任何介质。以这种方式,计算机可读介质通常可以对应于(1)非暂态的有形计算机可读存储介质或(2)诸如信号或载波之类的通信介质。数据存储介质可以是任何可用介质,该可用介质可以由一个或多个计算机或一个或多个处理器访问以取回用于实现本公开中所描述的技术的指令、代码和/或数据结构。计算机程序产品可以包括计算机可读介质。
作为示例而非限制,这样的计算机可读存储介质可以包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储或其他磁存储设备、闪存、或任何其他介质,这些其他介质可以用于以指令或数据结构的形式存储期望程序代码并且可以由计算机访问。
尽管已经参考其特定例示性实施例对本发明进行了描述,但是对于本领域技术人员而言,许多不同的改变、修改等将变得显而易见。
附加地,通过研究附图、公开内容和所附权利要求,本领域技术人员在实践所要求保护的发明时可以理解并实现对所公开的实施例的变化。在权利要求中,词语“包括”不排除其他元件或步骤,不定冠词“一”或“一个”不排除多个。仅在相互不同的从属权利要求中叙述某些措施的事实并不表示不能有利使用这些措施的组合。
Claims (15)
1.一种用于对冗余进程网络中的进程(302、304、306、308、309)进行故障检测和角色选择的方法,所述冗余进程网络包括主进程(304),所述主进程(304)被配置为以预定的间隔至少向所述网络的进程的子集传输心跳信号(310),所述方法包括:
响应于所述网络中的监督进程(302)没有在预定的时间间隔内从所述主进程(304)接收到心跳,通过所述监督进程至少向所述网络中的进程的所述子集传输(S102)带有揭示命令的心跳(310),所述揭示命令提示优先级高于所述监督进程的优先级的进程传输心跳;
通过所述监督进程从比所述监督进程具有更高优先级的进程接收(S104)心跳,其中优先级最高的进程担当(S108)主进程的角色,或
如果所述监督进程没有接收到心跳,则通过所述监督过程担当(S110)作为主进程的角色。
2.根据权利要求1所述的方法,包括:
通过所述网络中的至少一个其他进程,基于所述至少一个其他进程的优先级次序来担当次要角色。
3.根据权利要求2所述的方法,其中所述次要角色是备份角色,所述备份角色指示进程有望担当主进程的角色。
4.根据前述权利要求中任一项所述的方法,其中响应于所述揭示命令而传输的所述心跳至少通过所述子集中的所述进程中的每个进程而被接收,由此向接收到响应心跳的所有进程通知新主进程。
5.根据前述权利要求中任一项所述的方法,其中通过所述进程可传输的所述心跳包括消息字段,所述消息字段至少包括指示所述进程的所述优先级的字段、揭示命令字段和平局打破指示符。
6.根据前述权利要求中任一项所述的方法,其中如果两个进程被认为具有相同的最高优先级,则基于与所述两个进程相关联的平局打破指示符来确定所述主进程。
7.根据前述权利要求中任一项所述的方法,其中所述子集中的所述进程至少能够由单独物理控制单元执行。
8.根据前述权利要求中任一项所述的方法,其中所述子集中的所述进程中的至少两个进程能够由同一物理控制单元执行。
9.根据前述权利要求中任一项所述的方法,其中传输所述心跳包括:多播所述心跳,使得所有进程都接收所述心跳。
10.一种控制单元(302a),被配置为执行监督进程,所述监督进程包括计算机程序产品,所述计算机程序产品存储用于提供活动的指令,所述监督进程是冗余进程网络的一部分,所述冗余进程网络包括主进程,所述主进程被配置为以预定的间隔至少向所述网络中的进程的子集传输心跳信号,所述控制单元包括装置,所述装置用于:
响应于所述监督进程没有在预定的时间间隔内从所述主进程接收到心跳,控制所述监督进程以至少向所述网络中的进程的所述子集传输带有揭示命令的心跳,所述揭示命令提示优先级高于所述监督进程的优先级的进程传输心跳;以及
从比所述监督进程具有更高优先级的所述进程接收心跳,其中优先级最高的进程担当主进程的角色,或
如果所述监督进程没有接收到心跳,则担当作为主进程的角色。
11.一种用于对冗余进程网络中的第一进程进行角色选择的方法,所述冗余进程网络包括主进程,所述主进程被配置为以预定的间隔至少向所述网络的进程的子集传输心跳信号,所述方法包括:
响应于通过所述第一进程从所述网络的监督进程接收带有揭示命令的心跳,如果所述第一进程的优先级高于所述监督进程的优先级,则通过所述第一进程至少向所述网络的进程的所述子集传输(S202)心跳;
通过所述第一进程接收(S204)至少一个心跳,所述至少一个心跳指示所述冗余进程的至少一个子集的优先级,其中如果所述第一进程的所述优先级高于所述子集的其他进程的优先级,则
在所述网络中担当(S206)作为主进程的角色。
12.根据权利要求11所述的方法,包括:
如果所述第一进程的优先级改变,则通过所述第一进程至少向进程的所述子集传输(S302)心跳,所述心跳包括揭示命令,所述揭示命令提示优先级高于所述第一进程的所述优先级的进程传输心跳;
其中如果所述第一进程的所述优先级高于所述子集的其他进程的优先级,则
在所述网络中担当(S304)作为主进程的角色。
13.一种控制单元(306a),所述控制单元被配置为执行第一进程,所述第一进程包括计算机程序产品,所述计算机程序产品存储用于提供活动的指令,所述第一进程被包括在冗余进程网络中,所述冗余进程网络包括主进程,所述主进程被配置为以预定的间隔至少向所述网络的进程的子集传输心跳信号,所述控制单元包括装置,所述装置用于:
响应于从所述网络的监督进程接收带有揭示命令的心跳,如果所述第一进程的优先级高于所述监督进程的优先级,从所述第一进程至少向所述网络的进程的所述子集传输心跳;
接收指示所述冗余进程的至少一个子集的优先级的心跳,其中如果所述第一进程的所述优先级高于所述子集的所述进程的优先级,则
控制所述第一进程在所述网络中担当作为主进程的角色。
14.一种计算机程序产品,包括其上存储有计算机程序装置的计算机可读介质,所述计算机程序装置用于执行冗余进程网络中的监督进程,所述冗余进程网络包括主进程,所述主进程被配置为以预定的间隔至少向所述网络的进程的子集传输心跳信号,其中所述计算机程序产品包括:
代码,用于响应于所述网络中的所述监督进程(302)没有在预定的时间间隔内从所述主进程(304)接收到心跳,执行从所述监督进程至少向所述网络中的进程的所述子集传输带有揭示命令的心跳(310),所述揭示命令提示优先级高于所述监督进程的优先级的进程传输心跳;
代码,用于在响应于所述揭示命令而没有接收到心跳的情况下,通过所述监督进程担当作为主进程的角色。
15.一种计算机程序产品,包括其上存储有计算机程序装置的计算机可读介质,所述计算机程序装置用于执行冗余进程网络中的第一进程,所述冗余进程网络包括主进程,所述主进程被配置为以预定的间隔至少向所述网络的进程的子集传输心跳信号,其中所述计算机程序产品包括:
代码,用于响应于通过所述第一进程而从所述网络的监督进程接收带有揭示命令的心跳并且如果所述第一进程的优先级高于所述监督进程的优先级,则执行从所述第一进程至少向所述网络的进程的所述子集传输心跳;
代码,用于通过所述第一进程评估至少一个接收到的心跳所指示的优先级;以及
代码,用于如果所述第一进程的所述优先级高于所述子集的其他进程的优先级,则通过所述第一进程在所述网络中担当(S206)作为主进程的角色。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP20183508.9A EP3933596B1 (en) | 2020-07-01 | 2020-07-01 | A method for failure detection and role selection in a network of redundant processes |
EP20183508.9 | 2020-07-01 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113965494A true CN113965494A (zh) | 2022-01-21 |
Family
ID=71452028
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110664834.2A Pending CN113965494A (zh) | 2020-07-01 | 2021-06-16 | 用于冗余进程网络中的故障检测和角色选择的方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11748217B2 (zh) |
EP (1) | EP3933596B1 (zh) |
CN (1) | CN113965494A (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114979688A (zh) * | 2022-05-11 | 2022-08-30 | 北京大甜绵白糖科技有限公司 | 直播数据传输系统、方法及装置 |
CN117135729B (zh) * | 2023-01-20 | 2024-05-24 | 荣耀终端有限公司 | 多设备协同方法、系统及终端设备 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5390326A (en) * | 1993-04-30 | 1995-02-14 | The Foxboro Company | Local area network with fault detection and recovery |
US6993587B1 (en) * | 2000-04-07 | 2006-01-31 | Network Appliance Inc. | Method and apparatus for election of group leaders in a distributed network |
US7590886B2 (en) * | 2006-11-21 | 2009-09-15 | General Instruments, Corporation | Method and apparatus for facilitating device redundancy in a fault-tolerant system |
US7870425B2 (en) | 2007-11-23 | 2011-01-11 | International Business Machines Corporation | De-centralized nodal failover handling |
US8296527B2 (en) | 2009-11-19 | 2012-10-23 | Ge Intelligent Platforms, Inc. | Method and system for implementing multi-controller systems |
US20110161538A1 (en) | 2009-12-31 | 2011-06-30 | Schneider Electric USA, Inc. | Method and System for Implementing Redundant Network Interface Modules in a Distributed I/O System |
US9710342B1 (en) | 2013-12-23 | 2017-07-18 | Google Inc. | Fault-tolerant mastership arbitration in a multi-master system |
US9747183B2 (en) * | 2013-12-31 | 2017-08-29 | Ciena Corporation | Method and system for intelligent distributed health monitoring in switching system equipment |
KR101694298B1 (ko) | 2014-02-28 | 2017-01-09 | 한국전자통신연구원 | 이중화시스템에서의 마스터 선정 장치 |
US10061664B2 (en) * | 2015-01-15 | 2018-08-28 | Cisco Technology, Inc. | High availability and failover |
US10983880B2 (en) | 2018-07-31 | 2021-04-20 | Hewlett Packard Enterprise Development Lp | Role designation in a high availability node |
-
2020
- 2020-07-01 EP EP20183508.9A patent/EP3933596B1/en active Active
-
2021
- 2021-06-16 CN CN202110664834.2A patent/CN113965494A/zh active Pending
- 2021-06-23 US US17/355,851 patent/US11748217B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
EP3933596A1 (en) | 2022-01-05 |
US20220004449A1 (en) | 2022-01-06 |
EP3933596B1 (en) | 2024-05-08 |
US11748217B2 (en) | 2023-09-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4695705B2 (ja) | クラスタシステムおよびノード切り替え方法 | |
CN106330475B (zh) | 一种通信系统中管理主备节点的方法和装置及高可用集群 | |
CN113965494A (zh) | 用于冗余进程网络中的故障检测和角色选择的方法 | |
CN105227385A (zh) | 一种故障处理的方法及系统 | |
CN106230622B (zh) | 一种集群实现方法及装置 | |
US20190227895A1 (en) | Information processing device, status monitoring system, and recording medium | |
EP3871057B1 (en) | Method, apparatus and system for managing alarms | |
US20180121321A1 (en) | System And Method For Monitoring Services And Blocks Within A Configurable Platform Instance | |
CN111373700B (zh) | 通信系统、被控制设备以及通信系统的控制方法 | |
CN104272667A (zh) | 诊断并报告网络中断 | |
JP5613119B2 (ja) | マスター/スレーブシステム、制御装置、マスター/スレーブ切替方法、および、マスター/スレーブ切替プログラム | |
CN114567536B (zh) | 异常数据处理方法、装置、电子设备和存储介质 | |
CN109219105B (zh) | 路由切换方法以及路由切换系统 | |
JP2003345620A (ja) | 多ノードクラスタシステムのプロセス監視方法 | |
JP2009296293A (ja) | 通信装置 | |
JP2009026182A (ja) | プログラム実行システム及び実行装置 | |
US11012254B2 (en) | Method and apparatus for handling controller area network (CAN) messages in a fuel cell system | |
CN104796228B (zh) | 一种信息传输的方法、装置及系统 | |
JP4851994B2 (ja) | 稼動監視装置、稼動監視方法および稼動監視プログラム | |
CN115174356B (zh) | 一种集群告警上报方法、装置、设备及介质 | |
CN113330380B (zh) | 用于管理警报的方法、装置和系统 | |
CN110955210B (zh) | Agv调度方法、装置和系统 | |
CN109450709B (zh) | 异步消息配置方法、上送方法、控制器及网络设备 | |
JP2009151388A (ja) | 監視処理プログラム、方法及び装置 | |
CN117951063A (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 |