在无共享分布式数据库中快速检测和修复故障的系统和方法技术方案

技术编号:38380977 阅读:12 留言:0更新日期:2023-08-05 17:39
提供了一种无共享数据库系统,其中每个表的行被指派给“切片”,并且每个切片的多个副本(“复本”)跨多个节点的持久存储装置存储。从表的特定行读取数据的请求可以由存储该行所指派到的切片的复本的任何节点处置。对于每个切片,切片的单个复本被指定为“主复本”。所有DML操作都由具有目标行所指派到的切片的主复本的节点执行。然后将改变传播到同一切片的其它复本(“二级复本”)。)。)。

【技术实现步骤摘要】
【国外来华专利技术】在无共享分布式数据库中快速检测和修复故障的系统和方法
[0001]对相关申请的交叉引用、权益声明
[0002]本申请根据35U.S.C.
§
120要求作为于2020年10月14日提交的申请序列No.17/070,277的部分继续申请的权益,该申请No.17/070,277通过引用整体并入本文,就好像在本文完整阐述了一样。申请人特此撤销母申请或其审查历史中对权利要求范围所做的任何弃权声明,并告知USPTO本申请中的权利要求可以比母申请中的任何权利要求更广泛。


[0003]本专利技术涉及存储系统,并且更具体而言,涉及无共享数据库系统(shared

nothing database system)。

技术介绍

[0004]在多处理系统上运行的数据库通常分为两类:共享持久存储数据库和无共享数据库。共享持久存储数据库预期计算机系统中的所有持久存储设备对所有处理节点都是可见的。因此,共享持久存储数据库系统中的协调器进程可以将任何工作颗粒(work granule)指派给任何节点上的进程,而不管包含在该工作颗粒执行期间将被访问的数据的持久存储装置的位置。共享持久存储数据库可以在无共享和共享持久存储计算机系统两者上运行。为了在无共享计算机系统上运行共享持久存储数据库,可以向操作系统添加软件支持,或者可以提供附加的硬件以允许进程直接访问远程持久存储设备。
[0005]无共享数据库假设只有当数据被包含在与进程属于同一节点的持久存储装置中时,该进程才能访问该数据。因此,只有在要在工作颗粒中处理的数据驻留在与进程相同的节点中的持久存储装置中的情况下,无共享数据库中的协调器进程才能将工作颗粒指派给该进程。无共享数据库可以在共享持久存储装置和无共享多处理系统两者上运行。为了在共享持久存储机器上运行无共享数据库,可以提供一种机制来对数据库进行逻辑分区,并将每个分区的所有权指派给特定节点。
[0006]基于前述,显然期望提供一种对无共享数据库系统的哪个节点能够处理工作的限制较少的无共享数据库系统。例如,当任务正在读取存储在数据库系统中的特定数据项的特定版本时,期望提供如下无共享数据库系统,其中有多个节点能够执行该任务。能够执行同一任务的节点的数量越大,工作负载就越容易在可用节点之间平衡。此外,期望执行读取操作的节点能够读取截至指定的快照时间的数据。为了进一步提高性能,期望在不获得锁的情况下执行读取操作,并且即使在读取尚未提交的事务所触及的数据项时也不阻塞。
[0007]本节中描述的方法是可以采用的方法,但不一定是先前已经设想或采用的方法。因此,除非另有说明,否则不应仅由于将本部分中所述的任何方法包括在本部分中而认为本方法中的任何方法都有资格作为现有技术。另外,不应当假设本节中描述的任何方法仅仅因为它们被包括在本节中就已被充分理解、是例行或常规的。
附图说明
[0008]图中:
[0009]图1是根据实施例的分布式数据库系统的框图,图示了主机、数据库和表空间(table space)之间的关系;
[0010]图2是根据实施例的分布式数据库系统的框图,其中表的行被映射到切片(slice),并且为每个切片存储多个副本;
[0011]图3是图示根据实施例的切片的副本的内容的框图;
[0012]图4是图示根据实施例的两行R1和R2的时间顺序条目链(chronological entry chains)的框图;
[0013]图5是图示根据实施例的在条目被添加到时间顺序条目链的尾部之后行R1的时间顺序条目链的框图;
[0014]图6是图示根据实施例的在链中的增量日志条目(delta log entry)被应用于行堆(row heap)之后行R1的时间顺序条目链的框图;
[0015]图7是图示根据实施例的增量日志的循环缓冲器性质的框图;
[0016]图8是图示根据实施例的行堆条目的内容的框图;
[0017]图9图示了根据实施例的在数据库命令的语句的执行期间发送的主机间消息(inter

host message);
[0018]图10图示了根据实施例的在事务提交期间发送的主机间消息;
[0019]图11是可以被用作采用本文描述的技术的分布式数据库系统中的客户端或主机的计算机系统的框图;
[0020]图12是图示根据实施例的具有在六个主机上执行的两个引擎集群和一个控件集群(control cluster)的分布式数据库系统的框图;
[0021]图13是更详细地图示来自图12的主机的框图;
[0022]图14是图示根据实施例的当主机发生故障时在控件集群和主机之间发送的消息的框图;
[0023]图15是图示根据实施例的当主机发生故障时重新配置主机集群所采取的步骤的流程图;以及
[0024]图16是图示根据实施例的包括控件集群的分布式数据库系统的框图,其中所有主机能够通过两个不同的网络彼此通信。
具体实施方式
[0025]在下面的描述中,出于解释的目的,阐述了许多具体细节以便提供对本专利技术的透彻理解。然而,将清楚的是,可以在没有这些具体细节的情况下实践本专利技术。在其它情况下,以框图形式示出了众所周知的结构和设备,以避免不必要地混淆本专利技术。
[0026]总体概述
[0027]提供了一种无共享数据库系统,其中通过将每个表的行指派给“切片”并跨无共享数据库系统的多个节点的持久存储装置存储每个切片的多个副本(“复本”)来提高并行性和工作负载平衡。当用于表的数据以这种方式分布在无共享系统的节点之间时,用于从表的特定行读取数据的请求可以由存储该行被指派到的切片的复本的任何节点处置。
[0028]根据实施例,对于每个切片,切片的单个复本被指定为“主复本”。以表的特定行为目标的所有DML操作(例如,插入、删除、更新等)都由具有指派给该特定行的切片的主复本的节点执行。然后将DML操作所做的改变从主复本传播到同一切片的其它复本(“次级复本”)。
[0029]切片
[0030]如上面所提到的,“切片”是表的行被指派到的实体。可以以多种方式进行行到切片的指派,并且本文描述的技术不限于任何特定的行到切片指派技术。例如,表可以具有主键,并且每个切片都可以被指派有主键落在特定范围内的行。在这种实施例中,其主键是字母的表可以将其行指派给三个切片,其中第一切片包括其主键以A

K范围内的字母开头的行,第二切片包括其主键以L

T范围内的字母开头的行,而第三切片包括其主键以U

Z范围内的字母开头的行。
[0031]作为另一个示例,可以使用散列函数进行行到切片指派。例如,可以使用产生范围1

3内的散列值的散列函数来将行指派给三个切片。任何给定行被指派到的切片是根据在散列函数被应用于该行的主键时所产生的散列值确定的。
[0032]对于任何给定的表,其行被指派到的切片本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种方法,包括:在多个主机中的每个主机上,执行多个引擎实例中的一个或多个引擎实例;其中所述多个主机中的每个主机是计算设备;由所述多个引擎实例中的每个引擎实例管理对存储在持久存储装置上的数据的访问,该持久存储装置对于该引擎实例在其上执行的主机是本地的;在所述多个主机之间建立邻居关系,其中所述邻居关系形成有向图,所述有向图初始地包括所述多个主机中的所有主机;其中,在所述有向图内,每个主机具有一个或多个指定的邻居主机;由每个主机执行监视该主机的所述一个或多个指定的邻居主机的健康状况的邻居监视器;以及其中每个邻居监视器通过监视由所述一个或多个指定的邻居主机维护的计数器来监视所述一个或多个指定的邻居主机的健康状况;其中特定邻居监视器在所述多个主机中的特定主机上执行;其中每个主机上的所述一个或多个引擎实例负责改变该主机上的计数器。2.如权利要求1所述的方法,还包括:响应于所述特定邻居监视器确定特定邻居主机不健康:所述特定邻居监视器将所述特定邻居主机的邻居主机建立作为所述特定邻居监视器的新邻居主机,以及所述特定邻居监视器发起对所述新邻居主机的监视。3.如权利要求1所述的方法,其中,监视所述计数器包括确定所述计数器是否正在改变。4.如权利要求1所述的方法,其中,所述多个主机中的每个主机通过至少两个不同的网络连接到所述多个主机中的每个其他主机。5.如权利要求1所述的方法,还包括:在所述多个主机中的第一组主机上执行多个控制实例;其中每个控制实例在所述第一组主机中的不同主机上执行;其中所述多个控制实例维护指示所述多个主机之间的邻居关系的数据;响应于所述特定邻居监视器确定所述特定主机的所述一个或多个指定的邻居主机当中的特定邻居主机不健康:所述特定邻居监视器向所述多个控制实例中的控制实例传达所述特定邻居主机不健康。6.如权利要求5所述的方法,其中:所述多个控制实例包括:被指定为领导者控制实例的特定控制实例,以及一个或多个跟随者控制实例;所述方法还包括:所述领导者控制实例监视所述多个控制实例中的所有跟随者控制实例的健康状况;以及所有跟随者控制实例监视所述领导者控制实例的健康状况。
7.如权利要求6所述的方法,还包括:所述多个控制实例中的特定跟随者控制实例确定所述领导者控制实例不健康,以及响应于确定所述领导者控制实例不健康,所述特定跟随者控制实例发起从跟随者控制实例当中选举新的领导者控制实例。8.如权利要求6...

【专利技术属性】
技术研发人员:W
申请(专利权)人:甲骨文国际公司
类型:发明
国别省市:

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

1