一种数据库更新方法、装置及系统制造方法及图纸

技术编号:38877785 阅读:26 留言:0更新日期:2023-09-22 14:10
本申请公开了一种数据库更新方法、装置及系统,涉及存储技术领域,该方法能够保证生成数据库中的数据页时不会发生错误。该方法应用于存储系统中的第一主机,该存储系统包括存储节点和用于访问该存储节点的多个主机,第一主机是该多个主机中的一个。该方法包括:获取第一版本页。针对第一版本页生成第二日志记录。向存储节点发送第二日志记录和第二日志记录的依赖指示,该依赖指示用于确定第二日志记录依赖于第一日志记录。其中,第一版本页是基于第一日志记录生成的数据页,第一日志记录用于记录对数据库中第一数据页的更新,第二日志记录用于记录对第一版本页的更新。录用于记录对第一版本页的更新。录用于记录对第一版本页的更新。

【技术实现步骤摘要】
一种数据库更新方法、装置及系统


[0001]本申请涉及存储
,尤其涉及一种数据库更新方法、装置及系统。

技术介绍

[0002]相对本地数据库服务而言,具有低成本和高扩展性的云数据库服务的应用越来越普遍。云数据库通常通过存算分离的存储系统实现。在存算分离的存储系统中,包括用于接收并处理用户读写数据库请求的计算节点(也称为主机或主机节点),以及包括用于存储数据库的数据页和/或日志记录(redo log record)的存储节点。其中,日志记录一般由主机节点处理用户的写请求后写入存储节点。应理解,一个日志记录用于记录对数据库中一个数据页的一次更新(例如修改数据页的内容)。
[0003]对于数据库中的任一个数据页而言,存储节点通常存储有对该数据页进行多次更新后记录的多个日志记录。该多个日志记录即可用于获得该数据页最新更新后的数据页版本。
[0004]当实现云数据库的存储系统中存在多个主机节点时,该多个主机节点均可以向存储节点写入用于记录更新数据库中数据页的日志记录。这种情况下,存储节点在基于多个主机写入的多个日志记录生成某个数据页本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种数据库更新方法,其特征在于,应用于存储系统中的第一主机,所述存储系统包括存储节点和用于访问所述存储节点的多个主机,所述第一主机是所述多个主机中的一个主机,所述存储节点用于存储数据库的日志记录,所述日志记录用于记录对所述数据库中数据页的更新;所述方法包括:获取第一版本页,所述第一版本页是基于第一日志记录生成的数据页,所述第一日志记录用于记录对所述数据库中第一数据页的更新;针对所述第一版本页生成第二日志记录,所述第二日志记录用于记录对所述第一版本页的更新;向所述存储节点发送所述第二日志记录和所述第二日志记录的依赖指示,所述依赖指示用于确定所述第二日志记录依赖于所述第一日志记录。2.根据权利要求1所述的方法,其特征在于,所述第一日志记录的日志序列号LSN为第一LSN,所述依赖指示包括所述第一LSN。3.根据权利要求1或2所述的方法,其特征在于,所述向所述存储节点发送所述第二日志记录和所述第二日志记录的依赖指示,包括:向所述存储节点发送第一报文,所述第一报文包括所述第二日志记录和所述第二日志记录的依赖指示。4.根据权利要求3所述的方法,其特征在于,所述第二日志记录包括所述依赖指示。5.根据权利要求3所述的方法,其特征在于,所述依赖指示具体用于确定所述第一报文中包括所述第二日志记录在内的至少两个日志记录依赖于所述第一日志记录。6.根据权利要求5所述的方法,其特征在于,所述至少两个日志记录均为用于记录对所述第一数据页更新的日志记录,所述第二日志记录是所述至少两个日志记录中第一个用于记录对所述第一数据页更新的日志记录。7.根据权利要求5所述的方法,其特征在于,所述依赖指示还包括第二主机的标识,所述至少两个日志记录所依赖的日志记录均由所述第二主机生成;其中,所述第二主机是所述存储系统中除所述第一主机外的任一个主机,所述第一日志记录是所述至少两个日志记录依赖的日志记录中,用于最晚记录所述第二主机对数据库中数据页更新的日志记录。8.根据权利要求1

7中任一项所述的方法,其特征在于,所述获取第一版本页包括:从所述存储节点读取所述第一版本页;或者,从所述多个主机中除所述第一主机外的其他主机获取所述第一版本页。9.根据权利要求1

8中任一项所述的方法,其特征在于,所述更新包括修改、增加或删除中的至少一种。10.一种数据库更新方法,其特征在于,应用于存储系统中的存储节点,所述存储系统还包括用于访问所述存储节点的多个主机,所述存储节点用于存储目标数据库的日志记录,一个日志记录用于记录对所述目标数据库中一个数据页的一次更新;所述方法包括:根据目标日志记录的依赖指示,确定用于记录早于所述目标日志记录对所述目标数据库中目标数据页更新的全部日志记录均已被接收;其中,所述目标日志记录为所述存储节点从所述多个主机中的任一个主机接收到的日志记录,所述目标日志记录用于记录第m次对所述目标数据页的更新,所述m是大于1的整数,所述目标日志记录的依赖指示用于确定所述目标日志记录依赖的日志记录;
根据所述目标日志记录和所述全部日志记录,生成目标版本页,所述目标版本页是所述目标数据页第m次更新后得到的数据页。11.根据权利要求10所述的方法,其特征在于,所述根据目标日志记录的依赖指示,确定用于记录早于所述目标日志记录对所述目标数据页更新的全部日志记录均已被接收,包括:根据所述目标日志记录的依赖指示,确定所述目标日志记录依赖的第一日志记录已被接收,所述第一日志记录用于记录第m

1次对所述目标数据页的更新;根据所述第一日志记录的依赖指示,确定用于记录早于所述第一日志记录对所述目标数据页更新的全部日志记录已被接收。12.根据权利要求10或11所述的方法,其特征在于,在所述根据目标日志记录的依赖指示,确定用于记录早于所述目标日志记录对所述目标数据页更新的全部日志记录均已被接收之前,所述方法还包括:接收所述多个主机中的第一主机发送的读请求;根据所述读请求确定所述目标日志记录。13.根据权利要求10或11所述的方法,其特征在于,所述方法还包括:将所述目标版本页确定为所述目标数据页的初始日志记录。14.根据权利要求10

13中任一项所述的方法,其特征在于,所述更新包括修改、增加或删除中的至少一种。15.根据权利要求10

14中任一项所述的方法,其特征在于,所述目标日志记录的依赖指示包括所述目标日志记录依赖的日志记录的日志序列号LSN。16.一种数据库更新装置,其特征在于,应用于存储系统中的第一主机,所述存储系统包括存储节点和用于访问所述存储节点的多个主机,所述第一主机是所述多个主机中的一个主机,所述存储节点用于存储数据库的日志记录,所述日志记录用于记录对所述数据库中数据页的更新;所述装置包括:获取单元,用于获取第一版本页,所述第一版本页是基于第一日志记录生成的数据页,所述第一日志记录用于记录对所述数据库中第一数据页的更新;生成单元,用于针对所述第一版本页生成第二日志记录,所述第二日志记录用于记录对所述第一版本页的更新;发送单元,用于向所述存储节点发送所述第二日志记录和所述第二日志记录的依赖指示,所述依赖指示用于确定所述第二日志记录依赖于所述第一日志记录。17.根据权利要求16所述的装置,其特征在于,所述第一日志记录的日志序列号LSN为第一LSN,所述依赖指示包括所述第一LSN。18.根据权利要求16或17所述的装置,其特征在于,所述发送单元,具体用于向所述存储节点发送第一报文,所述第一报文包括所述第二日志记录和所述第二日志记录的依赖指示。19.根据权利要求18所述的装置,其特征在于,所述第二日志记录包括所述依赖指示。20.根据权利要求18所述的装置,其特征在于,所述依赖指示具体用于确定所述第一报文中包括所述第二日志记录在内的至少两个日志记录依赖于所...

【专利技术属性】
技术研发人员:陈瑾杰克
申请(专利权)人:华为云计算技术有限公司
类型:发明
国别省市:

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

1