当前位置: 首页 > 专利查询>诺宝公司专利>正文

分布式数据库中节点故障检测与解决制造技术

技术编号:30292271 阅读:25 留言:0更新日期:2021-10-09 22:11
本文描述了用于检测和解决分布式数据库系统中的故障的方法和系统。分布式数据库系统中的第一节点可以检测与分布式数据库系统中的至少一个其他节点的通信中断。这指示网络故障。响应于检测到该故障,第一节点开始故障解决协议。这调用邻居节点之间的相应可疑节点列表的协调广播。每个节点将其自己的可疑节点列表与其邻居的可疑节点列表进行比较,以确定哪些节点仍直接相互连接。每个节点确定这些直接连接的节点的最大组以及其是否在该组中。如果节点不在该组中,则使其自己发生故障以解决网络故障。络故障。络故障。

【技术实现步骤摘要】
【国外来华专利技术】分布式数据库中节点故障检测与解决
[0001]相关申请的交叉引用
[0002]本申请根据美国法典第35篇第119条(e)款要求2019年2月1日提交的题为“节点故障检测与解决”的美国申请号62/800,009的优先权权益,该申请的公开内容在此通过引用整体并入本文。

技术介绍

[0003]分布式数据库中的数据和元数据存储在相互通信的多个节点上。但是,节点之间有时会发生通信中断。例如,分布式数据库系统中的节点本身可能会处于不一致状态,从而发生崩溃或故障。在其他情况下,在分布式数据库系统内的节点上运行的虚拟机或进程可能崩溃或发生故障。在其他情况下,分布式数据库系统中的第一节点和第二节点之间的通信链路可能发生故障。例如,连接分布式数据库系统中的两个或多个节点的网络(例如,局域网、广域网、以太网等)可能发生故障,从而中断节点之间的通信。

技术实现思路

[0004]本文描述了分布式数据库系统。分布式数据库系统可以包括多个节点。多个节点中的每个节点可以包括对应的处理器和对应的存储器。多个节点中的每个节点可以与多个节点中的每个其他节点连接。多个节点中的第一节点处的处理器可以被配置为通过以下方式解决分布式数据库系统中的故障:识别多个节点中的可疑节点,向多个节点中的邻居节点广播第一可疑节点列表,从至少一个其他邻居节点接收第二可疑节点列表,基于连接信息确定第一节点是否在分布式数据库的获胜全连接组件中,响应于确定第一节点在多个节点的获胜全连接组件中,继续操作第一节点,并且响应于确定第一节点不在多个节点的获胜全连接组件中,使第一节点发生故障,从而解决故障。可疑节点可以是多个节点中由于分布式数据库系统故障而不再连接到第一节点的节点。第一可疑节点列表可以包括可疑节点。邻居节点可以是多个节点中在网络故障后仍然直接连接到第一节点的节点。获胜全连接组件可以包括多个节点中一半以上的节点,并且获胜全连接组件中的每个节点直接连接到获胜全连接组件中的每个其他节点。
[0005]本文描述了一种用于解决分布式数据库中的故障的方法。分布式数据库可以包括多个节点,多个节点中的每个节点可以直接连接到多个节点中的每个其他节点。该方法可以包括在多个节点中的第一节点处:检测与多个节点中的第二节点的通信中断,响应于检测到中断,在多个节点中的邻居节点之间发起相应可疑节点列表的协调广播,基于相应可疑节点列表确定连接信息,以及至少部分地基于连接信息解决故障。邻居节点可以是多个节点中仍然直接连接到第一节点的节点。第一节点的可疑节点列表包括第二节点。
[0006]本文描述了一种用于解决分布式数据库中的故障的方法。分布式数据库可以包括多个节点,多个节点中的每个节点可以连接到多个节点中的每个其他节点。该方法可以包括响应于检测到故障:在多个节点中的第一节点处:确定第一节点是否与多个节点中的至少一半节点连接,响应于确定第一节点直接与多个节点中少于一半的节点连接,使第一节
点发生故障以至少部分地解决故障,响应于确定第一节点直接与多个节点中的至少一半节点连接,向多个节点中的邻居节点广播第一可疑节点列表,从邻居节点中的至少一个邻居节点接收第二可疑节点列表,确定第一可疑节点列表是否与第二可疑节点列表匹配,响应于确定第一可疑节点列表与第二可疑节点列表匹配,在故障的至少部分解决中保持第一节点运行,响应于确定第一可疑节点列表与第二可疑节点列表不匹配,基于第一可疑节点列表和第二可疑节点列表向邻居节点广播第一更新可疑节点列表,从邻居节点中的至少一个邻居节点接收至少一个第二更新可疑节点列表,至少部分地基于第一更新可疑节点列表和第二更新可疑节点列表确定多个节点的连接信息,基于连接信息确定分布式数据库的获胜全连接组件,确定第一节点是否在获胜全连接组件中,响应于确定第一节点在多个节点的获胜全连接组件中,继续操作第一节点以至少部分地解决故障,以及响应于确定第一节点不在多个节点的获胜全连接组件中,使第一节点发生故障以至少部分地解决故障。第一可疑节点列表可以包括不直接连接到第一节点的节点。邻居节点可以是在故障后仍直接连接到第一节点的节点。获胜全连接组件包括多个节点中一半以上的节点,并且获胜全连接组件节点中的每个节点直接连接到获胜全连接组件节点中的每个其他节点。
[0007]下面更详细地讨论前述概念和附加概念的所有组合(假设此类概念并不相互矛盾),其被认为是本文公开的专利技术主题的一部分。特别地,出现在本公开的结尾处的要求保护的主题的所有组合是本文公开的专利技术主题的一部分。在本文中使用的并且也可能出现在通过引用并入的任何公开中的术语应被赋予与本文公开的特定概念最一致的含义。
附图说明
[0008]本领域技术人员将理解,附图主要是出于说明性目的,并且无意限制本文所述的专利技术主题的范围。这些附图不一定是按比例绘制的;在某些情况下,本文公开的专利技术主题的各个方面可能在附图中被夸大或放大示出,以促进对不同特征的理解。在附图中,相似的附图标记通常指相似的特征(例如,功能相似和/或结构相似的元件)。
[0009]图1示出了解决网络故障以恢复分布式数据库中的节点之间的完整连接的过程。
[0010]图2示出了分布式数据库系统中网络故障的典型情况的示例,其中网络分区事件将分布式数据库系统分成两个不相交的全连接节点组。
[0011]图3示出了具有部分连接的三个节点的示例分布式数据库系统,该部分连接可以由图1所示的过程解决。
[0012]图4示出了具有两个链路故障的五个节点的示例分布式数据库系统,所述链路故障可以由图1所示的过程解决。
[0013]图5示出了具有四个链路故障的五个节点的示例分布式数据库系统,所述链路故障可以由图1所示的过程解决。
[0014]图6示出了图5中所示的部分连接情况的示例。
[0015]图7示出了具有三个链路故障的五个节点的示例分布式数据库系统,所述链路故障可以由图1所示的过程解决。
[0016]图8示出了具有五个链路故障的五个节点的示例分布式数据库系统,所述链路故障可以由图1所示的过程解决。
[0017]图9示出了具有单向链路故障的特殊部分连接的示例情况,所述链路故障可以由
图1所示的过程解决。
[0018]图10示出了成员资格改变期间的网络故障的示例情况,所述故障可以由图1所示的过程解决。
[0019]图11示出了图1中所示的过程的示例。
[0020]图12是示出解决网络故障的扩展过程的流程图。
[0021]图13示出了当网络分区将新节点和条目节点与分布式数据库系统中的其余节点分开时分布式数据库系统中的成员资格改变。
[0022]图14是当网络分区将新节点和条目节点与分布式数据库系统中的其余节点分开时图13中场景的变体。
[0023]图15示出了当网络分区将新节点、条目节点和一些对等点与分布式数据库系统中的其余对等点分开时分布式数据库系统中的成员资格改变。
[0024]图16示出了当网络分区将条目节点与分布式数据库系统中的其余节点分开时分布式数据库系统中的成员资格改变。...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种解决分布式数据库中的故障的方法,所述分布式数据库包括多个节点,所述多个节点中的每个节点直接连接到所述多个节点中的每个其他节点,所述方法包括响应于检测到所述故障:在所述多个节点中的第一节点处:识别所述多个节点中的可疑节点,所述可疑节点为所述多个节点中因所述故障而不再连接到所述第一节点的节点;向所述多个节点中的邻居节点广播第一可疑节点列表,所述第一可疑节点列表包括所述可疑节点,所述邻居节点为所述多个节点中在所述故障后仍直接连接到所述第一节点的节点;从所述邻居节点中的至少一个邻居节点接收第二可疑节点列表;至少部分地基于所述第一可疑节点列表和所述第二可疑节点列表确定所述多个节点的连接信息;基于所述连接信息确定所述第一节点是否在所述分布式数据库的获胜全连接组件中,其中所述获胜全连接组件包括所述多个节点中一半以上的所述节点,并且所述获胜全连接组件节点中的每个节点直接连接到所述获胜全连接组件节点中的每个其他节点;响应于确定所述第一节点在所述多个节点的所述获胜全连接组件中,继续操作所述第一节点;以及响应于确定所述第一节点不在所述多个节点的所述获胜全连接组件中,使所述第一节点发生故障以解决所述故障。2.如权利要求1所述的方法,其中广播所述第一可疑节点列表包括广播协议迭代编号,所述协议迭代遍号指示由所述第一节点调用的所述方法的迭代。3.如权利要求2所述的方法,其还包括:将所述协议迭代编号与通过所述第二可疑节点列表接收到的协议迭代编号进行比较。4.如权利要求2所述的方法,其还包括:将所述协议迭代编号序列化为主目录的一部分,其中所述主目录包括所述多个节点中的所述节点的列表。5.如权利要求1所述的方法,其中确定所述连接信息还包括在所述第一节点处:至少部分地基于所述连接信息确定连接图;以及从所述连接图中识别所述获胜全连接组件。6.如权利要求5所述的方法,其中识别所述获胜全连接组件包括:基于所述获胜全连接组件的大小和所述多个节点的大小确定所述获胜全连接组件。7.如权利要求1所述的方法,其中确定所述第一节点是否在所述获胜全连接组件中包括在所述第一节点处基于所述连接信息识别所述获胜全连接组件。8.如权利要求7所述的方法,其中识别所述获胜全连接组件包括:基于所述连接信息确定所述分布式数据库的第一全连接组件,所述第一全连接组件中的每个节点直接连接到所述第一全连接组件中的每个其他节点;基于所述连接信息确定所述分布式数据库的第二全连接组件,所述第二全连接组件与所述第一全连接组件不同,所述第二全连接组件中的每个节点直接连接到所述第二全连接组件中的每个其他节点;
确定所述第一全连接组件包括(i)比所述第二全连接组件更多的节点以及(ii)所述多个节点中的一半以上的所述节点;以及选择所述第一全连接组件作为所述获胜全连接组件。9.如权利要求7所述的方法,其中识别所述获胜全连接组件包括:基于所述连接信息确定所述分布式数据库的第一全连接组件,所述第一全连接组件中的每个节点直接连接到所述第一全连接组件中的每个其他节点;基于所述连接信息确定所述分布式数据库的第二全连接组件,所述第二全连接组件与所述第一全连接组件不同,所述第二全连接组件中的每个节点直接连接到所述第二全连接组件中的每个其他节点;确定所述第一全连接组件包括(i)与所述第二全连接组件相同数量的节点以及(ii)所述多个节点中的一半以上的所述节点;以及基于所述第一全连接组件和所述第二全连接组件中的所述节点的唯一标识符,选择所述第一全连接组件作为所述获胜全连接组件。10.如权利要求1所述的方法,其还包括:将所述第二可疑节点列表从所述第一节点传输到至少一个邻居节点。11.如权利要求1所述的方法,其还包括:至少部分地基于所述第二可疑节点列表更新所述第一可疑节点列表;以及从所述第一节点向所述邻居节点广播所更新的第一可疑节点列表。12.如权利要求1所述的方法,其中所述第一节点将所述多个节点中的少于一半的节点识别为可疑节点。13.如权利要求1所述的方法,其还包括:在所述多个节点中的第三节点处将所述多个节点中的一半以上的节点识别为可疑节点;以及使所述第三节点发生故障以解决所述故障。14.如权利要求1所述的方法,其还包括:响应于检测到所述故障,使尝试加入所述多个节点的第三节点发生故障。15.如权利要求1所述的方法,其中所述故障为第一故障,所述可疑节点为第一可疑节点,并且所述方法还包括在所述多个节点中的第三节点处:检测所述分布式数据库中的第二故障;识别所述多个节点中的第二可疑节点,所述第二可疑节点为所述多个节点中因所述第二故障而不再连接到所述第三节点的节点;向所述第一节点广播第三可疑节点列表;以及由所述第一节点重新开始所述方法。16.一种用于解决分布式数据库中的故障的方法,所述分布式数据库包括多个节点,所述多个节点中的每个节点直接连接到所述多个节点中的每个其他节点,所述方法包括:在所述多个节点中的第一节点处:检测与所述多个节点中的第二节点的通信中断;响应于检测到所述中断,在所述多个节点中的邻居节点之间发起相应可疑节点列表的协调广播,所述邻居节点为所述多个节点中仍直接连接到所述第一节点的节点,所述第一
节点的所述可疑节点列表包括所述第二节点;基于所述相应可疑节点列表确定连接信息;以及至少部分地基于所述连接信息解决所述故障。17.如权利要求16所述的方法,其还包括在每个邻居节点处:将所述邻居节点的可疑节点列表与来自至少一个其他邻居节点的可疑节点列表进行比较;以及至少部分地基于所述邻居节点的可疑节点列表与来自所述至少一个其他邻居节点的所述可疑节点列表的所述比较来确定所述连接信息的至少一部分。18.如权利要求16所述的方法,其还包括:在所述邻居节点中的每个邻居节点处,至少部分地基于所述连接信息准备连接图。19.如权利要求18所述的方法,其中至少部分地基于所述连接图使所述第一节点自己发生故障。20.如权利要求18所述的方法,其中所述协调广播包括由所述第一节点广播协议迭代编号,所述协议迭代编号指示所述第一节点调用的用于检测所述故障的故障解决协议。21.一种用于解决分布式数据库中的故障的方法,所述分布式数据库包括多个节点,所述多个节点中的每个节点连接...

【专利技术属性】
技术研发人员:S
申请(专利权)人:诺宝公司
类型:发明
国别省市:

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

1