一种确定数据节点失效的方法技术

技术编号:10332887 阅读:194 留言:0更新日期:2014-08-20 18:09
本发明专利技术公开了一种确定数据节点失效的方法,用于分布式数据库,该方法包括:在访问所述分布式数据库的所有应用节点中,当任意一个应用节点连接不上所述分布式数据库中的某个数据节点时,向其它应用节点发出连接不上该数据节点的广播;其它应用节点收到所述广播后,向该数据节点发出连接请求,以确定是否能够连接该数据节点;当无法连接该数据节点的应用节点数量达到所设定的阈值时,确定该数据节点失效。本发明专利技术的方法中,利用各个应用节点分属于不同IP的特点,确定该数据节点是否失效,可避免通过同一个IP向数据节点发送同步请求时由于网络波动对该单一IP造成的影响,进而可更加准确的判断数据节点的失效原因。

【技术实现步骤摘要】
【专利摘要】本专利技术公开了,用于分布式数据库,该方法包括:在访问所述分布式数据库的所有应用节点中,当任意一个应用节点连接不上所述分布式数据库中的某个数据节点时,向其它应用节点发出连接不上该数据节点的广播;其它应用节点收到所述广播后,向该数据节点发出连接请求,以确定是否能够连接该数据节点;当无法连接该数据节点的应用节点数量达到所设定的阈值时,确定该数据节点失效。本专利技术的方法中,利用各个应用节点分属于不同IP的特点,确定该数据节点是否失效,可避免通过同一个IP向数据节点发送同步请求时由于网络波动对该单一IP造成的影响,进而可更加准确的判断数据节点的失效原因。【专利说明】
本专利技术涉及分布式数据库领域,特别涉及。
技术介绍
随着网络技术的不断发展,对数据的存储和访问的要求越来越高,由此,分布式数据库应运而生。分布式数据库的高扩展性和高可用性为许多需要不间断工作的网站解决了难题。分布式数据库,是由分布在多个计算机节点上的子数据库组成,分布在各个计算机节点上的各个子数据库称为数据节点,各个数据节点在逻辑上是相关的,地位是平等的。为了保证整个分布式数据库的正常运行,必须即时了解每个数据节点的运行状态,以确定是否能正常提供服务,即确定数据节点是否有效。而网络波动、硬件故障等原因,都可能导致数据节点的失效,例如,网络波动会引起数据节点的暂时性失效,而硬件故障则会到时数据节点永久失效。因此需要一种有效的手段来确定当前数据节点是否失效。Cassandra是一套开源分布式NoSQL数据库系统。由于Cassandra良好的可扩放性,已被众多知名网站所采纳,成为了一种流行的分布式结构化数据存储方案。在Cassandra中,判定节点失效的方法是采用基于疑似度的检测(Accrual Fai lureDetection)。该方法的基本思想是在分布式环境下,通过一个代表失效疑似度的值来判断数据节点是否失效。该方法是在一定的时间窗口内,不断向数据节点发送同步请求,如果数据节点未能响应同步消息一次,那么该数据节点的失效疑似度的值就加1,当失效疑似度的值达到某个设定的阈值后,就确定该数据节点的永久失效。由于采用上述基于疑似度的检测的方法,通过同一个IP向数据节点发送同步请求,不能很好的避免因网络波动对所发送同步请求的影响,在一段时间内由于网络波动可能产生同步请求数据和/或数据节点对同步请求的响应数据的丢失,进而可能造成在发送同步请求的一段时间内,数据节点失效疑似度的值显著增加,甚至使得数据节点失效疑似度的达到所设定的阈值而被判定为永久失效,但实际上在这段时间过后,数据节点仍然会处于可用状态而并非真的永久失效。因此,现有的上述基于疑似度的检测的方法在使用过程中可能产生数据节点失效的误判。
技术实现思路
有鉴于此,本专利技术提供,以准确的判断数据节点是因网络引起的暂时性失效,还是硬件原因引起的永久失效。本申请的技术方案是这样实现的:,用于分布式数据库,该方法包括:在访问所述分布式数据库的所有应用节点中,当任意一个应用节点连接不上所述分布式数据库中的某个数据节点时,向其它应用节点发出连接不上该数据节点的广播;其它应用节点收到所述广播后,向该数据节点发出连接请求,以确定是否能够连接该数据节点;当无法连接该数据节点的应用节点数量达到所设定的阈值时,确定该数据节点失效。进一步,在访问所述分布式数据库的所有应用节点中,选出任意一个应用节点作为仲裁节点,以统计无法连接该数据节点的应用节点的数量。进一步:在所述仲裁节点中设定一判定值,并将所述判定值初始化为O ;当所述其它应用节点向该数据节点发出连接请求后,均将是否能够连接该数据节点的信息发送给所述仲裁节点;所述仲裁节点接收所有应用节点发来的是否能够连接该数据节点的信息,且所述仲裁节点每收到一个应用节点发来的无法连接该数据节点的消息,便将所述判定值做一次加I操作;当所述仲裁节点接收完所有应用节点发来的是否能够连接该数据节点的信息后:若所述判定值达到所设定的阈值,则确定该数据节点失效;若所述判定值未达到所设定的阈值,则确定该数据节点有效。进一步,所述阈值为访问所述分布式数据库的所有应用节点数量的一半。进一步,确定该数据节点失效之后,所述方法还包括:将该数据节点从所述分布式数据库中删除;启用该数据节点的备份节点。进一步,确定该数据节点有效之后,所述方法还包括:将所述判定值恢复为初始值O ;连接不上该数据节点的应用节点定时向该数据节点发送连接请求,以等待该数据节点恢复连接。进一步,当任意一个应用节点连接不上所述分布式数据库中的某个数据节点时,屏蔽掉该应用节点到该数据节点的连接。进一步,各个应用节点分属于不同IP。从上述方案可以看出,本专利技术的确定数据节点失效的方法中,当某一应用节点连接不上某个数据节点后,通过多个应用节点向该数据节点发出连接请求以确定是否能够连接该数据节点,进而确定该数据节点是否失效,由于各个应用节点分属于不同IP,进而可避免现有技术中通过同一个IP向数据节点发送同步请求时由于网络波动对该单一 IP造成的影响。本专利技术比现有技术更加准确的判断数据节点是因网络引起的暂时性失效,还是硬件原因引起的永久失效。【专利附图】【附图说明】图1为本专利技术的确定数据节点失效的方法流程图;图2为本专利技术实施例流程图。【具体实施方式】为了使本专利技术的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本专利技术作进一步详细说明。本专利技术的确定数据节点失效的方法用于分布式数据库,如图1所示,该方法包括:在访问所述分布式数据库的所有应用节点中,当任意一个应用节点连接不上所述分布式数据库中的某个数据节点时,向其它应用节点发出连接不上该数据节点的广播;其它应用节点收到所述广播后,向该数据节点发出连接请求,以确定是否能够连接该数据节点;当无法连接该数据节点的应用节点数量达到所设定的阈值时,确定该数据节点失效。其中,统计无法连接该数据节点的应用节点的数量是在一仲裁节点中进行。仲裁节点的选择是:在访问所述分布式数据库的所有应用节点中,任意选出的一个应用节点作为仲裁节点。所述仲裁节点统计无法连接该数据节点通过如下方法进行:在所述仲裁节点中设定一判定值,并将所述判定值初始化为O ;当所述其它应用节点向该数据节点发出连接请求后,均将是否能够连接该数据节点的信息发送给所述仲裁节点;所述仲裁节点接收所有应用节点发来的是否能够连接该数据节点的信息,且所述仲裁节点每收到一个应用节点发来的无法连接该数据节点的消息,便将所述判定值做一次加I操作;当所述仲裁节点接收完所有应用节点发来的是否能够连接该数据节点的信息后:若所述判定值达到所设定的阈值,则确定该数据节点失效;若所述判定值未达到所设定的阈值,则确定该数据节点有效。与现有技术不同的是,本专利技术的方法是当某一应用节点连接不上某个数据节点后,通过多个应用节点向该数据节点发出连接请求以确定是否能够连接该数据节点,进而确定该数据节点是否失效,各个应用节点分属于不同IP,进而可避免现有技术中通过同一个IP向数据节点发送同步请求时由于网络波动对该单一 IP造成的影响,进而比现有技术更加准确的判断数据节点是因网络引起的暂时性失效,还是硬件原因引起的永久失效。本专利技术的上述方法中,当确定该数据节点失效之后,还包本文档来自技高网
...
一种确定数据节点失效的方法

【技术保护点】
一种确定数据节点失效的方法,用于分布式数据库,该方法包括:在访问所述分布式数据库的所有应用节点中,当任意一个应用节点连接不上所述分布式数据库中的某个数据节点时,向其它应用节点发出连接不上该数据节点的广播;其它应用节点收到所述广播后,均向该数据节点发出连接请求,以确定是否能够连接该数据节点;当无法连接该数据节点的应用节点数量达到所设定的阈值时,确定该数据节点失效。

【技术特征摘要】

【专利技术属性】
技术研发人员:赵晓平唐超马丽伟秦波王锋
申请(专利权)人:北京京东尚科信息技术有限公司北京京东世纪贸易有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1