CN108763312B - 一种基于负载的从数据节点筛选方法 - Google Patents
一种基于负载的从数据节点筛选方法 Download PDFInfo
- Publication number
- CN108763312B CN108763312B CN201810382253.8A CN201810382253A CN108763312B CN 108763312 B CN108763312 B CN 108763312B CN 201810382253 A CN201810382253 A CN 201810382253A CN 108763312 B CN108763312 B CN 108763312B
- Authority
- CN
- China
- Prior art keywords
- data node
- slave data
- node
- slave
- nodes
- 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.)
- Active
Links
Images
Classifications
-
- 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)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明属于计算机技术领域,涉及一种基于负载的从数据节点筛选方法。将本方法应用于数据库集群的从节点选举过程,包括步骤:1全局定义;2将主节点的从数据节点组成待选从数据节点集合;3从待选从数据节点集合中,过滤掉存在网络或其他体的的从数据节点;4将待选从数据集合中剩余的从数据节点,按照节点配置优先级、复制偏差和当前负载情况的比较顺序进行排序,形成优先级队列;5取出队列队首节点,将该从数据节点晋升为主数据节点;6原主数据节点下的所有从数据节点对该节点中的数据进行复制;7新的数据库集群继续提供数据库服务,系统恢复正常。本发明在不增加系统故障恢复时间的基础上,降低主数据节点故障的概率,提高系统的可用性。
Description
技术领域
本发明属于计算机技术领域,涉及一种基于负载的从数据节点筛选方法。
背景技术
目前,随着计算机技术的快速发展,丰富多样的网络应用使得互联网用户的数量快速增加。据统计,中国的网民数量突破7亿,每时每刻,都有成千上万的网民在同时访问着互联网应用。在网络社交和交易平台等后端系统中,存在着系统处理请求的峰值,要求系统能够快速响应大量高并发的请求并低延时地处理海量数据。面对上述业务场景,大多数系统服务器采用集群部署,并且在应用服务器和传统数据库之间应用多数据节点的内存数据库作为数据缓存。多数据节点集群不管是分布式部署(在各个节点之间存在数据分片)还是单主多从部署,都存在着从数据节点对主数据节点的复制的关系。主从复制的部署目的主要体现在如下两方面:第一,对主数据中的数据进行备份,在主数据节点数据丢失的情况下可以找到数据备份;第二,当主数据节点故障而停止数据服务时,数据库集群一般都有自动的故障转移策略,使得从数据节点可以顶替主数据节点继续提供服务,从而保证数据库服务的高可用性。所以,主数据节点的故障转移过程中需要对从数据节点进行选举,即从多个从数据节点中选举出一个数据节点顶替主数据节点。考虑到主数据节点的角色在整个数据服务层的重要性,选举哪一个从数据节点是一个重要的问题。
在现有的从数据节点选举策略中,一般是最先发起晋升请求的从数据节点当选,也有部分方法考虑用户的特别指定或者数据集的相似程度来进行选举。但是,主数据节点作为该分区提供数据服务的节点,要负责频繁的数据处理读写请求(也有部分数据库系统对主从数据节点做读写分离),它的性能越好、宕机概率越低,整个的数据库集群的可用性越高。
发明内容
为了克服现有技术的不足之处,选取一个出现故障概率更低的从数据节点,本发明提出一种基于负载的从数据节点筛选方法。通过该方法,使得在不增加数据库集群的故障恢复时间的基础上,提高数据库服务的可用性。
本发明为了达到上述目的,采用的技术方案如下:
一种基于负载的从数据节点筛选方法,是在数据库集群部署中,当主数据节点发生故障而进行从数据节点选举的方法;其中,所述的数据库集群至少包括一个主数据节点、n个从数据节点、主数据节点与从数据节点之间的复制关系以及主数据节点故障而需要选举从数据节点的状态;具体步骤如下:
步骤1、全局定义:
定义所述的主数据节点为Master,并有多个从数据节点对主数据节点存储的数据进行复制;
定义所述的从数据节点集合为{S1,S2,…,Si,…,Sn},Si表示Master的第i个从数据节点,i=1,2,3...,n;
定义所述的从数据节点的初始配置优先级为P1,P2,…,Pi,…,Pn,Pi表示从数据节点Si的初始优先级;
定义所述的从数据节点对主数据节点的数据复制偏差为D1,D2,…,Di,…,Dn,Di表示从数据节点Si的复制偏差;
定义所述的从数据节点Si的CPU使用率为U(Ci)、内存使用率为U(Mi)、磁盘IO使用率U(Bi)、网络IO使用率U(Ii)、当前负载情况为L(i);其中,当前负载情况由如下公式得出:L(i)=U(Ci)+U(Mi)+U(Bi)+U(Ii);
定义从数据节点与主数据节点的保证弱数据一致性的最大通信忍受时间间隔为MaxTime;
步骤2、选取主数据节点的从数据节点,组成待选从数据节点集合;
步骤3、从待选从数据节点集合中,过滤掉存在问题的从数据节点;
步骤3.1、依次从待选的从数据节点集合中取出每个从数据节点;
步骤3.2、判断取出的从数据节点是否正处于断开连接状态;
步骤3.3、判断取出的从数据节点距离上次与主数据节点的通信时间间隔是否超过MaxTime;
步骤3.4、判断取出的从数据节点是否有过故障标记;
步骤3.5、从待选从数据节点集合中删除满足步骤3.2、步骤3.3和步骤3.4中任意一个条件的从数据节点;
步骤4、将待选从数据节点集合中剩余的从数据节点,按照比较结果,插入到优先级队列中;
步骤4.1、对于Si、Sj,比较Pi是否大于Pj;若是,则Si的优先级大于Sj;若Pi小于Pj,则Si的优先级小于Sj;
步骤4.2、若Pi=Pj,则比较Di是否小于Dj;若是,则Si的优先级大于Sj,若Di大于Dj,则Si的优先级小于Sj;
步骤4.3、若Pi=Pj,Di=Dj,则比较L(i)是否小于L(j);若是,则Si的优先级大于Sj;若L(i)大于L(j),则Si的优先级小于Sj;
步骤5、取出优先级队列队首的从数据节点,将该从数据节点晋升为主节点;
步骤6、原主节点下的所有从数据节点对新主节点中的数据进行复制;
步骤7、新的数据库集群继续提供数据库服务,系统恢复正常。
所述的从数据节点为单实例内存数据库或者缓存服务器。
与现有技术相比,本发明的有益效果在于:
1.本发明提供了一种在主数据节点故障的情况下,基于负载的从数据节点筛选方法,可以选择故障概率低的从数据节点继续提供数据服务,降低了因主数据节点出现故障而导致整个数据库服务不可用的可能性。
2.本发明保证了整个系统的故障恢复时间并不增加,根据系统可靠性理论,系统的故障恢复时间不变,系统崩溃的概率降低,提高了系统的可用性。
附图说明
图1是本发明实施例的数据节点的部署架构图。
图2是本发明实施例的从数据节点筛选流程图。
图3是本发明实施例的集群故障转移图。
具体实施方式
以下结合附图和技术方案,进一步说明本发明的具体实施方式。
本实例的应用场景是数据库集群部署,具体的数据节点部署架构如图1所示,在该架构中存在一主多从的复制关系,图中n个Slave数据节点对Master数据节点进行数据复制。同时为了完成各个数据节点的状态监控功能,一般在整个集群中设置监控节点,图中监控节点集合中各个监控节点的功能是相同的,多监控节点的目的是有一定的故障容忍度。一旦监控节点检测出主数据节点出现故障,则依据所提出的方法对从数据节点进行选举。具体过程分为四步:首先过滤掉不满足条件的从数据节点,然后经过计算选择“选举优先级”最高的节点,并且监控节点将其角色切换成主数据节点,最后原主数据节点的其它从数据节点对新主节点进行复制,具体方法按如下步骤进行:
步骤1、全局定义:
定义所述的主数据节点为Master,并有多个从数据节点对主数据节点存储的数据进行复制;
定义所述的从数据节点集合为{S1,S2,…,Si,…,Sn},Si表示Master的第i个从数据节点,i=1,2,3...,n;
定义所述的从数据节点的初始配置优先级为P1,P2,…,Pi,…,Pn,Pi表示从数据节点Si的初始优先级;
定义所述的从数据节点对主数据节点的数据复制偏差为D1,D2,…,Di,…,Dn,Di表示从数据节点Si的复制偏差;
定义所述的从数据节点Si的CPU使用率为U(Ci)、内存使用率为U(Mi)、磁盘IO使用率U(Bi)、网络IO使用率U(Ii)、当前负载情况为L(i);其中,当前负载情况可由如下公式得出:L(i)=U(Ci)+U(Mi)+U(Bi)+U(Ii);
定义从数据节点与主数据节点的保证弱数据一致性的最大通信忍受时间间隔为MaxTime;
经过上述定义,可以定量的比较每个从数据节点的相关状态和当前的负载情况,本实施例中负载情况就是定性的计算单机节点的用于数据存储操作的资源占用情况。
步骤2、选取主数据节点的从数据节点,组成待选从数据节点集合;
步骤3、从待选从数据节点集合中,过滤掉存在问题的从数据节点;
步骤3.1、依次从待选的从数据节点集合中取出每个从数据节点;
步骤3.2、判断取出的从数据节点是否正处于断开连接状态,因为断开连接的数据节点可能存在网络问题而无法访问;
步骤3.3、判断取出的从数据节点距离上次与主数据节点的通信时间间隔是否超过MaxTime,因为通信间隔超时就表示现在该从数据节点中的数据可能跟原主数据节点的数据集存在较大差异,不适合选举成为主数据节点;
步骤3.4、判断取出的从数据节点是否有过故障标记,因为部署数据库的机器出现过故障,修复之后可能还存在某些故障问题没有被修复,存在再次出现故障的风险;
步骤3.5、从待选从数据节点集合中删除满足步骤3.2、步骤3.3和步骤3.4中任意一个条件的从数据节点;
步骤4、将待选从数据节点集合中剩余的从数据节点,按照比较结果,插入到优先级队列中,从数据节点的筛选流程如图2所示;
步骤4.1、对于两个从数据节点来说,考虑到特殊配置单独指定从数据节点,则该属性高于其他属性,所以比较Pi是否大于Pj,若是,Si的优先级大于Sj,若Pi小于Pj,则Si的优先级小于Sj;
步骤4.2、在没有单独设置优先级或者两个优先级相等的情况下,要比较两个从节点对主节点数据复制程度,复制程度越高,该从节点的数据越接近主节点的数据,当选之后其他从节点所做的增量复制较少,所以比较Di是否小于Dj,若是,Si的优先级大于Sj,若Di大于Dj,则Si的优先级小于Sj;
步骤4.3、一般情况下,上述两个属性都相同,我们不失一般性的认为,机器的负载越小,故障的概率越低,那么该方法就按照步骤1所定义的公式去计算当前负载情况,所以比较L(i)是否小于L(j),若是,Si的优先级大于Sj,若L(i)大于L(j),则Si的优先级小于Sj;
步骤5、取出优先级队列队首的从数据节点,将该从数据节点晋升为主节点;
步骤6、原主节点下的所有从数据节点对新主节点中的数据进行复制;
步骤7、新的数据库集群继续提供数据库服务,系统恢复正常。
步骤5-7的故障转移过程如图3所示:在出现故障之前,监控节点维护主节点下的所有从数据节点,经过故障转移之后,按照基于负载从数据节点的筛选方法,新当选的主数据节点为MS(本实施例假设S1当选),其他从数据节点对新主节点进行复制,假设原始主数据节点从重新加入,则将成为新主节点的从数据节点。
本实施实例中,步骤4.3中根据从数据节点的当前负载情况对节点的优先级进行比较,比较负载的方式是按照机器各种资源的使用率之和来定义的,这种方法的好处是能够得出该机器当前最真实的负载。
本实施实例中,所述的从数据节点可以是单机部署的内存数据库或者缓存服务器,但不局限于上述两种数据节点。
Claims (2)
1.一种基于负载的从数据节点筛选方法,其特征在于,该方法是在数据库集群部署中,当主数据节点发生故障而进行从数据节点选举的方法;其中,所述的数据库集群至少包括一个主数据节点、n个从数据节点、主数据节点与从数据节点之间的复制关系以及主数据节点故障而需要选举从数据节点的状态;具体步骤如下:
步骤1、全局定义:
定义所述的主数据节点为Master,并有多个从数据节点对主数据节点存储的数据进行复制;
定义所述的从数据节点集合为{S1,S2,…,Si,…,Sn},Si表示Master的第i个从数据节点,i=1,2,3...,n;
定义所述的从数据节点的初始配置优先级为P1,P2,…,Pi,…,Pn,Pi表示从数据节点Si的初始优先级;
定义所述的从数据节点对主数据节点的数据复制偏差为D1,D2,…,Di,…,Dn,Di表示从数据节点Si的复制偏差;
定义所述的从数据节点Si的CPU使用率为U(Ci)、内存使用率为U(Mi)、磁盘IO使用率U(Bi)、网络IO使用率U(Ii)、当前负载情况为L(i);其中,当前负载情况由如下公式得出:L(i)=U(Ci)+U(Mi)+U(Bi)+U(Ii);
定义从数据节点与主数据节点的保证弱数据一致性的最大通信忍受时间间隔为MaxTime;
步骤2、选取主数据节点的从数据节点,组成待选从数据节点集合;
步骤3、从待选从数据节点集合中,过滤掉存在问题的从数据节点;
步骤3.1、依次从待选的从数据节点集合中取出每个从数据节点;
步骤3.2、判断取出的从数据节点是否正处于断开连接状态;
步骤3.3、判断取出的从数据节点距离上次与主数据节点的通信时间间隔是否超过MaxTime;
步骤3.4、判断取出的从数据节点是否有过故障标记;
步骤3.5、从待选从数据节点集合中删除满足步骤3.2、步骤3.3和步骤3.4中任意一个条件的从数据节点;
步骤4、将待选从数据节点集合中剩余的从数据节点,按照比较结果,插入到优先级队列中;
步骤4.1、对于Si、Sj,比较Pi是否大于Pj;若是,则Si的优先级大于Sj;若Pi小于Pj,则Si的优先级小于Sj;
步骤4.2、若Pi=Pj,则比较Di是否小于Dj;若是,则Si的优先级大于Sj,若Di大于Dj,则Si的优先级小于Sj;
步骤4.3、若Pi=Pj,Di=Dj,则比较L(i)是否小于L(j);若是,则Si的优先级大于Sj;若L(i)大于L(j),则Si的优先级小于Sj;
步骤5、取出优先级队列队首的从数据节点,将该从数据节点晋升为主节点;
步骤6、原主节点下的所有从数据节点对新主节点中的数据进行复制;
步骤7、新的数据库集群继续提供数据库服务,系统恢复正常。
2.根据权利要求1所述的一种基于负载的从数据节点筛选方法,其特征在于,所述的从数据节点为单实例内存数据库或者缓存服务器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810382253.8A CN108763312B (zh) | 2018-04-26 | 2018-04-26 | 一种基于负载的从数据节点筛选方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810382253.8A CN108763312B (zh) | 2018-04-26 | 2018-04-26 | 一种基于负载的从数据节点筛选方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108763312A CN108763312A (zh) | 2018-11-06 |
CN108763312B true CN108763312B (zh) | 2021-07-06 |
Family
ID=64011705
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810382253.8A Active CN108763312B (zh) | 2018-04-26 | 2018-04-26 | 一种基于负载的从数据节点筛选方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108763312B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114201549B (zh) * | 2020-09-17 | 2022-11-25 | 金篆信科有限责任公司 | 切换方法、系统、服务器及存储介质 |
CN113220509B (zh) * | 2021-05-19 | 2024-03-05 | 扬州万方科技股份有限公司 | 一种双组合交替倒班系统及方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1719831A (zh) * | 2005-07-15 | 2006-01-11 | 清华大学 | 基于集群路由器结构的高可用分布式边界网关协议系统 |
CN104283948A (zh) * | 2014-09-26 | 2015-01-14 | 东软集团股份有限公司 | 服务器集群系统及其负载均衡实现方法 |
CN106453120A (zh) * | 2015-08-05 | 2017-02-22 | 北京网御星云信息技术有限公司 | 一种动态集群方法和系统 |
CN107168799A (zh) * | 2017-05-16 | 2017-09-15 | 成都四象联创科技有限公司 | 基于云计算架构的数据优化处理方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017037492A (ja) * | 2015-08-10 | 2017-02-16 | 富士通株式会社 | 分散処理プログラム、分散処理方法および分散処理装置 |
-
2018
- 2018-04-26 CN CN201810382253.8A patent/CN108763312B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1719831A (zh) * | 2005-07-15 | 2006-01-11 | 清华大学 | 基于集群路由器结构的高可用分布式边界网关协议系统 |
CN104283948A (zh) * | 2014-09-26 | 2015-01-14 | 东软集团股份有限公司 | 服务器集群系统及其负载均衡实现方法 |
CN106453120A (zh) * | 2015-08-05 | 2017-02-22 | 北京网御星云信息技术有限公司 | 一种动态集群方法和系统 |
CN107168799A (zh) * | 2017-05-16 | 2017-09-15 | 成都四象联创科技有限公司 | 基于云计算架构的数据优化处理方法 |
Non-Patent Citations (2)
Title |
---|
Redis集群可靠性的研究与优化;李燚;《中国优秀硕士学位论文全文数据库》;20180115;全文 * |
SCADIS: Supporting Reliable Scalability in Redis Replication on Demand;Zuqing Li等;《IEEE》;20171123;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN108763312A (zh) | 2018-11-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11360854B2 (en) | Storage cluster configuration change method, storage cluster, and computer system | |
CN110190987B (zh) | 基于备份收益与重映射的虚拟网络功能可靠性部署方法 | |
EP2435916B1 (en) | Cache data processing using cache cluster with configurable modes | |
US9053166B2 (en) | Dynamically varying the number of database replicas | |
JP6491210B2 (ja) | 分散データグリッドにおいて永続性パーティションリカバリをサポートするためのシステムおよび方法 | |
US9201747B2 (en) | Real time database system | |
CN110535680B (zh) | 一种拜占庭容错方法 | |
GB2484086A (en) | Reliability and performance modes in a distributed storage system | |
CN110190991B (zh) | 一种多应用场景下的分布式流处理系统的容错方法 | |
CN113821376B (zh) | 一种基于云灾备的一体化备份容灾方法及系统 | |
CN105069152B (zh) | 数据处理方法及装置 | |
CN110990200A (zh) | 一种基于多活数据中心的流量切换方法及装置 | |
CN108763312B (zh) | 一种基于负载的从数据节点筛选方法 | |
CN116680256B (zh) | 数据库节点升级方法、装置和计算机设备 | |
CN113553179A (zh) | 分布式键值存储负载均衡方法及系统 | |
CN111935320B (zh) | 一种数据同步的方法、相关装置、设备以及存储介质 | |
CN115994044B (zh) | 基于监控服务的数据库故障处理方法、装置及分布式集群 | |
CN114461438A (zh) | 非对称中心模式的分布式数据库容灾系统及方法 | |
CN110377664B (zh) | 数据同步方法、装置、服务器及存储介质 | |
CN107943615B (zh) | 基于分布式集群的数据处理方法与系统 | |
CN112037873B (zh) | 一种基于集群选主和共识机制的单点优化方法 | |
CN103793296A (zh) | 一种在集群中用于辅助备份复制计算机系统的方法 | |
CN117061512A (zh) | 基于大数据的分布式信息管理方法和系统 | |
CN111930563B (zh) | 云仿真系统中的容错方法 | |
CN112256202B (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 |