【技术实现步骤摘要】
【国外来华专利技术】横向扩展数据库中具有快照隔离的多语句交互式事务
[0001]对相关申请的交叉引用、利益声明
[0002]本申请根据35U.S.C.
§
120要求作为2020年10月14日提交的申请序列No.17/070,277的部分继续的利益,该申请的全部内容通过引用并入本文,就如同在本文完全阐述一样。申请人特此撤销母申请中的权利要求范围或其审查历史中的任何免责声明,并告知美国专利商标局(USPTO)本申请中的声明可能比母申请中的任何声明更广泛。
[0003]本专利技术涉及存储系统,并且更具体而言,涉及无共享(shared
‑
nothing)数据库系统。
技术介绍
[0004]在多处理系统上运行的数据库通常分为两类:共享持久性存储数据库和无共享数据库。共享持久性存储数据库预期计算机系统中的所有持久性存储设备对所有处理节点都是可见的。因此,共享持久性存储数据库系统中的协调器进程可以将任何工作颗粒(work granule)指派给任何节点上的进程,而不管包含将在工作颗粒的执行期间访问的数据的持久性存储装置的位置。共享持久性存储数据库可以在无共享和共享持久性存储计算机系统两者上运行。为了在无共享计算机系统上运行共享持久性存储数据库,可以向操作系统添加软件支持,或者可以提供附加的硬件以允许进程直接访问远程持久性存储设备。
[0005]无共享数据库假设只有当数据被包含在与进程属于同一节点的持久性存储装置中时,进程才能访问数据。因此,如果要在工作颗粒中处理的数据驻留在与进程相同的节点中 ...
【技术保护点】
【技术特征摘要】
【国外来华专利技术】1.一种方法,包括:将切片的多个副本存储在属于分布式数据库系统的一组主机中;其中所述多个副本至少包括:驻留在所述一组主机中的第一主机本地的持久性存储装置上的主副本;以及驻留在所述一组主机中的第二主机本地的持久性存储装置上的辅副本;执行事务,所述事务执行对所述切片中的特定数据项的更新;使用协调引擎实例来协调所述事务的执行;其中,在所述事务的执行期间,协调引擎实例使得:第一主机将所述更新存储在主副本中;以及第二主机将所述更新存储在辅副本中;使得所述事务进入准备状态,包括:协调引擎实例存储指示所述事务处于准备状态的数据;以及协调引擎实例向第二主机发送准备消息;响应于所述准备消息,第二主机存储指示所述事务处于准备状态的数据并确定对辅副本的更新的准备时间戳;当所述事务处于准备状态时,第二主机接收读取截至特定快照时间的特定数据项的读取请求;如果特定快照时间小于所述更新的准备时间戳,则第二主机允许读取请求读取在对辅副本的更新之前存在的特定数据项的更新前版本;如果特定快照时间大于准备时间戳,则:第二主机向协调引擎实例发送增加时钟消息,以使协调引擎实例使用的第一逻辑时钟被设置为与特定快照时间至少一样高的更新值;以及在发送增加时钟消息之后,第二主机允许读取请求读取特定数据项的更新前版本;以及当所述事务提交时,为所述事务指派与更新值至少一样高的提交时间。2.如权利要求1所述的方法,其中:第二主机具有本地逻辑时钟;并且确定所述更新的准备时间戳包括选择明显高于本地逻辑时钟的当前值的准备时间戳,以增加第二主机在所述事务的准备状态期间接收的任何读取操作将被指派小于准备时间戳的快照时间的可能性。3.如权利要求1所述的方法,其中,如果特定快照时间大于准备时间戳,则第二主机仅在接收到增加时钟消息已被成功处理的确认之后才允许读取请求读取特定数据项的更新前版本。4.如权利要求1所述的方法,其中使协调引擎实例使用的第一逻辑时钟被设置为与特定快照时间至少一样高的更新值包括:将所述事务的全局准备时间改变为所述更新值;以及当提交所述事务时,将协调引擎实例使用的第一逻辑时钟设置为与全局准备时间至少一样高的值。5.一种方法,包括:将第一切片的第一多个副本存储在属于分布式数据库系统的第一组主机中;
其中所述第一多个副本至少包括:驻留在第一组主机中的第一主机本地的持久性存储装置上的第一主副本;以及驻留在第一组主机中的第二主机本地的持久性存储装置上的第一辅副本;其中第二主机与第一主机不同;将第二切片的第二多个副本存储在属于分布式数据库系统的第二组主机中;其中所述第二多个副本至少包括:驻留在第二组主机中的第三主机本地的持久性存储装置上的第二主副本;以及驻留在第二组主机中的第四主机本地的持久性存储装置上的第二辅副本;其中第四主机与第三主机不同;执行事务,所述事务:执行对第一切片中的第一数据项的第一版本的第一更新;以及执行对第二切片中的第二数据项的第一版本的第二更新;其中执行所述事务包括:第一主机将第一更新存储在第一主副本中;第一主机使第二主机将第一更新存储在第二主副本中;第三主机将第二更新存储在第二主副本中;以及第三主机使第四主机将第二更新存储在第二辅副本中。6.如权利要求5所述的方法,其中:所述事务由客户端应用呈递给第一主机;该方法还包括,在将事务呈递给第一主机之前,客户端应用确定第一切片还是第二切片将成为该事务的控制切片;以及在确定第一切片将成为控制切片并且第一主机托管第一切片的第一主副本后,由客户端应用将所述事务呈递给第一主机。7.如权利要求6所述的方法,其中第一切片基于以下至少一项被确定为控制切片:所述事务在第一切片上比在第二切片上执行更多的工作;第一切片本地的数据量;所述事务最先触及第一切片;或者相对于所述事务触及的切片,第一切片有资格是最可靠的切片。8.如权利要求6所述的方法,还包括通过第一主机向第三主机发送DML片段,第一主机使第三主机将第二更新存储在第二主副本中,所述DML片段在由第三主机执行时使第三主机将第二更新存储在第二主副本中。9.如权利要求6所述的方法,还包括基于第二主机具有被选为控制切片的切片的辅副本...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。