CN103995901A - 一种确定数据节点失效的方法 - Google Patents
一种确定数据节点失效的方法 Download PDFInfo
- Publication number
- CN103995901A CN103995901A CN201410254980.8A CN201410254980A CN103995901A CN 103995901 A CN103995901 A CN 103995901A CN 201410254980 A CN201410254980 A CN 201410254980A CN 103995901 A CN103995901 A CN 103995901A
- Authority
- CN
- China
- Prior art keywords
- back end
- node
- application
- connect
- data 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Abstract
本发明公开了一种确定数据节点失效的方法,用于分布式数据库,该方法包括:在访问所述分布式数据库的所有应用节点中,当任意一个应用节点连接不上所述分布式数据库中的某个数据节点时,向其它应用节点发出连接不上该数据节点的广播;其它应用节点收到所述广播后,向该数据节点发出连接请求,以确定是否能够连接该数据节点;当无法连接该数据节点的应用节点数量达到所设定的阈值时,确定该数据节点失效。本发明的方法中,利用各个应用节点分属于不同IP的特点,确定该数据节点是否失效,可避免通过同一个IP向数据节点发送同步请求时由于网络波动对该单一IP造成的影响,进而可更加准确的判断数据节点的失效原因。
Description
技术领域
本发明涉及分布式数据库领域,特别涉及一种确定数据节点失效的方法。
背景技术
随着网络技术的不断发展,对数据的存储和访问的要求越来越高,由此,分布式数据库应运而生。分布式数据库的高扩展性和高可用性为许多需要不间断工作的网站解决了难题。
分布式数据库,是由分布在多个计算机节点上的子数据库组成,分布在各个计算机节点上的各个子数据库称为数据节点,各个数据节点在逻辑上是相关的,地位是平等的。为了保证整个分布式数据库的正常运行,必须即时了解每个数据节点的运行状态,以确定是否能正常提供服务,即确定数据节点是否有效。而网络波动、硬件故障等原因,都可能导致数据节点的失效,例如,网络波动会引起数据节点的暂时性失效,而硬件故障则会到时数据节点永久失效。因此需要一种有效的手段来确定当前数据节点是否失效。
Cassandra是一套开源分布式NoSQL数据库系统。由于Cassandra良好的可扩放性,已被众多知名网站所采纳,成为了一种流行的分布式结构化数据存储方案。在Cassandra中,判定节点失效的方法是采用基于疑似度的检测(Accrual FailureDetection)。该方法的基本思想是在分布式环境下,通过一个代表失效疑似度的值来判断数据节点是否失效。该方法是在一定的时间窗口内,不断向数据节点发送同步请求,如果数据节点未能响应同步消息一次,那么该数据节点的失效疑似度的值就加1,当失效疑似度的值达到某个设定的阈值后,就确定该数据节点的永久失效。
由于采用上述基于疑似度的检测的方法,通过同一个IP向数据节点发送同步请求,不能很好的避免因网络波动对所发送同步请求的影响,在一段时间内由于网络波动可能产生同步请求数据和/或数据节点对同步请求的响应数据的丢失,进而可能造成在发送同步请求的一段时间内,数据节点失效疑似度的值显著增加,甚至使得数据节点失效疑似度的达到所设定的阈值而被判定为永久失效,但实际上在这段时间过后,数据节点仍然会处于可用状态而并非真的永久失效。因此,现有的上述基于疑似度的检测的方法在使用过程中可能产生数据节点失效的误判。
发明内容
有鉴于此,本发明提供一种确定数据节点失效的方法,以准确的判断数据节点是因网络引起的暂时性失效,还是硬件原因引起的永久失效。
本申请的技术方案是这样实现的:
一种确定数据节点失效的方法,用于分布式数据库,该方法包括:
在访问所述分布式数据库的所有应用节点中,当任意一个应用节点连接不上所述分布式数据库中的某个数据节点时,向其它应用节点发出连接不上该数据节点的广播;
其它应用节点收到所述广播后,向该数据节点发出连接请求,以确定是否能够连接该数据节点;
当无法连接该数据节点的应用节点数量达到所设定的阈值时,确定该数据节点失效。
进一步,在访问所述分布式数据库的所有应用节点中,选出任意一个应用节点作为仲裁节点,以统计无法连接该数据节点的应用节点的数量。
进一步:
在所述仲裁节点中设定一判定值,并将所述判定值初始化为0;
当所述其它应用节点向该数据节点发出连接请求后,均将是否能够连接该数据节点的信息发送给所述仲裁节点;
所述仲裁节点接收所有应用节点发来的是否能够连接该数据节点的信息,且所述仲裁节点每收到一个应用节点发来的无法连接该数据节点的消息,便将所述判定值做一次加1操作;
当所述仲裁节点接收完所有应用节点发来的是否能够连接该数据节点的信息后:
若所述判定值达到所设定的阈值,则确定该数据节点失效;
若所述判定值未达到所设定的阈值,则确定该数据节点有效。
进一步,所述阈值为访问所述分布式数据库的所有应用节点数量的一半。
进一步,确定该数据节点失效之后,所述方法还包括:
将该数据节点从所述分布式数据库中删除;
启用该数据节点的备份节点。
进一步,确定该数据节点有效之后,所述方法还包括:
将所述判定值恢复为初始值0;
连接不上该数据节点的应用节点定时向该数据节点发送连接请求,以等待该数据节点恢复连接。
进一步,当任意一个应用节点连接不上所述分布式数据库中的某个数据节点时,屏蔽掉该应用节点到该数据节点的连接。
进一步,各个应用节点分属于不同IP。
从上述方案可以看出,本发明的确定数据节点失效的方法中,当某一应用节点连接不上某个数据节点后,通过多个应用节点向该数据节点发出连接请求以确定是否能够连接该数据节点,进而确定该数据节点是否失效,由于各个应用节点分属于不同IP,进而可避免现有技术中通过同一个IP向数据节点发送同步请求时由于网络波动对该单一IP造成的影响。本发明比现有技术更加准确的判断数据节点是因网络引起的暂时性失效,还是硬件原因引起的永久失效。
附图说明
图1为本发明的确定数据节点失效的方法流程图;
图2为本发明实施例流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明作进一步详细说明。
本发明的确定数据节点失效的方法用于分布式数据库,如图1所示,该方法包括:
在访问所述分布式数据库的所有应用节点中,当任意一个应用节点连接不上所述分布式数据库中的某个数据节点时,向其它应用节点发出连接不上该数据节点的广播;
其它应用节点收到所述广播后,向该数据节点发出连接请求,以确定是否能够连接该数据节点;
当无法连接该数据节点的应用节点数量达到所设定的阈值时,确定该数据节点失效。
其中,统计无法连接该数据节点的应用节点的数量是在一仲裁节点中进行。仲裁节点的选择是:在访问所述分布式数据库的所有应用节点中,任意选出的一个应用节点作为仲裁节点。
所述仲裁节点统计无法连接该数据节点通过如下方法进行:
在所述仲裁节点中设定一判定值,并将所述判定值初始化为0;
当所述其它应用节点向该数据节点发出连接请求后,均将是否能够连接该数据节点的信息发送给所述仲裁节点;
所述仲裁节点接收所有应用节点发来的是否能够连接该数据节点的信息,且所述仲裁节点每收到一个应用节点发来的无法连接该数据节点的消息,便将所述判定值做一次加1操作;
当所述仲裁节点接收完所有应用节点发来的是否能够连接该数据节点的信息后:
若所述判定值达到所设定的阈值,则确定该数据节点失效;
若所述判定值未达到所设定的阈值,则确定该数据节点有效。
与现有技术不同的是,本发明的方法是当某一应用节点连接不上某个数据节点后,通过多个应用节点向该数据节点发出连接请求以确定是否能够连接该数据节点,进而确定该数据节点是否失效,各个应用节点分属于不同IP,进而可避免现有技术中通过同一个IP向数据节点发送同步请求时由于网络波动对该单一IP造成的影响,进而比现有技术更加准确的判断数据节点是因网络引起的暂时性失效,还是硬件原因引起的永久失效。
本发明的上述方法中,当确定该数据节点失效之后,还包括:
将该数据节点从所述分布式数据库中删除;
启用该数据节点的备份节点。
进而实现了对失效数据节点替换。
当确定该数据节点有效之后,本发明的方法还包括:
将所述判定值恢复为初始值0;
连接不上该数据节点的应用节点定时向该数据节点发送连接请求,以等待该数据节点恢复连接。
在实际网络应用时,访问分布式数据库的应用节点的数量庞大,每个应用节点的IP地址各不相同,而分布式数据库中具有大量的数据节点。以下结合一个具体实施例,对本发明的方法进行说明。该实施例中,假设访问分布式数据库的应用节点共有N个,N>1,分布式数据库中具有M个数据节点(M>1),其中出现N个应用节点中的应用节点i(1≤i≤N)连接不上分布式数据库中的数据节点j(数据节点j为M个数据节点中的任意一个)。如图2所示,该实施例包括以下步骤:
步骤1、从N个应用节点中任意选出一个应用节点作为仲裁节点,并在仲裁节点中设定一判定值,并将判定值初始化为“0”,设定一阈值,并将阈值设置为N/2,之后进入步骤2。
步骤2、当应用节点i连接不上分布式数据库中的数据节点j时,向其它应用节点发出连接不上数据节点j的广播,之后进入步骤3。
所有应用节点中的任意一个应用节点连接不上分布式数据库中的某个数据节点时,还可进一步包括,屏蔽掉该应用节点到该数据节点的连接。例如本步骤2中,当应用节点i连接不上数据节点j时,应用节点i屏蔽掉其到数据节点j的连接,进而可避免应用节点i一直发起对数据节点j的连接但连接不上数据节点j所造成的网络资源开销。
步骤3、其它应用节点收到连接不上数据节点j的广播后,向数据节点j发出连接请求,之后进入步骤4。
步骤4、其它应用节点均将是否能够连接数据节点j的信息发送给所述仲裁节点,之后进入步骤5。
步骤5、仲裁节点接收所有应用节点发来的是否能够连接数据节点j的信息,且仲裁节点每收到1个应用节点发来的无法连接数据节点j的消息,便将判定值进行加1操作,之后进入步骤6。
步骤6、仲裁节点判定累加的判定值是否达到设定的阈值N/2:若累加的判定值达到设定的阈值N/2,则确定数据节点j失效,之后进入步骤7;若累加的判定值未达到所设定的阈值N/2,则确定该数据节点有效,之后进入步骤9。
步骤7、将数据节点j从所述分布式数据库中删除,之后进入步骤8。
步骤8、启用数据节点j的备份节点j’,以替代数据节点j。
步骤9、仲裁节点将所述判定值恢复为初始值0,并通知应用节点i数据节点j有效,之后进入步骤10;
步骤10、应用节点i接收到仲裁节点发来的数据节点j有效的消息后,定时向数据节点j发送连接请求,以等待数据节点j恢复连接。
采用本发明的确定数据节点失效的方法,当某一应用节点连接不上某个数据节点后,通过多个应用节点向该数据节点发出连接请求以确定是否能够连接该数据节点,进而确定该数据节点是否失效,由于各个应用节点分属于不同IP,进而可避免现有技术中通过同一个IP向数据节点发送同步请求时由于网络波动对该单一IP造成的影响。本发明比现有技术更加准确的判断数据节点是因网络引起的暂时性失效,还是硬件原因引起的永久失效。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (8)
1.一种确定数据节点失效的方法,用于分布式数据库,该方法包括:
在访问所述分布式数据库的所有应用节点中,当任意一个应用节点连接不上所述分布式数据库中的某个数据节点时,向其它应用节点发出连接不上该数据节点的广播;
其它应用节点收到所述广播后,均向该数据节点发出连接请求,以确定是否能够连接该数据节点;
当无法连接该数据节点的应用节点数量达到所设定的阈值时,确定该数据节点失效。
2.根据权利要求1所述的确定数据节点失效的方法,其特征在于:
在访问所述分布式数据库的所有应用节点中,选出任意一个应用节点作为仲裁节点,以统计无法连接该数据节点的应用节点的数量。
3.根据权利要求2所述的确定数据节点失效的方法,其特征在于:
在所述仲裁节点中设定一判定值,并将所述判定值初始化为0;
当所述其它应用节点向该数据节点发出连接请求后,均将是否能够连接该数据节点的信息发送给所述仲裁节点;
所述仲裁节点接收所有应用节点发来的是否能够连接该数据节点的信息,且所述仲裁节点每收到一个应用节点发来的无法连接该数据节点的消息,便将所述判定值做一次加1操作;
当所述仲裁节点接收完所有应用节点发来的是否能够连接该数据节点的信息后:
若所述判定值达到所设定的阈值,则确定该数据节点失效;
若所述判定值未达到所设定的阈值,则确定该数据节点有效。
4.根据权利要求1所述的确定数据节点失效的方法,其特征在于:所述阈值为访问所述分布式数据库的所有应用节点数量的一半。
5.根据权利要求1所述的确定数据节点失效的方法,其特征在于,确定该数据节点失效之后,所述方法还包括:
将该数据节点从所述分布式数据库中删除;
启用该数据节点的备份节点。
6.根据权利要求3所述的确定数据节点失效的方法,其特征在于,确定该数据节点有效之后,所述方法还包括:
将所述判定值恢复为初始值0;
连接不上该数据节点的应用节点定时向该数据节点发送连接请求,以等待该数据节点恢复连接。
7.根据权利要求1所述的确定数据节点失效的方法,其特征在于,当任意一个应用节点连接不上所述分布式数据库中的某个数据节点时,屏蔽掉该应用节点到该数据节点的连接。
8.根据权利要求1所述的确定数据节点失效的方法,其特征在于,各个应用节点分属于不同IP。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410254980.8A CN103995901B (zh) | 2014-06-10 | 2014-06-10 | 一种确定数据节点失效的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410254980.8A CN103995901B (zh) | 2014-06-10 | 2014-06-10 | 一种确定数据节点失效的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103995901A true CN103995901A (zh) | 2014-08-20 |
CN103995901B CN103995901B (zh) | 2018-01-12 |
Family
ID=51310066
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410254980.8A Active CN103995901B (zh) | 2014-06-10 | 2014-06-10 | 一种确定数据节点失效的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103995901B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105306545A (zh) * | 2015-09-28 | 2016-02-03 | 浪潮(北京)电子信息产业有限公司 | 一种集群对外服务节点失效接管的方法及系统 |
CN105975212A (zh) * | 2016-04-29 | 2016-09-28 | 深圳市永兴元科技有限公司 | 分布式数据系统失效检测处理方法及装置 |
CN108616566A (zh) * | 2018-03-14 | 2018-10-02 | 华为技术有限公司 | raft分布式系统选主方法、相关设备及系统 |
CN112860799A (zh) * | 2021-02-22 | 2021-05-28 | 浪潮云信息技术股份公司 | 一种分布式数据库数据同步的管理方法 |
CN113783735A (zh) * | 2021-09-24 | 2021-12-10 | 小红书科技有限公司 | Redis集群中故障节点的识别方法、装置、设备和介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102231681A (zh) * | 2011-06-27 | 2011-11-02 | 中国建设银行股份有限公司 | 一种高可用集群计算机系统及其故障处理方法 |
US20120101987A1 (en) * | 2010-10-25 | 2012-04-26 | Paul Allen Bottorff | Distributed database synchronization |
CN102882792A (zh) * | 2012-06-20 | 2013-01-16 | 杜小勇 | 互联网传播路径图简化方法 |
US20130246608A1 (en) * | 2012-03-15 | 2013-09-19 | Microsoft Corporation | Count tracking in distributed environments |
US20130297976A1 (en) * | 2012-05-04 | 2013-11-07 | Paraccel, Inc. | Network Fault Detection and Reconfiguration |
-
2014
- 2014-06-10 CN CN201410254980.8A patent/CN103995901B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120101987A1 (en) * | 2010-10-25 | 2012-04-26 | Paul Allen Bottorff | Distributed database synchronization |
CN102231681A (zh) * | 2011-06-27 | 2011-11-02 | 中国建设银行股份有限公司 | 一种高可用集群计算机系统及其故障处理方法 |
US20130246608A1 (en) * | 2012-03-15 | 2013-09-19 | Microsoft Corporation | Count tracking in distributed environments |
US20130297976A1 (en) * | 2012-05-04 | 2013-11-07 | Paraccel, Inc. | Network Fault Detection and Reconfiguration |
CN102882792A (zh) * | 2012-06-20 | 2013-01-16 | 杜小勇 | 互联网传播路径图简化方法 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105306545A (zh) * | 2015-09-28 | 2016-02-03 | 浪潮(北京)电子信息产业有限公司 | 一种集群对外服务节点失效接管的方法及系统 |
CN105306545B (zh) * | 2015-09-28 | 2018-09-07 | 浪潮(北京)电子信息产业有限公司 | 一种集群对外服务节点失效接管的方法及系统 |
CN105975212A (zh) * | 2016-04-29 | 2016-09-28 | 深圳市永兴元科技有限公司 | 分布式数据系统失效检测处理方法及装置 |
CN108616566A (zh) * | 2018-03-14 | 2018-10-02 | 华为技术有限公司 | raft分布式系统选主方法、相关设备及系统 |
CN112860799A (zh) * | 2021-02-22 | 2021-05-28 | 浪潮云信息技术股份公司 | 一种分布式数据库数据同步的管理方法 |
CN113783735A (zh) * | 2021-09-24 | 2021-12-10 | 小红书科技有限公司 | Redis集群中故障节点的识别方法、装置、设备和介质 |
Also Published As
Publication number | Publication date |
---|---|
CN103995901B (zh) | 2018-01-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3855692A1 (en) | Network security monitoring method, network security monitoring device, and system | |
KR102076862B1 (ko) | 네트워크 성능지표를 시각화하는 방법 및 장치, 및 시스템 | |
CN103995901B (zh) | 一种确定数据节点失效的方法 | |
CN107769943B (zh) | 一种主备集群切换的方法和设备 | |
US10795744B2 (en) | Identifying failed customer experience in distributed computer systems | |
CN106559166B (zh) | 用于分布式处理系统中基于指纹的状态检测方法及设备 | |
CN110149220A (zh) | 一种管理数据传输通道的方法及装置 | |
WO2014166265A1 (en) | Method, terminal, cache server and system for updating webpage data | |
US9596313B2 (en) | Method, terminal, cache server and system for updating webpage data | |
CN104065508A (zh) | 应用服务健康检查方法、装置和系统 | |
CN104579765A (zh) | 一种集群系统的容灾方法和装置 | |
US20170351560A1 (en) | Software failure impact and selection system | |
CN104301140A (zh) | 业务请求响应方法、装置和系统 | |
CN104580432A (zh) | memcached系统及内存缓存数据提供、维护和集群维护方法及装置 | |
US11341842B2 (en) | Metering data management system and computer readable recording medium | |
CN106302412A (zh) | 一种针对信息系统抗压性测试的智能检测系统和检测方法 | |
US8521869B2 (en) | Method and system for reporting defects within a network | |
JP4724763B2 (ja) | パケット処理装置およびインタフェースユニット | |
US11477098B2 (en) | Identification of candidate problem network entities | |
CN106682040A (zh) | 数据管理方法及装置 | |
CN111309515B (zh) | 一种容灾控制方法、装置及系统 | |
CN103530297A (zh) | 一种自动进行网站分析的方法及装置 | |
CN103297480A (zh) | 一种应用服务自动检测系统和方法 | |
US8566634B2 (en) | Method and system for masking defects within a network | |
CN110636090B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |