CN107105032A - 节点设备运行方法及节点设备 - Google Patents

节点设备运行方法及节点设备 Download PDF

Info

Publication number
CN107105032A
CN107105032A CN201710262463.9A CN201710262463A CN107105032A CN 107105032 A CN107105032 A CN 107105032A CN 201710262463 A CN201710262463 A CN 201710262463A CN 107105032 A CN107105032 A CN 107105032A
Authority
CN
China
Prior art keywords
node device
state
daily record
ballot
node
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201710262463.9A
Other languages
English (en)
Other versions
CN107105032B (zh
Inventor
郭锐
李茂材
梁军
屠海涛
赵琦
王宗友
张建俊
朱大卫
刘斌华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201910651644.XA priority Critical patent/CN110233905B/zh
Priority to CN201710262463.9A priority patent/CN107105032B/zh
Publication of CN107105032A publication Critical patent/CN107105032A/zh
Priority to PCT/CN2018/083594 priority patent/WO2018192533A1/zh
Priority to EP18787276.7A priority patent/EP3562123B1/en
Priority to US16/510,723 priority patent/US10833919B2/en
Application granted granted Critical
Publication of CN107105032B publication Critical patent/CN107105032B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/004Error avoidance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0709Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • H04L41/0668Management 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • H04L67/1051Group master selection mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1059Inter-group management mechanisms, e.g. splitting, merging or interconnection of groups
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/83Indexing scheme relating to error detection, to error correction, and to monitoring the solution involving signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Hardware Redundancy (AREA)
  • Small-Scale Networks (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Selective Calling Equipment (AREA)

Abstract

本发明公开了一种节点设备运行方法及节点设备,属于网络技术领域。该方法包括:接收多个节点设备的投票请求,多个节点设备的数量大于系统中节点设备数量的半数;如果当前节点设备运行于领导状态,则从多个节点设备的投票请求中获取运行周期信息和最新日志索引;如果多个节点设备的投票请求中的运行周期信息均大于当前节点设备的运行周期信息,且多个节点设备的投票请求中的最新日志索引均不小于当前节点设备的最新日志索引,将当前工作状态从领导状态切换至跟随状态或候选状态。本发明使得第一子集群可以和第二子集群合为一个系统共同工作,提高了系统的工作可靠性。

Description

节点设备运行方法及节点设备
技术领域
本发明涉及网络技术领域,特别涉及一种节点设备运行方法及节点设备。
背景技术
随着网络技术的发展,基于集群为客户端提供服务的方式越来越普遍。为了保证集群中各个节点设备保持一致性,节点设备运行时一般可以应用BFT-Raft(ByzantineFault Tolerance algorithm-Raft,拜占庭容错筏算法)。
根据BFT-Raft,节点设备的工作状态可以分为三种:跟随状态follower、候选状态candidate和领导状态leader。当任一节点设备a处于跟随状态时,可以根据该集群中运行于领导状态的节点设备b所广播的心跳信息,确定该节点设备b运行正常,并基于节点设备b的指示复制日志。当节点设备a在一段时间内未接收到节点设备b的心跳信息,可以确定节点设备b运行故障,并切换为候选状态运行,将投票请求广播至集群中的各个节点设备,一旦接收到该集群中半数以上的节点设备的投票,节点设备a可以切换为领导状态运行,并将心跳信息广播至集群中的各个节点设备、基于和客户端的交互存储日志、指示各个节点设备复制日志。需要说明的是,在运行于领导状态的节点设备a运行正常的情况下,如果接收到投票请求或心跳信息,会自动忽略。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
由于集群可能分裂成网络相隔离的两个子集群,如,子集群A和子集群B,该子集群A中包括该集群中运行于领导状态的节点设备a,且子集群A的节点设备数量小于子集群B的节点设备数量,则子集群B中的节点设备可以通过投票选出一个新的运行于领导状态的节点设备b,而当节点设备b运行故障时,子集群B中处于候选状态的节点设备会再次广播投票请求,如果子集群A与子集群B此时恢复网络连接,由于节点设备a运行正常,会忽略投票请求,即使子集群B中的某一节点设备b切换为领导状态运行,节点设备a也会忽略该节点设备b的心跳信息,导致节点设备a无法与子集群b合为一个系统共同工作,系统的工作可靠性低。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种节点设备运行方法及节点设备。所述技术方案如下:
一方面,提供了一种节点设备运行方法,所述方法包括:
接收多个节点设备的投票请求,所述多个节点设备的数量大于系统中节点设备数量的半数;
如果当前节点设备运行于领导状态,则从所述多个节点设备的投票请求中获取运行周期信息和最新日志索引;
如果所述多个节点设备的投票请求中的运行周期信息均大于所述当前节点设备的运行周期信息,且所述多个节点设备的投票请求中的最新日志索引均不小于所述当前节点设备的最新日志索引,将当前工作状态从所述领导状态切换至跟随状态或候选状态。
另一方面,提供了一种节点设备,所述节点设备包括:
接收模块,用于接收多个节点设备的投票请求,所述多个节点设备的数量大于系统中节点设备数量的半数;
获取模块,用于如果当前节点设备运行于领导状态,则从所述多个节点设备的投票请求中获取运行周期信息和最新日志索引;
运行模块,用于如果所述多个节点设备的投票请求中的运行周期信息均大于所述当前节点设备的运行周期信息,且所述多个节点设备的投票请求中的最新日志索引均不小于所述当前节点设备的最新日志索引,将当前工作状态从所述领导状态切换至跟随状态或候选状态。
本发明实施例通过在接收到多个投票请求时,获取投票请求中的运行周期信息和最新日志索引,如果获取的运行周期信息均大于当前节点设备的运行周期信息,且获取的最新日志索均不小于当前节点设备的最新日志索引,则以跟随状态运行或候选状态运行,使得第一子集群中运行于领导状态的节点设备可以降级为跟随状态或候选状态,进而使得第一子集群中的节点设备均可以与第二子集群中的节点设备共同参与选举,直到新的领导状态的节点设备的出现时,该第一子集群可以和第二子集群合为一个系统共同工作,提高了系统的工作可靠性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1A是本发明实施例提供的一种节点设备运行的实施环境示意图;
图1B是本发明实施例提供的一种节点设备工作状态的切换示意图;
图2是本发明实施例提供的一种节点设备运行方法的流程图;
图3是本发明实施例提供的一种节点设备运行方法的流程图;
图4是本发明实施例提供的一种节点设备的模块示意图;
图5是本发明实施例提供的一种节点设备的模块示意图;
图6是本发明实施例提供的一种节点设备结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
图1A是本发明实施例提供的一种节点设备运行的实施环境示意图。参见图1A,该实施环境为一个由多个节点设备构成的系统,该系统也相当于一个集群,节点设备1为该系统中运行于领导状态的节点设备,在节点设备1运行正常时,可以定时地向各个运行于跟随状态的节点设备广播心跳信息,如,节点设备2、节点设备3和节点设备4,每个运行于跟随状态的节点设备在接收到心跳信息时可以确定节点设备1运行正常,并重置定时器(一般为0.5-1秒之间的随机值,这样可以避免各个节点设备的定时器的计时时长相同可能造成反复选举的情况),等待下一次心跳信息。
事实上,系统中各个节点设备的工作状态是可以动态切换的,参见图1B,本发明实施例提供了一种节点设备工作状态的切换示意图。一旦运行于跟随状态(follower)的节点设备在定时器超时的情况下没有接收到心跳信息,可以确定运行于领导状态的节点设备运行故障,并切换为候选状态(candidate)运行;进而,节点设备可以重置定时器,并广播投票请求,直到接收到该系统中半数以上的投票确认消息切换为领导状态(leader)运行,或者接收到运行于领导状态的节点设备的心跳信息时切换为跟随状态运行,或者定时器超时的情况下保持候选状态开始新一轮选举;运行于领导状态的节点设备可以在发现比自身具有更高运行周期信息(term)的节点设备时切换为跟随状态运行。
在该系统为客户端提供服务时,当该系统中的任一节点设备接收到客户端的服务命令时,可以将该服务命令重定向至节点设备1,由节点设备1向各个节点设备广播日志添加请求,该日志添加请求用于请求将该服务命令添加到日志中,如果节点设备1可以接收到各个节点设备对日志添加请求的确认消息,可以响应该客户端的服务命令,将该服务命令添加到日志中,并向各个节点设备广播日志复制指令,使得各个节点设备将该服务命令复制到日志中。在实际的应用场景中,该系统可以是底层基于区块链技术的交易系统,该服务命令可以为客户端的交易信息,每个节点设备所存储的日志可以对应一条区块链,当添加交易信息到日志中时,实际是将该交易信息存储到当前区块的下一区块中,由于已存储至区块链中的数据不可更改,可以有效地防止交易信息被篡改,提高交易信息的安全性。
由于网络中断等原因,该系统中的各个节点设备可能分裂形成两个网络相隔的子集群,即第一子集群和第二子集群,且第一子集群的节点设备数量小于第二子集群的节点设备数量,该第一子集群中包括该系统中运行于领导状态的节点1。进而,该第一子集群中运行于跟随状态的节点设备可以依据该节点设备1定时广播的心跳信息继续正常工作;第二子集群由于和节点设备1的网络中断,其中运行于跟随状态的节点设备在定时器超时的情况下也不能接收到节点设备1的心跳信息,依据bft-raft的超时选举机制,运行于跟随状态的节点设备会切换为候选状态运行,将自身的运行周期信息加一,并广播投票请求,该第二子集群中接收到大于该系统中节点数量的一半的投票请求的节点设备可以切换为领导状态运行,并广播心跳信息,该心跳信息携带该运行于领导状态的节点设备的运行周期信息,当运行于候选状态的节点接收到心跳信息时,可以切换为跟随状态运行,并将自身的运行周期信息同步为心跳信息所携带的运行周期信息;当第二子集群中运行于领导状态的节点设备运行故障时,该第二子集群中的各个节点设备将切换为候选状态运行,并再次进行选举,如果此时第一子集群和第二子集群恢复网络连接,依照现有技术,由于第一子集群中的节点设备1运行正常,该第一子集群中的各个节点设备均会忽略来自于第二子集群中的节点设备的投票请求,即使该第二子集群选出新的领导状态的节点设备,且该第二子集群中的节点设备可以按照该新的领导状态的节点设备的心跳信息工作,但该第一子集群中的各个节点设备会忽略新的领导状态的节点设备的心跳信息,并继续按照节点设备1的心跳信息继续工作,导致第一子集群和第二子集群无法恢复成一个系统共同工作,系统的工作可靠性差。
图2是本发明实施例提供的一种节点设备运行方法的流程图。参见图2,该方法可以应用于图1A所示实施例的节点设备1,包括以下步骤:
201、节点设备1接收多个节点设备的投票请求,多个节点设备的数量大于系统中节点设备数量的半数。
其中,该多个节点设备可以为图1A所示实施例中第二子集群中的节点设备。由于该第二子集群中原有的领导状态的节点设备运行故障,该多个节点设备在自身的定时器超时的情况下也没有接收到心跳信息,因此正在以候选状态运行,并基于自身的运行周期信息、最新日志索引(last log index)和节点设备标识等信息生成投票请求,将投票请求广播至该系统中的各个节点。一般地,接收到投票请求的节点设备会判断是否在定时器未超时的情况下接收到心跳信息,如果是,则确定领导状态的节点设备运行正常,并忽略该投票请求,如果否,则提取投票请求中的运行周期信息和最新日志索引,并将提取的信息分别与自身的信息进行比较,如果二者分别大于等于自身的信息,则向该投票请求中的节点设备标识对应的节点设备发送投票确认消息,否则也会忽略该投票请求,一旦已经为某一节点设备投票,则在该运行周期内都不会再为其他节点设备投票。当然,如果是运行于领导状态的节点设备接收到投票请求,则会自动忽略该投票请求。本发明实施例为使第一子集群中运行于领导状态的节点设备能够与第二子集群合为一个系统工作,提高集群的工作可靠性,进行以下步骤。
考虑到接收到一个或少数个投票请求的情况可能为该投票请求来自于伪装成候选状态的节点设备,因此需要排除这种情况。并且,为了初步印证该系统目前处于分裂后的子集群之间已恢复网络连接,且第二子集群内的节点设备正在进行选举的情况,对接收到该投票请求的数量进行限制,也即是,理应接收到大于该系统中的节点设备数量的半数的投票请求。
在实际的场景中,由于每一轮选举都有时限,因此该步骤也可以具体为:当节点设备1接收到第一个投票请求后,启动定时器进行计时;在定时器的运行过程中,继续接收其他节点设备的投票请求,直到定时器超时后,停止接收其他节点设备的投票请求。也就是说,节点设备1可以接收定时器计时时长内的投票请求,该计时时长可以为一轮选举的时长,如果节点设备1在该计时时长内接收到的投票请求的数量大于该系统中节点设备的数量的半数,说明该系统发生过分裂,且第一子集群和第二子集群已恢复网络连接,且第二子集群正在进行选举,则进行步骤202,否则,上述情况不能得到印证,可以忽略接收到的投票请求,并继续广播心跳信息。
202、如果节点设备1运行于领导状态,则节点设备1从多个节点设备的投票请求中获取运行周期信息和最新日志索引。
其中,运行周期信息是指发送该投票请求的节点设备当前所处的运行周期号。每次进行选举时,由跟随状态切换为候选状态的节点设备的运行周期信息会加一,最终成为领导状态的节点设备可以将运行周期信息携带在心跳信息中并广播给其他节点设备,接收到心跳信息的候选状态的节点设备可以切换为跟随状态运行,并将自身的运行周期信息同步为该心跳信息中的运行周期信息,而且可以根据自身的最新日志索引和心跳信息中的最新日志索引,确定自身缺少的日志,并请求领导状态的节点设备返回自身缺少的日志。因此,该运行周期信息可以表征一个节点设备是否始终与运行于领导状态的节点设备保持同步且运行正常。最新日志索引是指发送该投票请求的节点设备最新存储的日志的索引,每次运行于领导状态的节点设备添加新的日志后,该最新日志索引加一,且该运行于领导状态的节点设备可以将日志复制指令广播给其他节点设备,使得接收到日志复制指令的节点设备可以同步该领导状态的节点设备的日志和最新日志索引,因此,该最新日志索引可以表征一个节点设备的日志完整性,显然,运行于领导状态的节点设备为在其系统中日志完整性最好的节点设备。
该步骤中,节点设备1可以分别按照运行周期信息和最新日志索引在投票请求中的协议位置,从投票请求中分别提取出对应协议位置的运行周期信息和最新日志索引。
203、节点设备1判断多个节点设备的投票请求中的运行周期信息是否均大于节点设备1的运行周期信息,如果是,执行步骤204,如果否,忽略多个投票请求。
该步骤中,为了进一步印证该系统发生过分裂,且第二子集群在分裂后曾经选出过领导状态的节点设备并已运行故障,且第一子集群和第二子集群已恢复网络连接,且第二子集群正在进行选举的实施场景,考虑到第二子集群在选出过的领导状态的节点设备时该第二子集群中的节点设备的运行周期信息已相比第一子集群的运行周期多一,因此运行周期信息可以作为上述实施场景的印证依据之一,如果投票请求中的运行周期信息均大于节点设备1的运行周期信息,上述实施场景得到印证,则继续执行步骤204,如果该投票请求中的运行周期信息不大于自身的运行周期信息,说明该投票请求对应的节点设备很可能运行故障,且不符合上述实施场景,则节点设备1可以忽略多个投票请求,并继续广播心跳信息。
204、节点设备1判断多个节点设备的投票请求中的最新日志索引是否均不小于节点设备1的最新日志索引,如果是,将当前工作状态从领导状态切换至跟随状态,如果否,忽略多个投票请求。
考虑到在系统分裂之前,该系统中的各个节点设备的日志理应与节点设备1的日志同步,因此第二子集群经过为客户端服务的一段时间,在两个子集群恢复网络连接之后,第二子集群中的节点设备所存储的日志应该不少于该第一子集群中的节点设备所存储的日志,也因此可以将最新日志索引作为印证上述实施场景的依据之一,如果多个节点设备的投票请求中的最新日志索引是否均不小于节点设备1的最新日志索引,说明该投票请求对应的节点设备已存储的日志量等于或多于节点设备1的日志量,上述实施场景最终得到各项印证,因此节点设备1切换为跟随状态运行,并停止广播心跳信息,如果该投票请求中的最新日志索引小于自身的最新日志索引,上述实施场景没有得到印证,则可以忽略该多个投票请求,并继续广播心跳信息。
当节点设备1切换为跟随状态运行时,可以停止广播心跳信息,重置定时器,并等待新的领导状态的节点设备的心跳信息,如果在定时器超时的情况下也没有接收到心跳信息,则可以再切换为候选状态运行,并广播投票请求,直到自身成为领导状态的节点设备,或者接收到新的领导状态的节点设备的心跳信息时切换为跟随状态运行。
事实上,节点设备1也可以将当前工作状态切换为候选状态运行,停止广播心跳信息,且广播投票请求,直到自身成为领导状态的节点设备,或者接收到新的领导状态的节点设备的心跳信息时切换为跟随状态运行。
需要说明的是,一旦节点设备1停止广播心跳信息,第一子集群中运行于跟随状态的节点设备可以在定时器超时后主动切换为候选状态运行,直到自身成为该系统中领导状态的节点设备,或者接收到该系统中运行于领导状态的节点设备的心跳信息时切换为跟随状态运行。因此,上述节点设备运行方法还可以使得第一子集群和第二子集群恢复为原来的系统进行工作,提高该系统的工作可靠性。
另外,需要说明的是,本发明实施例对节点设备1执行步骤203和204的时序不做具体限定,事实上,节点设备1也可以先对最新日志索引进行判断,再对运行周期信息进行判断,或者,为了提高判断效率,并尽快使得第一子集群和第二子集群合为一个系统工作,节点设备1也可以同时对最新日志索引和运行周期信息进行判断,只要二者分别满足上述各自的判断条件,节点设备1即可将当前工作状态切换至跟随状态(或候选状态)。
本发明实施例通过在接收到多个投票请求时,获取投票请求中的运行周期信息和最新日志索引,如果获取的运行周期信息均大于当前节点设备的运行周期信息,且获取的最新日志索均不小于当前节点设备的最新日志索引,则以跟随状态运行或候选状态运行,使得第一子集群中运行于领导状态的节点设备可以降级为跟随状态或候选状态,进而使得第一子集群中的节点设备均可以与第二子集群中的节点设备共同参与选举,直到新的领导状态的节点设备的出现时,该第一子集群可以和第二子集群合为一个系统共同工作,提高了系统的工作可靠性。
205、节点设备1根据多个节点设备的投票请求,确定目标节点设备。
其中,目标节点设备是指该节点设备1趋于投票的节点设备。该步骤中,经过步骤203和步骤204的判断过程,对该节点设备1来说,任一投票请求对应的节点设备均满足成为领导状态的节点设备的资格,因此节点设备1可以按照投票请求的接收顺序,将接收顺序在前的投票请求对应的节点设备作为目标节点设备。
206、节点设备1响应于目标节点设备的投票请求,向目标节点设备发送投票确认消息。
该步骤中,节点设备1可以基于自身的节点设备标识,生成投票确认消息,并按照目标节点设备的节点设备标识将投票确认消息发送至目标节点设备。
当然,为使目标节点设备能够验证投票者的身份,提高系统安全性,节点设备1可以携带有签名的投票确认消息发送至目标节点设备。该系统中的每个节点设备可以配置有自身的私钥以及各个节点设备的公钥。因此,当目标节点设备接收到该投票确认消息时,可以提取出该节点设备1的签名,采用已配置的该节点设备1的公钥对该节点设备的签名进行验证。
需要说明的是,步骤205和206是本发明实施例的可选步骤。事实上,由于第二子集群的节点设备数量大于该系统的节点设备数量的半数,则节点设备1也可以不对任一投票请求进行响应,则该系统中也能选出一个领导状态的节点设备,并且在接收到该领导状态的节点设备的心跳信息时,将自身的运行周期信息同步为该心跳信息携带的运行周期信息,从而与该第二子集群合为一个系统工作。
207、节点设备1接收运行于领导状态的节点设备所广播的心跳信息。
一旦该系统中任一候选状态的节点设备接收到大于该系统中节点设备的半数的投票确认消息时,可以切换为领导状态运行,并广播自身的心跳信息,使得节点设备1可以接收到该心跳信息。
其中,为了避免有的节点设备伪装成领导状态的节点设备,提高系统的安全性,该心跳信息可以携带该系统中的各个节点设备在响应该切换为领导状态的节点设备的投票请求时的签名。因此,当节点设备1接收到该心跳信息时,可以提取出各个节点设备的签名,采用已配置的任一节点设备的公钥对该节点设备的签名进行验证,如果各个节点设备的签名均验证通过,且验证通过的签名数量大于该系统中节点设备数量的半数,说明该心跳信息确实来自运行于领导状态的节点设备,则可以重置定时器,并等待下一次心跳信息。
事实上,为了保证系统的一致性,该运行于领导状态的节点设备可以广播日志复制指令,使得该节点设备1可以接收运行于领导状态的节点设备所广播的日志复制指令,基于日志复制指令复制日志,从而将该系统最新接收到的服务指令添加到日志中。当然,基于bft-raft不仅解决节点设备一致性而且解决了节点设备欺诈,数据被篡改、丢失或顺序错乱的问题,该日志复制指令需携带系统中的各个节点设备在响应该运行于领导状态的节点设备的投票请求时的签名,使得节点设备1可以对该日志复制指令进行验证,并在验证通过后进行日志复制。
以下对节点设备1切换至跟随状态(或候选状态)后该系统的工作情况进行具体说明:
当节点设备1切换为跟随状态(或候选状态)运行时,由于停止广播心跳信息,该第一子集群中运行于跟随状态的节点设备在定时器超时后没有接收到心跳信息,因此切换为候选状态运行。
如果此时第二子集群的选举尚未结束,则第一子集群中切换为候选状态的节点设备相当于与第二子集群中的节点设备共同参与选举;当其中任一节点设备接收到大于该系统的节点设备的半数的投票时,可以切换为领导状态运行,并广播心跳信息,当该系统中的其他节点设备接收到该心跳信息时,可以确认选举结束,切换为跟随状态,并将自身的运行周期信息与该心跳信息中的运行周期信息同步,后续可以基于该领导状态的节点设备的心跳信息或日志复制指令等进行工作。
如果第一子集群中运行于跟随状态的节点设备切换为候选状态后,第二子集群的选举已结束,该第二子集群中成为领导状态的节点设备可以定时广播心跳信息,第二子集群中曾运行于候选状态的节点设备在首次接收到该心跳信息时可以切换为跟随状态,并将自身的运行周期信息与该心跳信息中的运行周期信息同步;该第一子集群由于没有领导状态的节点设备,运行于跟随状态的节点设备可以在首次接收到该心跳信息时保持跟随状态,但将自身的运行周期信息与该心跳信息中的运行周期信息同步,运行于候选状态的节点设备可以在首次接收到该心跳信息时切换为跟随状态,并将自身的运行周期信息与该心跳信息中的运行周期信息同步。
以上图2实施例是以第一子集群中运行于领导状态的节点设备1为执行主体为例进行说明,在节点设备1停止广播心跳信息后,使得该第一子集群中运行于跟随状态的节点设备(命名为节点设备5)可以被动地与第二子集群合为一个系统,事实上,为使节点设备5可以高效地和第二子集群合为一个系统工作,提高集群的可靠性,该节点设备5也可以应用本发明实施例提供的节点设备运行方法,例如,图3是本发明实施例提供的一种节点设备运行方法的流程图。参见图3,该方法包括:
301、节点设备5接收多个节点设备的投票请求,多个节点设备的数量大于系统中节点设备数量的半数。
与步骤201同理,在此不做赘述。
302、如果节点设备5运行于跟随状态,则节点设备5从多个节点设备的投票请求中获取运行周期信息和最新日志索引。
与步骤202同理,在此不做赘述。
303、节点设备5判断多个节点设备的投票请求中的运行周期信息是否均大于节点设备5的运行周期信息,如果是,执行步骤204,如果否,忽略多个投票请求。
与步骤203同理,在此不做赘述。
304、节点设备5判断多个节点设备的投票请求中的最新日志索引是否均不小于节点设备5的最新日志索引,如果是,将当前工作状态从所述跟随状态切换至候选状态,如果否,忽略多个投票请求。
与步骤204同理。但该节点设备5需切换至候选状态,并广播投票请求,直到接收到新的领导状态的节点设备的心跳信息时切换为跟随状态,或者直到接收到大于该系统中节点设备的半数的投票请求时切换为领导状态。
当然,该节点设备5也可以保持跟随状态,当定时器超时,可以自动切换为候选状态,直到接收到新的领导状态的节点设备的心跳信息时切换为跟随状态,或者直到接收到大于该系统中节点设备的半数的投票请求时切换为领导状态。
本发明实施例通过在接收到多个投票请求时,获取投票请求中的运行周期信息和最新日志索引,如果获取的运行周期信息均大于当前节点设备的运行周期信息,且获取的最新日志索均不小于当前节点设备的最新日志索引,则以跟随状态运行或候选状态运行,使得第一子集群中运行于领导状态的节点设备可以降级为跟随状态或候选状态,进而使得第一子集群中的节点设备均可以与第二子集群中的节点设备共同参与选举,直到新的领导状态的节点设备的出现时,该第一子集群可以和第二子集群合为一个系统共同工作,提高了系统的工作可靠性。
305、节点设备5根据多个节点设备的投票请求,确定目标节点设备。
与步骤205同理,在此不做赘述。
306、节点设备5响应于目标节点设备的投票请求,向目标节点设备发送投票确认消息。
与步骤206同理,在此不做赘述。
307、节点设备5接收运行于领导状态的节点设备所广播的心跳信息。
与步骤207同理,在此不做赘述。
当然,该节点设备还可以继续参与选举,以保证系统整体选举的公正性。
图4是本发明实施例提供的一种节点设备的模块示意图。参见图4,该节点设备包括:
接收模块401,用于接收多个节点设备的投票请求,多个节点设备的数量大于系统中节点设备数量的半数;
获取模块402,用于如果当前节点设备运行于领导状态,则从多个节点设备的投票请求中获取运行周期信息和最新日志索引;
运行模块403,用于如果多个节点设备的投票请求中的运行周期信息均大于当前节点设备的运行周期信息,且多个节点设备的投票请求中的最新日志索引均不小于当前节点设备的最新日志索引,将当前工作状态从领导状态切换至跟随状态或候选状态。
本发明实施例通过在接收到多个投票请求时,获取投票请求中的运行周期信息和最新日志索引,如果获取的运行周期信息均大于当前节点设备的运行周期信息,且获取的最新日志索均不小于当前节点设备的最新日志索引,则以跟随状态运行或候选状态运行,使得第一子集群中运行于领导状态的节点设备可以降级为跟随状态或候选状态,进而使得第一子集群中的节点设备均可以与第二子集群中的节点设备共同参与选举,直到新的领导状态的节点设备的出现时,该第一子集群可以和第二子集群合为一个系统共同工作,提高了系统的工作可靠性。
在一种可能实现方式中,接收模块401用于:当接收到第一个投票请求后,启动定时器进行计时;在定时器的运行过程中,继续接收其他节点设备的投票请求,直到定时器超时后,停止接收其他节点设备的投票请求。
在一种可能实现方式中,获取模块402还用于:如果当前节点设备运行于跟随状态,则从多个节点设备的投票请求中获取运行周期信息和最新日志索引;
运行模块403还用于:如果多个节点设备的投票请求中的运行周期信息均大于当前节点设备的运行周期信息,且多个节点设备的投票请求中的最新日志索引均不小于当前节点设备的最新日志索引,将当前工作状态从跟随状态切换至候选状态或保持跟随状态。
在一种可能实现方式中,基于图4的节点设备组成,参见图5,节点设备还包括:
确定模块404,用于根据多个节点设备的投票请求,确定目标节点设备;
发送模块405,用于响应于目标节点设备的投票请求,向目标节点设备发送投票确认消息。
在一种可能实现方式中,接收模块401,还用于接收运行于领导状态的节点设备所广播的心跳信息;或,
接收模块401,还用于接收运行于领导状态的节点设备所广播的日志复制指令,基于日志复制指令复制日志。
上述所有可选技术方案,可以采用任意结合形成本发明的可选实施例,在此不再一一赘述。
需要说明的是:上述实施例提供的节点设备在执行节点设备运行方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将节点设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的节点设备与节点设备运行方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图6是本发明实施例提供的一种节点设备结构示意图。参见图6,该节点设备600可以被提供为一服务器。节点设备600包括处理组件622,其进一步包括一个或多个处理器,以及由存储器632所代表的存储器资源,用于存储可由处理部件622的执行的指令,例如应用程序。存储器632中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件622被配置为执行指令,以执行上述节点设备运行方法。
节点设备600还可以包括一个电源组件626被配置为执行节点设备600的电源管理,一个有线或无线网络接口650被配置为将节点设备600连接到网络,和一个输入输出(I/O)接口658。节点设备600可以操作基于存储在存储器632的操作系统,例如WindowsServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种节点设备运行方法,其特征在于,所述方法包括:
接收多个节点设备的投票请求,所述多个节点设备的数量大于系统中节点设备数量的半数;
如果当前节点设备运行于领导状态,则从所述多个节点设备的投票请求中获取运行周期信息和最新日志索引;
如果所述多个节点设备的投票请求中的运行周期信息均大于所述当前节点设备的运行周期信息,且所述多个节点设备的投票请求中的最新日志索引均不小于所述当前节点设备的最新日志索引,将当前工作状态从所述领导状态切换至跟随状态或候选状态。
2.根据权利要求1所述的方法,其特征在于,所述接收多个节点设备的投票请求包括:
当接收到第一个投票请求后,启动定时器进行计时;
在所述定时器的运行过程中,继续接收其他节点设备的投票请求,直到所述定时器超时后,停止接收其他节点设备的投票请求。
3.根据权利要求1所述的方法,其特征在于,所述接收多个节点设备的投票请求之后,所述方法还包括:
如果所述当前节点设备运行于跟随状态,则从所述多个节点设备的投票请求中获取运行周期信息和最新日志索引;
如果所述多个节点设备的投票请求中的运行周期信息均大于所述当前节点设备的运行周期信息,且所述多个节点设备的投票请求中的最新日志索引均不小于所述当前节点设备的最新日志索引,将当前工作状态从所述跟随状态切换至候选状态或保持跟随状态。
4.根据权利要求1所述的方法,其特征在于,所述如果所述多个节点设备的投票请求中的运行周期信息均大于所述当前节点设备的运行周期信息,且所述多个节点设备的投票请求中的最新日志索引均不小于所述当前节点设备的最新日志索引,将当前工作状态从所述领导状态切换至跟随状态或候选状态之后,所述方法还包括:
根据所述多个节点设备的投票请求,确定目标节点设备;
响应于所述目标节点设备的投票请求,向所述目标节点设备发送投票确认消息。
5.根据权利要求1所述的方法,其特征在于,所述如果所述多个节点设备的投票请求中的运行周期信息均大于所述当前节点设备的运行周期信息,且所述多个节点设备的投票请求中的最新日志索引均不小于所述当前节点设备的最新日志索引,将当前工作状态从所述领导状态切换至跟随状态或候选状态之后,所述方法还包括:
接收运行于领导状态的节点设备所广播的心跳信息;或,
接收运行于领导状态的节点设备所广播的日志复制指令,基于所述日志复制指令复制日志。
6.一种节点设备,其特征在于,所述节点设备包括:
接收模块,用于接收多个节点设备的投票请求,所述多个节点设备的数量大于系统中节点设备数量的半数;
获取模块,用于如果当前节点设备运行于领导状态,则从所述多个节点设备的投票请求中获取运行周期信息和最新日志索引;
运行模块,用于如果所述多个节点设备的投票请求中的运行周期信息均大于所述当前节点设备的运行周期信息,且所述多个节点设备的投票请求中的最新日志索引均不小于所述当前节点设备的最新日志索引,将当前工作状态从所述领导状态切换至跟随状态或候选状态。
7.根据权利要求6所述的节点设备,其特征在于,所述接收模块用于:
当接收到第一个投票请求后,启动定时器进行计时;
在所述定时器的运行过程中,继续接收其他节点设备的投票请求,直到所述定时器超时后,停止接收其他节点设备的投票请求。
8.根据权利要求6所述的节点设备,其特征在于,
所述获取模块还用于:如果所述当前节点设备运行于跟随状态,则从所述多个节点设备的投票请求中获取运行周期信息和最新日志索引;
所述运行模块还用于:如果所述多个节点设备的投票请求中的运行周期信息均大于所述当前节点设备的运行周期信息,且所述多个节点设备的投票请求中的最新日志索引均不小于所述当前节点设备的最新日志索引,将当前工作状态从所述跟随状态切换至候选状态或保持跟随状态。
9.根据权利要求6所述的节点设备,其特征在于,所述节点设备还包括:
确定模块,用于根据所述多个节点设备的投票请求,确定目标节点设备;
发送模块,用于响应于所述目标节点设备的投票请求,向所述目标节点设备发送投票确认消息。
10.根据权利要求6所述的节点设备,其特征在于,
所述接收模块,还用于接收运行于领导状态的节点设备所广播的心跳信息;或,
所述接收模块,还用于接收运行于领导状态的节点设备所广播的日志复制指令,基于所述日志复制指令复制日志。
CN201710262463.9A 2017-04-20 2017-04-20 节点设备运行方法及节点设备 Active CN107105032B (zh)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN201910651644.XA CN110233905B (zh) 2017-04-20 2017-04-20 节点设备运行方法、节点设备及存储介质
CN201710262463.9A CN107105032B (zh) 2017-04-20 2017-04-20 节点设备运行方法及节点设备
PCT/CN2018/083594 WO2018192533A1 (zh) 2017-04-20 2018-04-18 节点设备运行方法、工作状态切换装置、节点设备及介质
EP18787276.7A EP3562123B1 (en) 2017-04-20 2018-04-18 Node device running method, working state switching device, node device, and medium
US16/510,723 US10833919B2 (en) 2017-04-20 2019-07-12 Node device operation method, work status switching apparatus, node device, and medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710262463.9A CN107105032B (zh) 2017-04-20 2017-04-20 节点设备运行方法及节点设备

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201910651644.XA Division CN110233905B (zh) 2017-04-20 2017-04-20 节点设备运行方法、节点设备及存储介质

Publications (2)

Publication Number Publication Date
CN107105032A true CN107105032A (zh) 2017-08-29
CN107105032B CN107105032B (zh) 2019-08-06

Family

ID=59656639

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201710262463.9A Active CN107105032B (zh) 2017-04-20 2017-04-20 节点设备运行方法及节点设备
CN201910651644.XA Active CN110233905B (zh) 2017-04-20 2017-04-20 节点设备运行方法、节点设备及存储介质

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201910651644.XA Active CN110233905B (zh) 2017-04-20 2017-04-20 节点设备运行方法、节点设备及存储介质

Country Status (4)

Country Link
US (1) US10833919B2 (zh)
EP (1) EP3562123B1 (zh)
CN (2) CN107105032B (zh)
WO (1) WO2018192533A1 (zh)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107967291A (zh) * 2017-10-12 2018-04-27 腾讯科技(深圳)有限公司 日志条目复制方法、装置、计算机设备及存储介质
CN107995029A (zh) * 2017-11-28 2018-05-04 紫光华山信息技术有限公司 选举控制方法及装置、选举方法及装置
CN108134712A (zh) * 2017-12-19 2018-06-08 海能达通信股份有限公司 一种分布式集群脑裂的处理方法、装置及设备
CN108306760A (zh) * 2017-12-28 2018-07-20 中国银联股份有限公司 用于在分布式系统中使管理能力自恢复的方法和装置
WO2018192533A1 (zh) * 2017-04-20 2018-10-25 腾讯科技(深圳)有限公司 节点设备运行方法、工作状态切换装置、节点设备及介质
CN109150971A (zh) * 2018-06-29 2019-01-04 腾讯科技(深圳)有限公司 超级节点投票和选举方法、装置和网络节点
CN109409828A (zh) * 2018-10-11 2019-03-01 绵阳网安科技有限公司 一种基于区块链技术的合同管理方法
CN109660367A (zh) * 2018-11-21 2019-04-19 语联网(武汉)信息技术有限公司 基于改进Raft算法的共识达成方法、装置与电子设备
CN109729129A (zh) * 2017-10-31 2019-05-07 华为技术有限公司 存储集群的配置修改方法、存储集群及计算机系统
CN109726211A (zh) * 2018-12-27 2019-05-07 无锡华云数据技术服务有限公司 一种分布式时序数据库
CN109947733A (zh) * 2019-03-29 2019-06-28 众安信息技术服务有限公司 数据存储装置与方法
CN110162511A (zh) * 2018-02-08 2019-08-23 华为技术有限公司 一种日志传输方法及相关设备
CN111835534A (zh) * 2019-04-15 2020-10-27 华为技术有限公司 一种集群控制的方法及相关设备
CN112347184A (zh) * 2019-08-07 2021-02-09 华为技术有限公司 分叉处理方法以及区块链节点
CN112835748A (zh) * 2019-11-22 2021-05-25 上海宝信软件股份有限公司 基于scada系统的多中心冗余仲裁方法及系统
CN114268532A (zh) * 2021-11-24 2022-04-01 华人运通(上海)云计算科技有限公司 一种基于Raft协议的竞选方法、分布式系统及存储介质

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110417591B (zh) * 2019-07-23 2021-07-02 中南民族大学 投票节点配置方法及系统
US11586614B2 (en) * 2019-07-30 2023-02-21 Oracle International Corporation Native persistent store support for blockchains
CN111818159B (zh) * 2020-07-08 2024-04-05 腾讯科技(深圳)有限公司 数据处理节点的管理方法、装置、设备及存储介质
US11178002B1 (en) * 2020-07-10 2021-11-16 Abl Ip Holding Llc Autonomous adaptive controller for active wireless lighting communication
US11875178B2 (en) 2020-07-30 2024-01-16 Oracle International Corporation Using multiple blockchains for applying transactions to a set of persistent data objects in persistent storage systems
CN112019380B (zh) * 2020-08-12 2022-07-22 西华大学 一种基于权益激励的结合Raft和PBFT算法的区块链共识方法
CN112118305B (zh) * 2020-09-11 2023-04-21 北京易安睿龙科技有限公司 一种减少区块链共识系统中无效请求的方法
CN113420323B (zh) * 2021-06-04 2022-06-03 国网河北省电力有限公司信息通信分公司 数据共享方法及终端设备
US11789800B2 (en) * 2021-10-01 2023-10-17 Vmware, Inc. Degraded availability zone remediation for multi-availability zone clusters of host computers
CN114089744B (zh) * 2021-11-01 2023-11-21 南京邮电大学 一种基于改进Raft算法选择车辆队列领航车的方法
CN114726867B (zh) * 2022-02-28 2023-09-26 重庆趣链数字科技有限公司 一种基于Raft的热备多主方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103152434A (zh) * 2013-03-27 2013-06-12 江苏辰云信息科技有限公司 一种分布式云系统中的领导节点更替方法
CN104933132A (zh) * 2015-06-12 2015-09-23 广州巨杉软件开发有限公司 基于操作序列号的分布式数据库有权重选举方法
CN105511987A (zh) * 2015-12-08 2016-04-20 上海爱数信息技术股份有限公司 一种强一致性且高可用的分布式任务管理系统
CN105512266A (zh) * 2015-12-03 2016-04-20 曙光信息产业(北京)有限公司 一种实现分布式数据库操作一致性的方法及装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6671821B1 (en) * 1999-11-22 2003-12-30 Massachusetts Institute Of Technology Byzantine fault tolerance
US9230000B1 (en) * 2012-06-04 2016-01-05 Google Inc. Pipelining Paxos state machines
CN104679796A (zh) * 2013-12-03 2015-06-03 方正信息产业控股有限公司 一种选举方法、装置及数据库镜像集群节点
CN105991325B (zh) * 2015-02-10 2019-06-21 华为技术有限公司 处理至少一个分布式集群中的故障的方法、设备和系统
US10103801B2 (en) * 2015-06-03 2018-10-16 At&T Intellectual Property I, L.P. Host node device and methods for use therewith
CN105743995B (zh) * 2016-04-05 2019-10-18 北京轻元科技有限公司 一种可移植高可用部署和管理容器集群的系统和方法
CN106060036B (zh) * 2016-05-26 2019-07-16 布比(北京)网络技术有限公司 去中心化共识方法及装置
CN111314479B (zh) * 2016-06-20 2022-08-23 北京奥星贝斯科技有限公司 一种数据处理方法和设备
CN107105032B (zh) * 2017-04-20 2019-08-06 腾讯科技(深圳)有限公司 节点设备运行方法及节点设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103152434A (zh) * 2013-03-27 2013-06-12 江苏辰云信息科技有限公司 一种分布式云系统中的领导节点更替方法
CN104933132A (zh) * 2015-06-12 2015-09-23 广州巨杉软件开发有限公司 基于操作序列号的分布式数据库有权重选举方法
CN105512266A (zh) * 2015-12-03 2016-04-20 曙光信息产业(北京)有限公司 一种实现分布式数据库操作一致性的方法及装置
CN105511987A (zh) * 2015-12-08 2016-04-20 上海爱数信息技术股份有限公司 一种强一致性且高可用的分布式任务管理系统

Cited By (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10833919B2 (en) 2017-04-20 2020-11-10 Tencent Technology (Shenzhen) Company Limited Node device operation method, work status switching apparatus, node device, and medium
WO2018192533A1 (zh) * 2017-04-20 2018-10-25 腾讯科技(深圳)有限公司 节点设备运行方法、工作状态切换装置、节点设备及介质
CN107967291A (zh) * 2017-10-12 2018-04-27 腾讯科技(深圳)有限公司 日志条目复制方法、装置、计算机设备及存储介质
CN110377570A (zh) * 2017-10-12 2019-10-25 腾讯科技(深圳)有限公司 节点切换方法、装置、计算机设备及存储介质
CN107967291B (zh) * 2017-10-12 2019-08-13 腾讯科技(深圳)有限公司 日志条目复制方法、装置、计算机设备及存储介质
CN109729129A (zh) * 2017-10-31 2019-05-07 华为技术有限公司 存储集群的配置修改方法、存储集群及计算机系统
US11360854B2 (en) 2017-10-31 2022-06-14 Huawei Technologies Co., Ltd. Storage cluster configuration change method, storage cluster, and computer system
WO2019085875A1 (zh) * 2017-10-31 2019-05-09 华为技术有限公司 存储集群的配置修改方法、存储集群及计算机系统
CN109729129B (zh) * 2017-10-31 2021-10-26 华为技术有限公司 存储集群系统的配置修改方法、存储集群及计算机系统
CN107995029A (zh) * 2017-11-28 2018-05-04 紫光华山信息技术有限公司 选举控制方法及装置、选举方法及装置
CN107995029B (zh) * 2017-11-28 2019-12-13 新华三信息技术有限公司 选举控制方法及装置、选举方法及装置
CN108134712A (zh) * 2017-12-19 2018-06-08 海能达通信股份有限公司 一种分布式集群脑裂的处理方法、装置及设备
CN108306760A (zh) * 2017-12-28 2018-07-20 中国银联股份有限公司 用于在分布式系统中使管理能力自恢复的方法和装置
WO2019128670A1 (zh) * 2017-12-28 2019-07-04 中国银联股份有限公司 用于在分布式系统中使管理能力自恢复的方法和装置
TWI701916B (zh) * 2017-12-28 2020-08-11 大陸商中國銀聯股份有限公司 用於在分布式系統中使管理能力自恢復的方法和裝置
CN110162511B (zh) * 2018-02-08 2023-09-01 华为技术有限公司 一种日志传输方法及相关设备
CN110162511A (zh) * 2018-02-08 2019-08-23 华为技术有限公司 一种日志传输方法及相关设备
CN109150971A (zh) * 2018-06-29 2019-01-04 腾讯科技(深圳)有限公司 超级节点投票和选举方法、装置和网络节点
CN109409828A (zh) * 2018-10-11 2019-03-01 绵阳网安科技有限公司 一种基于区块链技术的合同管理方法
CN109660367A (zh) * 2018-11-21 2019-04-19 语联网(武汉)信息技术有限公司 基于改进Raft算法的共识达成方法、装置与电子设备
CN109726211A (zh) * 2018-12-27 2019-05-07 无锡华云数据技术服务有限公司 一种分布式时序数据库
CN109947733A (zh) * 2019-03-29 2019-06-28 众安信息技术服务有限公司 数据存储装置与方法
CN111835534A (zh) * 2019-04-15 2020-10-27 华为技术有限公司 一种集群控制的方法及相关设备
CN112347184A (zh) * 2019-08-07 2021-02-09 华为技术有限公司 分叉处理方法以及区块链节点
WO2021023304A1 (zh) * 2019-08-07 2021-02-11 华为技术有限公司 分叉处理方法以及区块链节点
CN112835748A (zh) * 2019-11-22 2021-05-25 上海宝信软件股份有限公司 基于scada系统的多中心冗余仲裁方法及系统
CN114268532A (zh) * 2021-11-24 2022-04-01 华人运通(上海)云计算科技有限公司 一种基于Raft协议的竞选方法、分布式系统及存储介质

Also Published As

Publication number Publication date
US10833919B2 (en) 2020-11-10
CN110233905B (zh) 2020-12-25
CN107105032B (zh) 2019-08-06
US20190342149A1 (en) 2019-11-07
WO2018192533A1 (zh) 2018-10-25
EP3562123A1 (en) 2019-10-30
EP3562123B1 (en) 2021-08-11
EP3562123A4 (en) 2020-08-05
CN110233905A (zh) 2019-09-13

Similar Documents

Publication Publication Date Title
CN107105032B (zh) 节点设备运行方法及节点设备
CN107124305B (zh) 节点设备运行方法及节点设备
CN103744809B (zh) 基于vrrp的车辆信息管理系统双机热备方法
CN100369413C (zh) 代理响应设备及用于代理响应设备的方法
US20070168351A1 (en) Non-blocking commit protocol systems and methods
CN111130879B (zh) 一种基于pbft算法的集群异常恢复方法
EP2902922B1 (en) Distributed file system and data backup method for distributed file system
CN110032478B (zh) 一种主备中心数据实时同步方法、装置、系统及存储介质
CN110392120B (zh) 一种消息推送过程中故障的恢复方法及装置
CN101237315A (zh) 一种用于双控高可用系统的同步检测和故障隔离方法
CN110784331B (zh) 一种共识流程恢复方法及相关节点
CN104077181A (zh) 一种适用于分布式任务管理系统的状态一致性维护方法
CN114048517A (zh) 区块链的双通道共识系统和方法、计算机可读存储介质
CN112506702A (zh) 数据中心容灾方法、装置、设备及存储介质
CN102045187A (zh) 一种利用检查点实现高可用性系统的方法和设备
CN103049348B (zh) 多服务器化环境下数据容错存储的方法
CN107257496A (zh) 一种直播的控制方法、装置及移动终端
CN112380064A (zh) 一种区块链中的共识节点容错方法、装置及系统
CN112948484A (zh) 分布式数据库系统和数据灾备演练方法
CN116232893A (zh) 分布式系统的共识方法、装置、电子设备及存储介质
CN101616039A (zh) 基于网络拓扑发现的测试脚本发布方法
CN114598593A (zh) 消息处理方法、系统、计算设备及计算机存储介质
CN114363350A (zh) 一种服务治理系统及方法
CN113630445A (zh) 一种基于区块链网络的数据存储方法及装置
CN111340491A (zh) 一种松散耦合的区块链自主交易方法、装置和系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant