CN103491168A - 一种集群选举设计方法 - Google Patents

一种集群选举设计方法 Download PDF

Info

Publication number
CN103491168A
CN103491168A CN201310436866.2A CN201310436866A CN103491168A CN 103491168 A CN103491168 A CN 103491168A CN 201310436866 A CN201310436866 A CN 201310436866A CN 103491168 A CN103491168 A CN 103491168A
Authority
CN
China
Prior art keywords
election
node1
ack
node
leader
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
Application number
CN201310436866.2A
Other languages
English (en)
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.)
Inspur Electronic Information Industry Co Ltd
Original Assignee
Inspur Electronic Information Industry 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 Inspur Electronic Information Industry Co Ltd filed Critical Inspur Electronic Information Industry Co Ltd
Priority to CN201310436866.2A priority Critical patent/CN103491168A/zh
Publication of CN103491168A publication Critical patent/CN103491168A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Hardware Redundancy (AREA)

Abstract

本发明公开了一种集群选举设计方法,在选举过程中,当其中一个节点processor发起一次选举时,其他所有的节点接收到选举请求后,判断本身a_id发起者p_id的大小,若a_id小于p_id,则由该节点重新发起一次选举;若a_id大于p_id,则回复ack,表示同意其为leader节点;当超过半数的节点回复ack,则该processor成为新的leader;若发起选举超过5秒,仍未有半数的节点回复ack,且没有新的leader产生,则该节点将重新发起一次选举,直至新的leader产生为止。本发明所提出基于集群节点间的选举算法,实现集群节点之间的leader选举,并在leader失效后,重新发起新的选举,保证了集群的高可用服务,提高了集群的持续工作能力。

Description

一种集群选举设计方法
技术领域
本发明涉及计算机技术领域,具体涉及一种集群选举设计方法。
技术背景
集群技术是一种较新的技术,通过集群技术,可以在付出较低成本的情况下获得在性能、可靠性、灵活性方面的相对较高的收益。
就目前应用来说,集群技术主要分为两类:高可用性集群和高性能集群。高可用性集群的主要功能就是提供不间断的服务,有许多应用程序必须一天二十四小时地不停运转,如所有的web服务器、工业控制器、ATM、远程通讯转接器、医学与军事检测仪以及股票处理机等。对这些应用程序而言,暂时的停机都会导致数据的丢失和灾难性的后果。
高性能集群通过将多台机器连接起来同时处理复杂的计算问题。模拟星球附近的磁场、预测***的出现、定位石油资源的储藏地等情况都需要对大量的数据进行处理。传统的处理方法是使用超级计算机来完成计算工作,但是超级计算机的价格比较昂贵,而且可用性和扩展性不够强,因此集群成为了高性能计算领域瞩目的焦点。
无论是高可用性集群,还是高性能集群,都要求在任务运行过程中服务不中断,提供完整高可用服务,而在多个集群节点之间,需要一个leader节点来监控集群中各个节点的状态,并做实时调整。而选举方法就显得格外重要。
发明内容
本发明要解决的技术问题是:在多个集群节点之间,选举一个leader节点。
本发明所采用的技术方案为:一种集群选举设计方法,在选举过程中,每个节点都可以发起选举并回复其他节点的选举请求,当一个processor发起一次选举时,所有的节点则为该节点的acceptors(同时也可作为processor发起选举),当acceptors接收到processor发送的选举请求后,acceptors判断本身id(a_id)与processor的id(p_id)大小,若a_id小于p_id,则该acceptor则重新发起一次选举,若a_id大于p_id,则回复ack,表示同意processor为leader节点。若超过半数的acceptors回复ack,则该processor则成为新的leader。若发起选举超过5秒,仍未有半数的人回复ack,且没有新的leader产生,则该processor节点将重新发起一次选举,直至新的leader产生为止。
一种集群选举设计方法的实现步骤:
(1)node1(id为0)发起一个选举前,首先遍历自己的quorum数组,发现其存放的id,,确定对应的对应node2、node3……。
(2)node1向node2、node3……节点发起一个选举P,epoch设置为1。
(3)node2、node3……接收到node1发起的选举请求后,首先对比自身epoch与node1发来的epoch,若比其小,则继续比较id大小,发现node1的id比较小,说明node1的优先级比较高,则回复ack。若a_id小于p_id,则由该节点重新发起一次选举。
(4)node1接收到ack后,加上自身的ack,计算收到的ack数目,经过判断其值大于quorum长度的二分之一,将epoch加1(修改为2),连同获得选举消息(V)一起发给node2、node3……。node1成为新的leader,并完成此次选举。
(5)node2、node3……接收到node1发来的epoch和获胜消息,确认node1为新的leader,并结束此次选举。
注:Processors:提出选举请求,即选举的发起者。该角色每次只能发起一个选举请求。
Acceptors:请求的接受者,即接受processors提出的请求,并作回应。每次只能接受一个选举请求。
在选举过程中,每个节点可能会同时担任这两个角色。
id: 整形数,集群中每个节点的唯一识别符,不得重复,id越小其成为leader的概率越高。
epoch:整形数,发起每次选举的唯一标示,若epoch为奇数,则集群正在进行选举,若为偶数,则选举结束。小于自身epoch的选举为过期选举。
quorum:数组,存放节点id的有效列表,列表中的节点存在且处于运行状态。
本发明的有益效果为:本发明所提出基于集群节点间的选举算法,实现集群节点之间的leader选举,并在leader失效后,重新发起新的选举。保证了集群的高可用服务,提高了集群的持续工作能力。
附图说明
图1为一个3个节点的选举流程图。
具体实施方式
下面参照附图,对本发明的内容以一个3个节点的具体实例来描述实现这一设计方法的实现过程。
(1)node1(id为0)发起一个选举前,首先遍历自己的quorum数组,发现其存放的id为1和2,即对应node2和node3。
(2)node1向node2和node3两个节点发起一个选举P,epoch设置为1。
(3)node2和node3接收到node1发起的选举请求后,首先对比自身epoch与node1发来的epoch,若比其小,则继续比较id大小,发现node1的id比较小,说明node1的优先级比较高,则回复ack;若a_id小于p_id,则由该节点重新发起一次选举。。
(4)node1接收到ack后,加上自身的ack,计算收到的ack数目(为3),经过判断其值大于quorum长度的二分之一(1),将epoch加1(修改为2),连同获得选举消息(V)一起发给node2和node3。node1成为新的leader,并完成此次选举。
(5)node2和node3接收到node1发来的epoch和获胜消息,确认node1为新的leader,并结束此次选举。

Claims (2)

1.一种集群选举设计方法,其特征在于:在选举过程中,当其中一个节点作为processor发起一次选举时,其他所有的节点则为该节点的acceptors,当acceptors接收到processor发送的选举请求后,判断本身id—a_id,与processor的id—p_id的大小,若a_id小于p_id,则由该acceptor重新发起一次选举;若a_id大于p_id,则回复ack,表示同意processor为leader节点;当超过半数的acceptors回复ack,则该processor则成为新的leader;若发起选举超过5秒,仍未有半数的acceptors回复ack,且没有新的leader产生,则该processor节点将重新发起一次选举,直至新的leader产生为止。
2.根据权利要求1所述的一种集群选举设计方法,其特征在于:所述设计方法的实现步骤如下:
(1)node1(id为0)发起一个选举前,首先遍历自己的quorum数组,发现其存放的id,确定对应的对应node2、node3……;
(2)node1向node2、node3……节点发起一个选举P,epoch设置为1;
(3)node2、node3……接收到node1发起的选举请求后,首先对比自身epoch与node1发来的epoch,若比其小,则继续比较id大小,发现node1的id比较小,说明node1的优先级比较高,则回复ack;若node1的id比较大,则由该acceptor接收节点重新发起一次选举;
(4)node1接收到ack后,加上自身的ack,计算收到的ack数目,经过判断其值大于quorum长度的二分之一,将epoch加1,修改为2,连同获得选举消息V一起发给node2、node3……;node1成为新的leader,并完成此次选举;
(5)node2、node3……接收到node1发来的epoch和获胜消息,确认node1为新的leader,并结束此次选举。
CN201310436866.2A 2013-09-24 2013-09-24 一种集群选举设计方法 Pending CN103491168A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310436866.2A CN103491168A (zh) 2013-09-24 2013-09-24 一种集群选举设计方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310436866.2A CN103491168A (zh) 2013-09-24 2013-09-24 一种集群选举设计方法

Publications (1)

Publication Number Publication Date
CN103491168A true CN103491168A (zh) 2014-01-01

Family

ID=49831121

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310436866.2A Pending CN103491168A (zh) 2013-09-24 2013-09-24 一种集群选举设计方法

Country Status (1)

Country Link
CN (1) CN103491168A (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104767794A (zh) * 2015-03-13 2015-07-08 青岛海信传媒网络技术有限公司 一种分布式***中的节点选举方法及节点
CN105337780A (zh) * 2015-12-01 2016-02-17 迈普通信技术股份有限公司 一种服务器节点配置方法及物理节点
CN106161495A (zh) * 2015-03-25 2016-11-23 中兴通讯股份有限公司 一种主节点选举方法、装置及存储***
CN106372165A (zh) * 2016-08-31 2017-02-01 天津南大通用数据技术股份有限公司 一种基于totem协议的集群的leader选取方法及装置
CN106687934A (zh) * 2014-09-26 2017-05-17 英特尔公司 基于证据替代存储节点
CN107332880A (zh) * 2017-06-05 2017-11-07 深圳市酷开网络科技有限公司 信息推送的方法、装置及计算机可读存储介质
CN108600328A (zh) * 2018-03-29 2018-09-28 新华三技术有限公司 一种集群选举方法和装置
CN108810046A (zh) * 2017-04-28 2018-11-13 华为技术有限公司 一种选举领导者Leader的方法、装置及设备
CN109995835A (zh) * 2017-12-29 2019-07-09 浙江宇视科技有限公司 主节点选举方法、装置和分布式存储***
CN111162942A (zh) * 2019-12-27 2020-05-15 杭州涂鸦信息技术有限公司 一种集群选举方法及***
CN113641692A (zh) * 2021-08-18 2021-11-12 福建天晴数码有限公司 一种实现分布式集群节点参选的方案及***

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005071058A2 (en) * 2004-01-27 2005-08-04 Compugen Ltd. Methods and systems for annotating biomolecular sequences
CN101110732A (zh) * 2007-07-27 2008-01-23 北京大学 无线网状网络的骨干节点相对定位方法
CN101610193A (zh) * 2009-07-27 2009-12-23 武汉烽火网络有限责任公司 以太环网自动发现及生成环的方法
CN101702721A (zh) * 2009-10-26 2010-05-05 北京航空航天大学 一种多集群***的可重组方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005071058A2 (en) * 2004-01-27 2005-08-04 Compugen Ltd. Methods and systems for annotating biomolecular sequences
CN101110732A (zh) * 2007-07-27 2008-01-23 北京大学 无线网状网络的骨干节点相对定位方法
CN101610193A (zh) * 2009-07-27 2009-12-23 武汉烽火网络有限责任公司 以太环网自动发现及生成环的方法
CN101702721A (zh) * 2009-10-26 2010-05-05 北京航空航天大学 一种多集群***的可重组方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
张凯: "KTRP路由协议中根的动态选举算法研究", 《优秀硕士学位论文库》 *
杨波,廖建新,武家春: "集群流媒体代理中主控制器选举和热切换协议研究", 《高技术通讯》 *

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106687934A (zh) * 2014-09-26 2017-05-17 英特尔公司 基于证据替代存储节点
CN104767794B (zh) * 2015-03-13 2018-05-01 聚好看科技股份有限公司 一种分布式***中的节点选举方法及节点
CN104767794A (zh) * 2015-03-13 2015-07-08 青岛海信传媒网络技术有限公司 一种分布式***中的节点选举方法及节点
CN106161495A (zh) * 2015-03-25 2016-11-23 中兴通讯股份有限公司 一种主节点选举方法、装置及存储***
CN105337780A (zh) * 2015-12-01 2016-02-17 迈普通信技术股份有限公司 一种服务器节点配置方法及物理节点
CN105337780B (zh) * 2015-12-01 2018-09-18 迈普通信技术股份有限公司 一种服务器节点配置方法及物理节点
CN106372165A (zh) * 2016-08-31 2017-02-01 天津南大通用数据技术股份有限公司 一种基于totem协议的集群的leader选取方法及装置
CN108810046A (zh) * 2017-04-28 2018-11-13 华为技术有限公司 一种选举领导者Leader的方法、装置及设备
CN107332880A (zh) * 2017-06-05 2017-11-07 深圳市酷开网络科技有限公司 信息推送的方法、装置及计算机可读存储介质
CN109995835A (zh) * 2017-12-29 2019-07-09 浙江宇视科技有限公司 主节点选举方法、装置和分布式存储***
CN108600328A (zh) * 2018-03-29 2018-09-28 新华三技术有限公司 一种集群选举方法和装置
CN111162942A (zh) * 2019-12-27 2020-05-15 杭州涂鸦信息技术有限公司 一种集群选举方法及***
CN113641692A (zh) * 2021-08-18 2021-11-12 福建天晴数码有限公司 一种实现分布式集群节点参选的方案及***

Similar Documents

Publication Publication Date Title
CN103491168A (zh) 一种集群选举设计方法
Nawab et al. Dpaxos: Managing data closer to users for low-latency and mobile applications
US11687555B2 (en) Conditional master election in distributed databases
US8930316B2 (en) System and method for providing partition persistent state consistency in a distributed data grid
KR101503202B1 (ko) 데이터 동기화
Loesing et al. Stormy: an elastic and highly available streaming service in the cloud
US11442824B2 (en) Locality based quorum eligibility
CN102523234B (zh) 一种应用服务器集群实现方法及***
EP3326065B1 (en) Leaderless consistency protocol
US10826812B2 (en) Multiple quorum witness
JP2012079242A (ja) 複合イベント分散装置、複合イベント分散方法および複合イベント分散プログラム
US10862856B2 (en) Distributed components in computing clusters
US10061621B1 (en) Managing resources in a configurable computing environment
Duolikun et al. An energy-efficient process migration approach to reducing electric energy consumption in a cluster of servers
CN108462737B (zh) 基于批处理和流水线的分层数据一致性协议优化方法
Jalili Marandi et al. Ring Paxos: High-throughput atomic broadcast
WO2014171810A2 (en) A system and method of fault tolerant for distributed applications in a virtualized environment
CA3085055C (en) A data management system and method
Sun et al. Adaptive trade‐off between consistency and performance in data replication
Msadek et al. Trust-enhanced self-configuration for organic computing systems
Bottcher et al. A failure tolerating atomic commit protocol for mobile environments
US10542127B2 (en) Fault tolerant communication in a distributed system
Rotaru et al. Reliable messaging to millions of users with migratorydata
Loureiro Scalable and Robust Membership Solutions for Geo-Distributed Systems
Yang et al. DZMQ: A decentralized distributed messaging system for realtime Web applications and services

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20140101

RJ01 Rejection of invention patent application after publication