核查点的处理方法和装置、电子设备和存储介质制造方法及图纸

技术编号:27685348 阅读:18 留言:0更新日期:2021-03-17 03:51
本申请提供了一种核查点的处理方法和装置、电子设备和存储介质,其中,该方法包括:将目标脏页链表包含的目标脏页的脏页标记中的最小值,确定为目标核查点的第一参考值,目标脏页为目标数据库的脏页,脏页标记为脏页第一次更新的重做日志的日志序列号;将第一参考值与第一预定值之间的差值,确定为目标核查点的第二参考值;从至少一个历史脏页的脏页标记中查找出目标标记,得到目标核查点的日志序列号,至少一个历史脏页中的每个历史脏页为目标数据库中已刷新到磁盘的脏页,目标标记小于或者等于第二参考值。通过本申请,解决了相关技术中并发添加脏页的方式存在由于无法与已有版本重做日志的核查点记录兼容导致的数据库版本升级困难的问题。

【技术实现步骤摘要】
核查点的处理方法和装置、电子设备和存储介质
本申请涉及数据处理领域,尤其涉及一种核查点的处理方法和装置、电子设备和存储介质。
技术介绍
目前,数据库增量日志(redolog,重做日志)无锁优化后,增量日志从用户线程的内存区复制数据到日志公共缓存区(logbuffer),可以并发执行把脏页添加到脏页链表(flush_list)中,脏页链表(flush_list)可以有1个或多个。在执行刷脏时,可以将脏页链表中的脏页按照oldest_modification由小到大的顺序依次刷新到磁盘中,其中,oldest_modification用于表示数据页第一次更新的重做日志的LSN(LogSequenceNumber,日志序列号)。由于将脏页添加到脏页链表是并发执行的,在一次刷脏的过程中,脏页链表中脏页的LSN不是有序的,且可能会有空洞,即,存在脏页的oldest_modification小于脏页链表中脏页的最大oldest_modification、但是还未添加到脏页链表中的可能。对此,在计算checkpoint(检查点)时,可以减去一个固定区间(recent_close),以确保oldest_modification小于checkpoint的所有脏页均已落盘,其中,checkpoint用于表示最后一个刷新到磁盘上的数据页第一次被修改时的LSN。通过上述方式得到的checkpoint点可能不是一个MRT(mini-transaction,原子记录)起始位置,而是一个记录的中间位置,导致在崩溃恢复时需要基于记录的checkpoint再次计算记录MRT起始位置的LSN。对于上述并发添加脏页的方式,由于在恢复时需要重新计算MRT起始位置的LSN,而数据库的已有版本(例如,5.7版本)是直接从checkpoint记录的点开始读取重做日志进行恢复的,导致上述脏页刷新到磁盘的方式与已有版本重做日志的checkpoint记录不兼容,不能直接升级,从而使得已有版本具备上述并发功能。因此,相关技术中并发添加脏页的方式存在由于无法与已有版本重做日志的核查点记录兼容导致的数据库版本升级困难的问题。
技术实现思路
本申请提供了一种核查点的处理方法和装置、电子设备和存储介质,以至少解决相关技术中并发添加脏页的方式存在由于无法与已有版本重做日志的核查点记录兼容导致的数据库版本升级困难的问题。根据本申请实施例的一个方面,提供了一种核查点的处理方法,包括:将目标脏页链表包含的目标脏页的脏页标记中的最小值,确定为目标核查点的第一参考值,其中,所述目标脏页为目标数据库的脏页,所述脏页标记为脏页第一次更新的重做日志的日志序列号;将所述第一参考值与第一预定值之间的差值,确定为所述目标核查点的第二参考值;从至少一个历史脏页的所述脏页标记中查找出目标标记,得到所述目标核查点的日志序列号,其中,所述至少一个历史脏页中的每个历史脏页为所述目标数据库中已刷新到磁盘的脏页,所述目标标记小于或者等于所述第二参考值。可选地,所述将目标脏页链表包含的目标脏页的脏页标记中的最小值,确定为目标核查点的第一参考值包括:在所述目标脏页链表包含多个脏页链表的情况下,分别确定所述多个脏页链表中的每个脏页链表包含的所述目标脏页的所述脏页标记中的最小值,得到多个候选值,其中,所述多个候选值与所述多个脏页链表一一对应;将所述多个候选值中的最小候选值,确定为所述目标核查点的所述第一参考值。可选地,所述从至少一个历史脏页的所述脏页标记中查找出目标标记包括:根据所述第二参考值从目标数组中查找出所述目标标记,其中,所述至少一个历史脏页中的一个历史脏页的所述脏页标记存储为所述目标数组中的一个数组位置上的数组元素。可选地,所述根据所述第二参考值从目标数组中查找出所述目标标记包括:获取与所述第二参考值对应的第一哈希值,其中,所述第一哈希值为使用第二预定值对所述第二参考值进行取余后所得到的值,所述第二预定值大于或者等于所述第一预定值;从与所述第一哈希值对应的数组位置开始向前依次查找所述目标数组中的数组元素,直到查找到所述目标标记,其中,所述每个历史脏页的所述脏页标记存储在所述目标数组中与所述每个历史脏页的所述脏页标记的哈希值对应的数组位置上。可选地,从与所述第一哈希值对应的数组位置开始向前依次查找所述目标数组中的数组元素,直到查找到所述目标标记包括:从与所述第一哈希值对应的数组位置开始向前依次查找所述目标数组中的各个数组位置上的数组元素;在查找到小于或者等于所述第二参考值、且与所述第二参考值之间的差值小于或者等于所述第二预定值的第一数组元素的情况下,将所述第一数组元素确定为所述目标标记。可选地,所述从与所述第一哈希值对应的数组位置开始向前依次查找所述目标数组中的数组元素,直到查找到所述目标标记包括:在查找到所述目标数组的第一个数组位置仍未查找到所述目标标记的情况下,从所述目标数组的最后一个数组位置开始向前依次查找所述目标数组中的各个数组位置上的数组元素;在查找到小于或者等于所述第二参考值、且与所述第二参考值之间的差值小于或者等于所述第二预定值的第二数组元素的情况下,将所述第二数组元素确定为所述目标标记。可选地,在所述从至少一个历史脏页的所述脏页标记中查找出目标标记之前,所述方法还包括:获取与目标历史脏页的所述脏页标记对应的第二哈希值,其中,所述目标历史脏页为所述至少一个历史脏页中的一个历史脏页;将所述目标历史脏页的所述脏页标记存储到所述目标数组中与所述第二哈希值对应的数组位置上。可选地,在所述从至少一个历史脏页的所述脏页标记中查找出目标标记之后,所述方法还包括:将所述目标标记存储到目标存储文件中,其中,所述目标存储文件用于存储与所述目标脏页链表对应的核查点的日志序列号;恢复所述目标数据库中的数据的情况下,从所述目标存储文件中读取出所述目标标记;获取与所述目标数据库对应的、且对应的所述日志序列号大于或者等于所述目标标记的目标重做日志;使用所述目标重做日志,恢复所述目标数据库中的数据。根据本申请实施例的另一个方面,还提供了一种核查点的处理装置,包括:第一确定单元,用于将目标脏页链表包含的目标脏页的脏页标记中的最小值,确定为目标核查点的第一参考值,其中,所述目标脏页为目标数据库的脏页,所述脏页标记为脏页第一次更新的重做日志的日志序列号;第二确定单元,用于将所述第一参考值与第一预定值之间的差值,确定为所述目标核查点的第二参考值;查找单元,用于从至少一个历史脏页的所述脏页标记中查找出目标标记,得到所述目标核查点的日志序列号,其中,所述至少一个历史脏页中的每个历史脏页为所述目标数据库中已刷新到磁盘的脏页,所述目标标记小于或者等于所述第二参考值。可选地,所述第一确定单元包括:第一确定模块,用于在所述目标脏页链表包含多个脏页链表的情况下,分别确定所述多个脏页链表中的每个脏页链表包含的所述目标脏页的所述脏页标记中的最小值,得到多个候选值,其中,所述多个候选值与所述多个脏页链表一一对应;第二确定模块,用于将所述多个候选值中的最小候选值,确本文档来自技高网
...

【技术保护点】
1.一种核查点的处理方法,其特征在于,包括:/n将目标脏页链表包含的目标脏页的脏页标记中的最小值,确定为目标核查点的第一参考值,其中,所述目标脏页为目标数据库的脏页,所述脏页标记为脏页第一次更新的重做日志的日志序列号;/n将所述第一参考值与第一预定值之间的差值,确定为所述目标核查点的第二参考值;/n从至少一个历史脏页的所述脏页标记中查找出目标标记,得到所述目标核查点的日志序列号,其中,所述至少一个历史脏页中的每个历史脏页为所述目标数据库中已刷新到磁盘的脏页,所述目标标记小于或者等于所述第二参考值。/n

【技术特征摘要】
1.一种核查点的处理方法,其特征在于,包括:
将目标脏页链表包含的目标脏页的脏页标记中的最小值,确定为目标核查点的第一参考值,其中,所述目标脏页为目标数据库的脏页,所述脏页标记为脏页第一次更新的重做日志的日志序列号;
将所述第一参考值与第一预定值之间的差值,确定为所述目标核查点的第二参考值;
从至少一个历史脏页的所述脏页标记中查找出目标标记,得到所述目标核查点的日志序列号,其中,所述至少一个历史脏页中的每个历史脏页为所述目标数据库中已刷新到磁盘的脏页,所述目标标记小于或者等于所述第二参考值。


2.根据权利要求1所述的方法,其特征在于,所述将目标脏页链表包含的目标脏页的脏页标记中的最小值,确定为目标核查点的第一参考值包括:
在所述目标脏页链表包含多个脏页链表的情况下,分别确定所述多个脏页链表中的每个脏页链表包含的所述目标脏页的所述脏页标记中的最小值,得到多个候选值,其中,所述多个候选值与所述多个脏页链表一一对应;
将所述多个候选值中的最小候选值,确定为所述目标核查点的所述第一参考值。


3.根据权利要求1所述的方法,其特征在于,所述从至少一个历史脏页的所述脏页标记中查找出目标标记包括:
根据所述第二参考值从目标数组中查找出所述目标标记,其中,所述至少一个历史脏页中的一个历史脏页的所述脏页标记存储为所述目标数组中的一个数组位置上的数组元素。


4.根据权利要求3所述的方法,其特征在于,所述根据所述第二参考值从目标数组中查找出所述目标标记包括:
获取与所述第二参考值对应的第一哈希值,其中,所述第一哈希值为使用第二预定值对所述第二参考值进行取余后所得到的值,所述第二预定值大于或者等于所述第一预定值;
从与所述第一哈希值对应的数组位置开始向前依次查找所述目标数组中的数组元素,直到查找到所述目标标记,其中,所述每个历史脏页的所述脏页标记存储在所述目标数组中与所述每个历史脏页的所述脏页标记的哈希值对应的数组位置上。


5.根据权利要求4所述的方法,其特征在于,所述从与所述第一哈希值对应的数组位置开始向前依次查找所述目标数组中的数组元素,直到查找到所述目标标记包括:
从与所述第一哈希值对应的数组位置开始向前依次查找所述目标数组中的各个数组位置上的数组元素;
在查找到小于或者等于所述第二参考值、且与所述第二参考值之间的差值小于或者等于所述第二预定值的第一数组元素的情况下,将所述第一数组元素确定为所述目标标记。


6.根据权利要求4所述的方法,其特征在于,所述从与所述第一哈希值对应的数组位置开始向前依次查找所述目标数组中的数组元素,...

【专利技术属性】
技术研发人员:邱海港
申请(专利权)人:北京金山云网络技术有限公司
类型:发明
国别省市:北京;11

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

1