基于MVCC的数据库系统的异步缓存一致性技术方案

技术编号:27391711 阅读:34 留言:0更新日期:2021-02-21 14:00
一种数据库系统包括持久性存储设备、日志节点和多个数据库节点,所述日志节点包括存储器和处理器。所述数据库节点包括用于存储数据库实例的缓存存储器和用于通过向所述日志节点发送快照请求来启动数据库事务的处理器,所述快照请求包括所述缓存存储器中被替换或新加载的页面的列表。所述日志节点处理器用于向所述数据库节点发送快照响应,所述快照响应包括所述数据库的快照和所述数据库实例的已更改页面的列表。所述数据库节点处理器用于根据所述快照响应更新所述缓存存储器中的所述页面的状态并执行所述数据库事务。面的状态并执行所述数据库事务。面的状态并执行所述数据库事务。

【技术实现步骤摘要】
【国外来华专利技术】基于MVCC的数据库系统的异步缓存一致性
[0001]相关申请案的交叉引用
[0002]本申请要求于2018年7月27日提交的、申请号为16/047,458、专利技术名称为“基于MVCC的数据库系统的异步缓存一致性(Asynchronous Cache Coherency for MVCC Based Database Systems)”的美国非临时专利申请的优先权和利益,其通过引用结合在本申请中。


[0003]本公开涉及多个数据库实例访问共享存储器的分布式数据库系统,尤其涉及在多个数据库实例之间维护数据的正确性。

技术介绍

[0004]分布式数据库是指由计算系统中的多个实体访问的数据库(例如,云数据库)。在分布式数据库系统中,该数据库的多个实例或版本由单独的实体或主机维护。允许多个数据库实例访问共享数据。这样,当任何一个数据库实例发生故障时,其它实例仍然可以使用该数据库。当允许多个数据库实例访问所述共享数据时,这些实例需要维护缓存(或缓冲池)一致性,否则可能读取过时的数据,并导致多个数据库版本之间的数据不一致。
[0005]在传统的分布式数据库系统中,数据库实例之间传递消息以同步数据库并维护数据库一致性。当页面加载到一个数据库实例的本地缓冲池中时,与缓存相关的信息广播到全局通信中的所有其它数据库实例。当修改页面时,将广播另一全局通信,以使该页面在其它数据库实例中的副本失效。广播一致性信息会带来相当大的网络开销,从而导致对数据库访问的瓶颈。这种网络开销会降低访问所述数据库的带宽。
专利
技术实现思路

[0006]现在描述各种示例,简单地介绍一些概念,在具体实施方式中会进一步描述这些概念。
技术实现思路
部分并非旨在确定请求保护的主题的关键或必要特征,也并非旨在用于限制请求保护的主题的范围。
[0007]根据本公开的一个方面,提供了一种数据库系统,所述数据库系统包括持久性存储设备、日志节点和多个数据库节点,所述日志节点包括存储器和处理器。所述数据库节点包括用于存储数据库实例的缓存存储器和用于通过向所述日志节点发送快照请求来启动数据库事务的处理器,所述快照请求包括所述缓存存储器中被替换或新加载的页面的列表。所述日志节点处理器用于向所述数据库节点发送快照响应,所述快照响应包括所述数据库的快照和所述数据库实例的已更改页面的列表。所述数据库节点处理器用于根据所述快照响应更新缓存存储器中的所述页面的状态并执行所述数据库事务。
[0008]可选地,在前述方面中,所述方面的另一实现方式提供了一种数据库节点处理器,所述数据库节点处理器用于:当从所述持久性存储设备加载所述页面时,将页面状态更改为半有效并为所述页面分配有效日志快照号(log snapshot number,LSN);将具有所述半
有效页面状态和所述页面的有效LSN的页面的列表包括在所述快照请求中;所述实现方式还可选地包括日志节点处理器,所述日志节点处理器用于:通过将所述页面有效LSN与所述页面的最新LSN进行比较,识别对所述数据库节点无效的页面;将所识别的无效页面包括在所述快照响应中。
[0009]可选地,在前述方面中,所述方面的另一实现方式提供了一种日志节点处理器,所述日志节点处理器用于发送所述快照响应中的所述有效LSN。
[0010]可选地,在任一前述方面中,所述方面的另一实现方式提供了一种数据库节点处理器,所述数据库节点处理器用于:当从所述持久性存储设备加载所述页面时,将页面状态更改为半有效;如果所述页面在所述已更改页面的列表中被指示为已更改,则将页面状态从半有效更改为无效;如果所述页面为新加载的页面,并且所述页面在所述已更改页面列表中未被指示为已更改,则将所述页面状态从半有效更改为有效。
[0011]可选地,在任一前述方面中,所述方面的另一实现方式提供了一种数据库节点处理器,所述数据库节点处理器用于:如果所述页面在所述已更改页面的列表中被指示为已更改,则将页面状态从有效或半有效更改为无效;当从所述持久性存储设备加载所述页面时,将页面状态从无效更改为半有效;
[0012]可选地,在任一前述方面中,所述方面的另一实现方式提供了一种日志节点处理器,所述日志节点处理器用于:将已执行数据库事务的记录从所述日志节点发送至持久性存储设备;当所述日志节点将在所述启动的数据库事务之前执行的数据库事务的记录发送至所述持久性存储设备时,发送所述快照响应。
[0013]可选地,在前述方面中,所述方面的另一实现方式提供了一种持久性存储设备,所述持久性存储设备用于使用所述已执行的数据库事务的所述记录生成所述数据库快照。
[0014]可选地,在任一前述方面中,所述方面的另一实现方式提供了一种日志节点存储器,所述日志节点存储器用于存储所述数据库节点的缓存页面的哈希表并响应所述快照请求更新所述哈希表。
[0015]根据本公开的另一方面,提供了一种在包含多个数据库实例的系统中实现数据库一致性的计算机实现的方法。所述方法包括:通过从数据库节点向日志节点发送快照请求来启动数据库事务,所述快照请求包括所述数据库节点的缓存存储器中被替换或新加载的页面的列表;从所述日志节点接收所述数据库节点处的快照响应,所述快照响应包括所述数据库的快照和所述数据库实例的已更改页面的列表;根据所述快照响应更新所述数据库节点的缓存存储器中的所述页面的状态并执行所述数据库事务。
[0016]可选地,在前述方面中,所述方面的另一实现方式规定:当所述页面是从持久性存储加载时,在所述数据库节点中将页面状态更改为半有效并为所述页面分配有效日志快照号(log snapshot number,LSN);将具有所述半有效页面状态和所述页面的所述有效LSN的页面的列表包含在所述快照请求中;在所述数据库节点处接收所述快照响应中识别的无效页面和所述有效LSN。
[0017]可选地,在前述方面中,所述方面的另一实现方式规定:所述日志节点通过将所述页面有效LSN与所述页面的最新LSN进行比较,识别对所述数据库节点无效的页面。
[0018]可选地,在任一前述方面中,所述方面的另一实现方式规定:当所述页面从所述持久性存储加载时,将页面状态更改为半有效;如果所述页面在所述已更改页面的列表中被
指示为已更改,则将页面状态从半有效更改为无效;如果所述页面为所述数据库节点中新加载的页面,并且所述页面在所述已更改页面列表中未被指示为已更改,则将所述页面状态从半有效更改为有效。
[0019]可选地,在任一前述方面中,所述方面的另一实现方式规定:如果所述页面在所述已更改页面的列表中被指示为已更改,则将页面状态从有效或半有效更改为无效;当所述页面从持久性存储加载时,将页面状态从无效更改为半有效。
[0020]可选地,在任一前述方面中,所述方面的另一实现方式规定:将所述启动的数据库事务之前提交的数据库事务的记录从所述日志节点发送至持久性存储设备;在所述记录已发送时,发送所述快照响应。
[0021]可选地,在任一前述方面中,所述方面的另一实现方式规定:所本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种数据库系统,其特征在于,包括:持久性存储设备;日志节点,所述日志节点包括存储器和处理器;多个数据库节点,其中,数据库节点包括用于存储数据库实例的缓存存储器和用于通过向所述日志节点发送快照请求来启动数据库事务的处理器,所述快照请求包括所述缓存存储器中被替换或新加载的页面的列表;所述日志节点处理器用于向所述数据库节点发送快照响应,所述快照响应包括所述数据库的快照和所述数据库实例的已更改页面的列表;所述数据库节点处理器用于根据所述快照响应更新缓存存储器中的所述页面的状态并执行所述数据库事务。2.根据权利要求1所述的数据库系统,其特征在于,所述数据库节点处理器用于:当从所述持久性存储设备加载所述页面时,将页面状态更改为半有效并为所述页面分配有效日志快照号(log snapshot number,LSN);将具有所述半有效页面状态和所述页面的有效LSN的页面的列表包括在所述快照请求中;所述日志节点处理器用于:通过将所述页面有效LSN与所述页面的最新LSN进行比较,识别对所述数据库节点无效的页面;将所识别的无效页面包括在所述快照响应中。3.根据权利要求2所述的数据库系统,其特征在于,所述日志节点处理器用于发送所述快照响应中的所述有效LSN。4.根据权利要求1至3中任一项所述的数据库系统,其特征在于,所述数据库节点处理器用于:当从所述持久性存储设备加载所述页面时,将页面状态更改为半有效;如果所述页面在所述已更改页面的列表中被指示为已更改,则将页面状态从半有效更改为无效;如果所述页面为新加载的页面,并且所述页面在所述已更改页面列表中未被指示为已更改,则将所述页面状态从半有效更改为有效。5.根据权利要求4所述的数据库系统,其特征在于,所述数据库节点处理器用于:如果所述页面在所述已更改页面的列表中被指示为已更改,则将页面状态从有效或半有效更改为无效;当从所述持久性存储设备加载所述页面时,将页面状态从无效更改为半有效。6.根据权利要求1至5中任一项所述的数据库系统,其特征在于,所述日志节点处理器用于:将已执行数据库事务的记录从所述日志节点发送至持久性存储设备;当所述日志节点将在所述启动的数据库事务之前执行的数据库事务的记录发送至所述持久性存储设备时,发送所述快照响应。7.根据权利要求6所述的数据库系统,其特征在于,所述持久性存储设备用于使用所述已执行的数据库事务的所述记录生成所述数据库快照。8.根据权利要求1至7中任一项所述的数据库系统,其特征在于,所述日志节点存储器
用于存储所述数据库节点的缓存页面的哈希表并响应所述快照请求更新所述哈希表。9.一种在包含多个数据库实例的系统中实现数据库一致性的计算机实现的方法,其特征在于,所述方法包括:通过从数据库节点向日志节点发送快照请求来启动数据库事务,所述快照请求包括所述数据库节点的缓存存储器中被替换或新加载的页面的列表;从所述日志节点接收所述数据库节点处的快照响应,所述快照响应包括所述数据库的快照和所述数据库实例的已更改页面的列表;根据所述快照响应更新所述数据库节点的缓存存储器中的所述页面的状态并执行所述数据库事务。10.根据权利要求9所述的方法,其特征在于,所述方法包括:当所述页面是从持久性存储加载时,在所述数据库节点中将页面状态...

【专利技术属性】
技术研发人员:蔡乐陈建军孙扬杜小林陈军陈宇裴春峰
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1