CN112182010B - 脏页刷新方法和装置、存储介质和电子设备 - Google Patents

脏页刷新方法和装置、存储介质和电子设备 Download PDF

Info

Publication number
CN112182010B
CN112182010B CN202011367588.6A CN202011367588A CN112182010B CN 112182010 B CN112182010 B CN 112182010B CN 202011367588 A CN202011367588 A CN 202011367588A CN 112182010 B CN112182010 B CN 112182010B
Authority
CN
China
Prior art keywords
target
dirty page
page
dirty
disk
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202011367588.6A
Other languages
English (en)
Other versions
CN112182010A (zh
Inventor
邱海港
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Kingsoft Cloud Network Technology Co Ltd
Original Assignee
Beijing Kingsoft Cloud Network Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Kingsoft Cloud Network Technology Co Ltd filed Critical Beijing Kingsoft Cloud Network Technology Co Ltd
Priority to CN202011367588.6A priority Critical patent/CN112182010B/zh
Publication of CN112182010A publication Critical patent/CN112182010A/zh
Application granted granted Critical
Publication of CN112182010B publication Critical patent/CN112182010B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2358Change logging, detection, and notification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/215Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5022Mechanisms to release resources

Abstract

本申请提供了一种脏页刷新方法和装置、存储介质和电子设备,其中,该方法包括:在存在未刷新到磁盘上的、与第一脏页对应的重做日志的情况下,创建与所述第一脏页匹配的目标脏页,其中,所述第一脏页为脏页链表中与第一数据页对应的脏页;将所述目标脏页刷新到目标磁盘中的目标位置,其中,所述目标位置为与所述目标磁盘中所述第一数据页所处的第一位置不同的位置;将所述第一脏页从所述脏页链表中移除,并将所述目标脏页添加到目标堆列表中。通过本申请,解决了相关技术的脏页刷新方式存在由于redo日志空间无法释放导致的阻塞用户线程的问题。

Description

脏页刷新方法和装置、存储介质和电子设备
技术领域
本申请涉及数据处理领域,尤其涉及一种脏页刷新方法和装置、存储介质和电子设备。
背景技术
在数据库中,当数据页被第一次修改后,会把脏数据页(脏页)添加到内存缓存区(缓存池)的脏页链表(flush_list)中,添加到脏页链表中的脏数据页可以被其他线程更新。脏页链表中的脏页可以按照一定顺序被刷新(flush)到磁盘中,刷新的时机可以是周期性的。
在进行数据页修改时,存储引擎(位于服务器中)会将数据页的变更操作记录到redo(重做)日志中。在将脏页链表中的脏页刷新到磁盘时,当前页的刷新操作需要在当前页最后一次修改的redo日志已经刷新到磁盘之后才能执行。
在数据库服务中高并发更新场景下,在待刷新的当前页(脏页)为热点数据页时,如果当前页最后一次更新的redo日志的日志序列号(Log Sequence Number,简称为LSN)大于已刷新到磁盘中的redo日志的LSN时,则会造成当前页需要等待redo日志从内存刷新到磁盘,而无法刷新到磁盘。而如果等待时间过长,造成last_checkpoint_lsn(最后一个刷新到磁盘上的数据页第一次被修改时的LSN)无法向前推进,导致redo日志空间无法释放,从而阻塞用户线程,经常出现用户线程阻塞,甚至阻塞几秒的情况,导致服务暂停,进而导致服务性能严重下降。
因此,相关技术的脏页刷新方式,存在由于redo日志空间无法释放导致的阻塞用户线程的问题。
发明内容
本申请提供了一种脏页刷新方法和装置、存储介质和电子设备,以至少解决相关技术的脏页刷新方式存在由于redo日志空间无法释放导致的阻塞用户线程的问题。
根据本申请实施例的一个方面,提供了一种脏页刷新方法,包括:在存在未刷新到磁盘上的、与第一脏页对应的重做日志的情况下,创建与所述第一脏页匹配的目标脏页,其中,所述第一脏页为脏页链表中与第一数据页对应的脏页;将所述目标脏页刷新到目标磁盘中的目标位置,其中,所述目标位置为与所述目标磁盘中所述第一数据页所处的第一位置不同的位置;将所述第一脏页从所述脏页链表中移除,并将所述目标脏页添加到目标堆列表中。
可选地,在所述创建与所述第一脏页匹配的目标脏页之前,所述方法还包括:确定所述第一脏页的第一标记,其中,所述第一标记为脏页最后一次更新的重做日志的日志序列号;在所述第一脏页的所述第一标记大于目标标记的情况下,确定存在未刷新到磁盘上的、与所述第一脏页对应的重做日志,其中,所述目标标记为已刷新到磁盘上的重做日志的最大日志序列号。
可选地,在所述创建与所述第一脏页匹配的目标脏页之前,所述方法还包括:按照第二标记的顺序,从所述脏页链表中读取出所述第一脏页,其中,所述第二标记为脏页第一次更新的重做日志的日志序列号。
可选地,所述将所述目标脏页添加到目标堆列表中包括:将所述目标脏页的第二标记配置为所述第一脏页的第一标记,其中,所述第一标记为脏页最后一次更新的重做日志的日志序列号,所述第二标记为脏页第一次更新的重做日志的日志序列号;将所述目标脏页添加到所述目标堆列表,其中,所述目标堆列表中的脏页按照所述第二标记的顺序进行排列。
可选地,在所述将所述目标脏页添加到所述目标堆列表之后,所述方法还包括:按照所述第二标记的顺序,从所述目标堆列表中选取出所述目标脏页;在所述目标脏页的所述第一标记小于或者等于目标标记的情况下,将所述目标脏页刷新到所述目标磁盘的所述第一位置上;移除所述目标磁盘的所述目标位置上的、与所述目标脏页对应的目标数据页,其中,所述目标标记为已刷新到磁盘上的重做日志的最大日志序列号。
可选地,在所述按照所述第二标记的顺序,从所述目标堆列表中选取出所述目标脏页之后,所述方法还包括:在所述目标脏页的所述第一标记大于所述目标标记的情况下,将所述目标脏页刷新到所述目标磁盘的所述目标位置上。
可选地,在所述将所述第一脏页从所述脏页链表中移除之后,所述方法还包括:从所述脏页链表中读取出第二脏页,其中,所述第二脏页为所述第一脏页的下一个脏页;在与所述第二脏页对应的重做日志均已刷新到磁盘上的情况下,将所述第二脏页刷新到所述目标磁盘上的第二位置,其中,所述第二位置为与所述第二脏页对应的第二数据页所处的位置;释放所述第二脏页的重做日志的日志空间。
根据本申请实施例的另一个方面,还提供了一种脏页刷新装置,包括:创建单元,用于在存在未刷新到磁盘上的、与第一脏页对应的重做日志的情况下,创建与所述第一脏页匹配的目标脏页,其中,所述第一脏页为脏页链表中与第一数据页对应的脏页;第一刷新单元,用于将所述目标脏页刷新到目标磁盘中的目标位置,其中,所述目标位置为与所述目标磁盘中所述第一数据页所处的第一位置不同的位置;第一移除单元,用于将所述第一脏页从所述脏页链表中移除;添加单元,用于并将所述目标脏页添加到目标堆列表中。
可选地,所述装置还包括:第一确定单元,用于在所述创建与所述第一脏页匹配的目标脏页之前,确定所述第一脏页的第一标记,其中,所述第一标记为脏页最后一次更新的重做日志的日志序列号;第二确定单元,用于在所述第一脏页的所述第一标记大于目标标记的情况下,确定存在未刷新到磁盘上的、与所述第一脏页对应的重做日志,其中,所述目标标记为已刷新到磁盘上的重做日志的最大日志序列号。
可选地,所述装置还包括:第一读取单元,用于在所述创建与所述第一脏页匹配的目标脏页之前,按照第二标记的顺序,从所述脏页链表中读取出所述第一脏页,其中,所述第二标记为脏页第一次更新的重做日志的日志序列号。
可选地,所述添加单元包括:配置模块,用于将所述目标脏页的第二标记配置为所述第一脏页的第一标记,其中,所述第一标记为脏页最后一次更新的重做日志的日志序列号,所述第二标记为脏页第一次更新的重做日志的日志序列号;添加模块,用于将所述目标脏页添加到所述目标堆列表,其中,所述目标堆列表中的脏页按照所述第二标记的顺序进行排列。
可选地,所述装置还包括:第一选取单元,用于在所述将所述目标脏页添加到所述目标堆列表之后,按照所述第二标记的顺序,从所述目标堆列表中选取出所述目标脏页;第二刷新单元,用于在所述目标脏页的所述第一标记小于或者等于目标标记的情况下,将所述目标脏页刷新到所述目标磁盘的所述第一位置上;第二移除单元,用于移除所述目标磁盘的所述目标位置上的、与所述目标脏页对应的目标数据页,其中,所述目标标记为已刷新到磁盘上的重做日志的最大日志序列号。
可选地,所述装置还包括:第三刷新单元,用于在所述按照所述第二标记的顺序,从所述目标堆列表中选取出所述目标脏页之后,在所述目标脏页的所述第一标记大于与所述第一脏页对应的所述目标标记的情况下,将所述目标脏页刷新到所述目标磁盘的所述目标位置上。
可选地,所述装置还包括:第二读取单元,用于在所述将所述第一脏页从所述脏页链表中移除之后,从所述脏页链表中读取出第二脏页,其中,所述第二脏页为所述第一脏页的下一个脏页;第四刷新单元,用于在与所述第二脏页对应的重做日志均已刷新到磁盘上的情况下,将所述第二脏页刷新到所述目标磁盘上的第二位置,其中,所述第二位置为与所述第二脏页对应的第二数据页所处的位置;释放单元,用于释放所述第二脏页的重做日志的日志空间。
根据本申请实施例的又一个方面,还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器、通信接口和存储器通过通信总线完成相互间的通信;其中,存储器,用于存储计算机程序;处理器,用于通过运行所述存储器上所存储的所述计算机程序来执行上述任一实施例中的方法步骤。
根据本申请实施例的又一个方面,还提供了一种计算机可读的存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一实施例中的方法步骤。
在本申请实施例中,采用通过创建扩展页的方式,通过在存在未刷新到磁盘上的、与第一脏页对应的重做日志的情况下,创建与第一脏页匹配的目标脏页,其中,第一脏页为脏页链表中与第一数据页对应的脏页;将目标脏页刷新到目标磁盘中的目标位置,其中,目标位置为与目标磁盘中第一数据页所处的第一位置不同的位置;将第一脏页从脏页链表中移除,并将目标脏页添加到目标堆列表中,对于脏页链表中的第一脏页(对应于第一数据页),如果该脏页需要等待redo日志刷新到磁盘,将该脏页的扩展页(目标脏页)刷新到磁盘,可以保证磁盘中保存有第一数据页的最新版本,将第一脏页从脏页链表中移除,可以保证last_checkpoint_lsn可以向前推进,避免阻塞用户线程,将目标脏页添加到目标堆列表中,可以保证能够记录第一数据页后续的修改,达到了提高系统运行的流畅性、提高数据的安全性和可靠性的技术效果,进而解决了相关技术的脏页刷新方式存在由于redo日志空间无法释放导致的阻塞用户线程的问题。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是根据本申请实施例的一种可选的脏页刷新方法的硬件环境的示意图;
图2是根据本申请实施例的一种可选的脏页刷新方法的流程示意图;
图3是根据本申请实施例的另一种可选的脏页刷新方法的流程示意图;
图4是根据本申请实施例的又一种可选的脏页刷新方法的流程示意图;
图5是根据本申请实施例的一种可选的脏页刷新装置的结构框图;
图6是根据本申请实施例的一种可选的电子设备的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本申请实施例的一个方面,提供了一种脏页刷新方法。可选地,在本实施例中,上述脏页刷新方法可以应用于如图1所示的由终端102和服务器104所构成的硬件环境中。如图1所示,服务器104通过网络与终端102进行连接,可用于为终端或终端上安装的客户端提供服务,可在服务器上或独立于服务器设置数据库,用于为服务器104提供数据存储服务,还可以用于处理云服务。
上述网络包括但不限于以下至少之一:有线网络,无线网络。有线网络可以包括但不限于以下至少之一:广域网,城域网,局域网,无线网络可以包括但不限于以下至少之一:WIFI(Wireless Fidelity,无线保真)。终端102并不限定于PC(Personal Computer,个人计算机)、手机、平板电脑等。服务器104可以但不限于服务器或者服务器集群,也可以是云服务器或者云服务器集群,本实施例中对此不作限定。
本申请实施例的脏页刷新方法可以由服务器104来执行,也可以由终端102来执行,还可以是由服务器104和终端102共同执行。其中,终端102执行本申请实施例的脏页刷新方法也可以是由安装在其上的客户端来执行。
以由服务器104来执行本实施例中的脏页刷新方法为例,图2是根据本申请实施例的一种可选的脏页刷新方法的流程示意图,如图2所示,该方法的流程可以包括以下步骤:
步骤S202,在存在未刷新到磁盘上的、与第一脏页对应的重做日志的情况下,创建与第一脏页匹配的目标脏页,其中,第一脏页为脏页链表中与第一数据页对应的脏页。
本实施例中的脏页刷新方法可以应用于将脏数据页(脏页)从内存刷新到磁盘的场景。数据库中可以存储有数据页。数据页被修改(更新)时,数据页可以先被载入到内存缓存区(缓冲区,缓冲池)中。在内存缓存区中,数据页被修改之后会产生脏页。脏页是指在内存缓存区中已经被修改、但是还没有刷新到磁盘中的数据页。此时,数据库实例内存中的数据页和磁盘中的数据页的数据不一致。
数据页的每次修改可以通过redo日志记录,redo日志可以用于记录对数据页进行的修改。redo日志的LSN是指日志序列号,用于表示从开始到本redo日志已经产生的redo日志的字节数。
数据页的更新可以有两个标记为:oldest_modification(第二标记),表示数据页第一次更新的redo日志的LSN;newest_modification(第一标记),表示数据页最后一次更新的重做日志的LSN。相对于脏页,redo日志的内容会少很多。redo日志刷新到磁盘可以是一个顺序写入磁盘的过程,可以通过flushed_to_disk_lsn表示redo日志已经刷新到磁盘的最大LSN。
当数据页被第一次修改之后,可以把脏数据页(脏页)添加到脏页链表(flush_list),添加到脏页链表中的脏页可以被其他线程更新。对应地,脏页的newest_modification可以不断增大。
服务器(数据库)可以定时将脏页链表中的脏页刷新到磁盘中,刷新到的磁盘可以是目标磁盘,该目标磁盘可以是一个磁盘或者多个磁盘的组合。在进行脏页刷新时,脏页链表中当前待刷新的脏页为第一脏页,第一脏页是与第一数据页对应的脏页。将第一脏页刷新到磁盘的前提条件包括:当前页最后一次修改的redo日志已经flush到磁盘,即,flushed_to_disk_lsn大于或者等于newest_modification。
在高并发更新场景下,如果当前页(第一脏页)为热点数据页,那么,会存在oldest_modification与newest_modification相差很大,且newest_modification>flushed_to_disk_lsn的情况,也就是,存在未刷新到磁盘上的、与第一脏页对应的重做日志,此时,第一脏页需要等待与第一脏页对应的重做日志刷新到磁盘上。如果等待时间过长,会造成last_checkpoint_lsn无法向前推进,导致redo日志空间无法释放,从而阻塞用户线程,导致服务暂停。
需要说明的是,脏页刷新到的磁盘和重做日志刷新到的磁盘可以是相同的磁盘,也可以是不同的磁盘。
可选地,在本实施例中,为了减少用户线程的等待,提高服务性能,可以在newest_modification>flushed_to_disk_lsn(第一标记大于目标标记)、或者、oldest_modification与newest_modification相差很大(例如,大于或者等于目标阈值)并且newest_modification>flushed_to_disk_lsn的情况下,可以通过使用扩展页替代脏页进行刷新的方式优化脏页刷新机制。
服务器可以创建与第一脏页匹配的目标脏页,该目标脏页与第一脏页可以是内容完全相同的不同数据页,目标脏页可以位于内存缓存区中。
步骤S204,将目标脏页刷新到目标磁盘中的目标位置,其中,目标位置为与目标磁盘中第一数据页所处的第一位置不同的位置。
对于创建的目标脏页,服务器可以将目标脏页刷新到目标磁盘中的目标位置,该目标位置可以是与第一数据页所处的第一位置不同的位置,即,一个新的数据页刷新在的位置。
例如,脏页链表中当前待刷新的脏页(当前页)在磁盘中存储的位置为位置A,为当前页新建的page(扩展页)被刷新到磁盘中的位置B,位置A与位置B为不同的位置,此时,磁盘中即存储有原来的page,也保存有扩展的page。
步骤S206,将第一脏页从脏页链表中移除,并将目标脏页添加到目标堆列表中。
在创建目标脏页之后,服务器可以将第一脏页从脏页链表中移除,并将目标脏页添加到目标堆列表中。目标堆列表可以是堆排序的列表,该堆列表可以是在进行此次脏页刷新时新增的,也可以是需要创建扩展页时新增的,本实施例中对此不作限定。
对于目标堆列表中的目标脏页,如果有线程需要对其进行更新,可以对其进行更新,例如,可以生成对应的redo日志,修改目标脏页的newest_modification。
对于脏页链表和目标堆列表的脏页,服务器可以按照一定顺序继续从中读取脏页,并执行脏页刷新的过程,本实施例中对此不作赘述。
通过上述步骤S202至步骤S206,在存在未刷新到磁盘上的、与第一脏页对应的重做日志的情况下,创建与第一脏页匹配的目标脏页,其中,第一脏页为脏页链表中与第一数据页对应的脏页;将目标脏页刷新到目标磁盘中的目标位置,其中,目标位置为与目标磁盘中第一数据页所处的第一位置不同的位置;将第一脏页从脏页链表中移除,并将目标脏页添加到目标堆列表中,解决了相关技术的脏页刷新方式存在由于redo日志空间无法释放导致的阻塞用户线程的问题,提高了系统运行的流畅性,提高了数据的安全性和可靠性。
作为一种可选的实施例,在创建与第一脏页匹配的目标脏页之前,上述方法还包括:
S11,确定第一脏页的第一标记,其中,第一标记为脏页最后一次更新的重做日志的日志序列号;
S12,在第一脏页的第一标记大于目标标记的情况下,确定存在未刷新到磁盘上的、与第一脏页对应的重做日志,其中,目标标记为已刷新到磁盘上的重做日志的最大日志序列号。
为了判定是否能够将第一脏页刷新到目标磁盘上,服务器可以确定第一脏页的第一标记,该第一标记为脏页最后一次更新的重做日志的日志序列号。第一标记(例如,上述newest_modification)是一个广义的概念,泛指脏页最后一次更新的重做日志的日志序列号,不同的脏页,其对应的第一标记可以是不同的。
服务器可以比较第一脏页的第一标记和目标标记,该目标标记为脏页已刷新到磁盘上的重做日志的最大日志序列号。目标标记(例如,上述flushed_to_disk_lsn)是一个广义的概念,泛指已刷新到磁盘上的重做日志的最大日志序列号,不同的脏页,其对应的目标标记可以是相同的。在一些场景下,也可以为不同的脏页配置不同的目标标记(即,flushed_to_disk_lsn),本实施例中以flushed_to_disk_lsn为全局变量为例(目标标记所标记的是已刷新到磁盘上的全部重做日志的最大日志序列号)。
如果第一脏页的第一标记大于目标标记,可以确定存在未刷新到磁盘上的、与第一脏页对应的重做日志。在此情况下,执行前述新建扩展页的步骤。
如果第一脏页的第一标记小于或者等于目标标记,可以确定与第一脏页对应的重做日志均已刷新到磁盘上。在此情况下,可以将第一脏页刷新到目标磁盘的第一位置上,也就是,覆盖原有数据,将第一脏页从脏页链表中删除,并重新从脏页链表中读取脏页,执行与第一脏页类似的操作,在此不做赘述。
通过本实施例,根据newest_modification和flushed_to_disk_lsn判定是否存在未刷新到磁盘上的、与第一脏页对应的重做日志,可以保证脏页刷新的可靠性和便捷性。
作为一种可选的实施例,在创建与第一脏页匹配的目标脏页之前,上述方法还包括:
S21,按照第二标记的顺序,从脏页链表中读取出第一脏页,其中,第二标记为脏页第一次更新的重做日志的日志序列号。
在刷新脏页时,可以按照一定顺序从脏页链表中读取待刷新的脏页。例如,可以按照随机抽取的方式从脏页链表中读取待刷新的脏页,又例如,可以按照第二标记由小到大、或者由大到小的顺序,从脏页链表中读取待刷新的脏页。
可选地,在本实施例中,服务器可以按照第二标记的顺序,从脏页链表中读取出第一脏页。该第二标记为脏页第一次更新的重做日志的日志序列号。第二标记(例如,上述oldest_modification)是一个广义的概念,泛指脏页第一次更新的重做日志的日志序列号,不同的脏页,其对应的第二标记可以是不同的。
例如,在脏页链表中可以以oldest_modification从小到大的顺序排序,但是newest_modification在链表中则无序,脏页flush到磁盘的顺序以old est_modification从小到大的顺序执行。
通过本实施例,oldest_modification的顺序可以表示数据页载入到内存的顺序,按照oldest_modification的顺序从脏页链表中读取脏页,可以避免由于数据长时间未刷新到磁盘导致的数据页版本过低。
作为一种可选的实施例,将目标脏页添加到目标堆列表中包括:
S31,将目标脏页的第二标记配置为第一脏页的第一标记,其中,第一标记为脏页最后一次更新的重做日志的日志序列号,第二标记为脏页第一次更新的重做日志的日志序列号;
S32,将目标脏页添加到目标堆列表,其中,目标堆列表中的脏页按照第二标记的顺序进行排列。
对于目标脏页,服务器可以为该目标脏页配置第二标记(例如,oldest_modification),服务器还可以为目标脏页配置第二标记(例如,newest_modification)。为了避免短时间内再次读取到目标脏页,可以将目标脏页的第二标记配置为第一脏页的第一标记。第一标记和第二标记的含义与前述类似,再次不作赘述。
服务器可以将目标脏页添加到目标堆列表,目标堆列表中的脏页按照第二标记的顺序进行排列,也就是说,oldest_modification最小的脏页在堆顶,oldest_modification最大的脏页在堆底。
此外,从堆列表中读取脏页的顺序可以是从堆顶到堆底,也可以是其他顺序。目标堆列表中的脏页也可以按照第一标记的顺序进行排列,也就是,按照newest_modification由小到大的顺序进行排列。
通过本实施例,通过将目标脏页的第二标记配置为第一脏页的第一标记,并将堆列表中的脏页以正序的方式排列,可以提高脏页同步的有效性以及效率。
作为一种可选的实施例,在将目标脏页添加到目标堆列表之后,上述方法还包括:
S41,按照第二标记的顺序,从目标堆列表中选取出目标脏页;
S42,在目标脏页的第一标记小于或者等于目标标记的情况下,将目标脏页刷新到目标磁盘的第一位置上;
S43,移除目标磁盘的目标位置上的、与目标脏页对应的目标数据页,其中,目标标记为已刷新到磁盘上的重做日志的最大日志序列号。
目标堆列表中的脏页按照第二标记的顺序进行排列,按照第二标记的顺序,服务器可以从目标堆列表中、或者从脏页链表和目标队列表中依次选取脏页,并执行脏页刷新操作。
如果读取出目标脏页,服务器可以比较目标脏页的当前第一标记和当前目标标记。如果目标脏页的当前第一标记小于或者等于当前目标标记,表示与目标脏页对应的重做日志均已刷新到磁盘。服务器可以将目标脏页刷新到目标磁盘的第一位置上,即,覆盖原来的page。
此外,目标磁盘上存在以下两个数据页:第一位置上的第一数据页,目标位置上的目标数据页(扩展页,扩展的page),将目标脏页刷新到目标磁盘的第一位置上之后,表明所有的修改均已同步到磁盘上,目标数据页无需再被存储,可以将目标数据页移除。服务器还可以将目标脏页从目标堆列表中移出,也可以释放与第一脏页和目标脏页的redo日志的日志空间。
例如,后台线程循环执行,判断flushed_to_disk_lsn是否大于堆列中最小的oldest_modification,如果小于,则执行flush操作。如果newest_modification<=flushed_to_disk_lsn,可以把当前page覆盖到原来的位置,并移除扩展的page。
通过本实施例,从堆列表中读取脏页并在脏页对应的redo日志均已刷新到磁盘之后,将该脏页刷新到原来的位置,并删除扩展的page,可以在保证数据刷新可靠性的同时,节省存储空间。
作为一种可选的实施例,在按照第二标记的顺序,从目标堆列表中选取出目标脏页之后,上述方法还包括:
S51,在目标脏页的第一标记大于目标标记的情况下,将目标脏页刷新到目标磁盘的目标位置上。
如果目标脏页的当前第一标记大于当前目标标记,表明目标脏页的redo日志未全部刷新到磁盘。为了保证继续完成其他脏页的刷新,可以将目标脏页刷新到目标磁盘的目标位置上。
可选地,在将目标脏页刷新到目标磁盘的目标位置上之后,可以将目标脏页的第二标记配置目标脏页的第一标记,并重新添加到目标堆列表中,继续执行从目标堆列表中读取脏页和脏页刷新的步骤。
例如,对于堆列表中的脏页,如果该脏页的newest_modification大于flushed_to_disk_lsn,则在脏页刷新时可以覆盖扩展的page,执行将oldest_modification配置为newest_modification的步骤,并再次添加到堆列表中。
通过本实施例,如果堆列表中的脏页的newest_modification大于flushed_to_disk_lsn,将脏页覆盖扩展的page,可以保证数据刷新的准确性。
作为一种可选的实施例,在将第一脏页从脏页链表中移除之后,上述方法还包括:
S61,从脏页链表中读取出第二脏页,其中,第二脏页为第一脏页的下一个脏页;
S62,在与第二脏页对应的重做日志均已刷新到磁盘上的情况下,将第二脏页刷新到目标磁盘上的第二位置,其中,第二位置为与第二脏页对应的第二数据页所处的位置;
S63,释放第二脏页的重做日志的日志空间。
在将第一脏页从脏页链表中移除之后,服务器可以从脏页链表中读取出第二脏页,该第二脏页为第一脏页的下一个脏页。脏页链表中的脏页可以按照oldest_modification由小到大的顺序进行排序,第二脏页可以是按照oldest_modification的大小,位于第一脏页之后的下一个脏页。
对于第二脏页,服务器可以按照与前述第一脏页刷新到目标磁盘类似的方式进行脏页刷新。如果与第二脏页对应的重做日志均已刷新到磁盘上(即,newest_modification≤flushed_to_disk_lsn),可以将第二脏页刷新到目标磁盘上的第二位置(第二位置为与第二脏页对应的第二数据页所处的位置),并释放第二脏页的重做日志的日志空间。此外,服务器还可以将第二脏页从脏页链表中删除,并读取第二脏页的下一个脏页,重新上述脏页刷新操作,本实施例中对此不作赘述。
通过本实施例,在脏页的redo日志均已刷新到磁盘上之后,将脏页刷新到磁盘,并释放redo日志的日志空间,可以便于用户线程的运行,提高服务性能。
下面结合可选示例对本申请实施例中的脏页刷新方法进行解释说明。在本可选示例中,第一标记为newest_modification,第二标记为oldest_modification,目标标记为flushed_to_disk_lsn。
在本可选示例中,增加一个堆队列,对当前newest_modification进行排序,当满足newest_modification<=flushed_to_disk_lsn时,进行二次flush。
如图3所示,对于从脏页链表(flush_list)中读取脏页进行刷新的流程可以包括以下步骤:
步骤S302,循环读取flush_list中oldest_modification最小的page,准备flush。
服务器可以首先增加堆排序的列表heap_list。在进行脏页刷新时,服务器可以循环读取flush_list中oldest_modification最小的page,准备将其刷新到磁盘(目标磁盘)。
步骤S304,在newest_modification>flushed_to_disk_lsn的情况下,新建一个page,且完成flush。
如果当前页的newest_modification>flushed_to_disk_lsn,那么flush不再覆盖原来磁盘上的page,而是新建一个page(目标脏页,扩展的page),且将该新建的page刷新到磁盘。
如果当前页的newest_modification≤flushed_to_disk_lsn,那么,flush覆盖原来磁盘上的page,将当前页从flush_list中删除,并继续从flush_list中读取下一个脏页。
步骤S306,把新建page添加堆列表heap_list中,堆列表以正序的方式排列。
服务器可以将新建page的oldest_modification由0修改为当前page的newest_modification,把当前page从脏页列表中移除,并将新建page添加堆列表heap_list中,堆列表以正序的方式排列(例如,以newest_modification的数值建立堆列表),即,最小的lsn在堆顶。
如图4所示,对于从堆列表heap_list中读取脏页进行刷新的流程可以包括以下步骤:
步骤S402,后台线程循环执行,在flushed_to_disk_lsn小于堆列中最小的oldest_modification的情况下,执行flush操作;
后台线程循环执行,判断flushed_to_disk_lsn是否小于堆列中最小的oldest_modification,如果小于,则执行flush操作。
步骤S404,判断newest_modification<=flushed_to_disk_lsn,如果是,执行步骤S406,否则,执行步骤S408。
判断heap_list中的当前page的newest_modification是否小于或者等于flushed_to_disk_lsn,如果是,执行步骤S406,否则,执行步骤S408。
步骤S406,把当前page覆盖到原来的位置,并移除扩展的page。
服务器可以将当前page刷新到磁盘,即,把当前page覆盖到原来的位置,并移除扩展的page。
步骤S408,把当前page覆盖扩展的page,将oldest_modification配置为newest_modification,再次添加到堆列表中。
如果newest_modification>flushed_to_disk_lsn,服务器可以将当前页覆盖扩展的page,并将当前页的oldest_modification配置为等于newest_modification,再次添加到堆列表中。
如果page一直没有覆盖原来位置page,则redo日志的lsn起始值为oldest_modification的redo日志则不能被覆盖。
通过本示例,采用前述堆结构和堆排序,当page为热点页时,可以提高数据库对外服务性能,提高flush脏页的性能。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM(Read-Only Memory,只读存储器)/RAM(Random Access Memory,随机存取存储器)、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
根据本申请实施例的另一个方面,提供了一种用于实施上述脏页刷新方法的脏页刷新装置。图5是根据本申请实施例的一种可选的脏页刷新装置的结构框图,如图5所示,该装置可以包括:
(1)创建单元502,用于在存在未刷新到磁盘上的、与第一脏页对应的重做日志的情况下,创建与第一脏页匹配的目标脏页,其中,第一脏页为脏页链表中与第一数据页对应的脏页;
(2)第一刷新单元504,与创建单元502相连,用于将目标脏页刷新到目标磁盘中的目标位置,其中,目标位置为与目标磁盘中第一数据页所处的第一位置不同的位置;
(3)第一移除单元506,与第一刷新单元504相连,用于将第一脏页从脏页链表中移除;
(4)添加单元508,与第一刷新单元504相连,用于并将目标脏页添加到目标堆列表中。
需要说明的是,该实施例中的创建单元502可以用于执行上述步骤S202,该实施例中的第一刷新单元504可以用于执行上述步骤S204,该实施例中的第一移除单元506和添加单元508可以用于执行上述步骤S206。
通过上述模块,在存在未刷新到磁盘上的、与第一脏页对应的重做日志的情况下,创建与第一脏页匹配的目标脏页,其中,第一脏页为脏页链表中与第一数据页对应的脏页;将目标脏页刷新到目标磁盘中的目标位置,其中,目标位置为与目标磁盘中第一数据页所处的第一位置不同的位置;将第一脏页从脏页链表中移除,并将目标脏页添加到目标堆列表中,解决了相关技术的脏页刷新方式存在由于redo日志空间无法释放导致的阻塞用户线程的问题,提高了系统运行的流畅性,提高了数据的安全性和可靠性。
作为一种可选的实施例,上述装置还包括:
第一确定单元,用于在创建与第一脏页匹配的目标脏页之前,确定第一脏页的第一标记,其中,第一标记为脏页最后一次更新的重做日志的日志序列号;
第二确定单元,用于在第一脏页的第一标记大于目标标记的情况下,确定存在未刷新到磁盘上的、与第一脏页对应的重做日志,其中,目标标记为已刷新到磁盘上的重做日志的最大日志序列号。
作为一种可选的实施例,上述装置还包括:
第一读取单元,用于在创建与第一脏页匹配的目标脏页之前,按照第二标记的顺序,从脏页链表中读取出第一脏页,其中,第二标记为脏页第一次更新的重做日志的日志序列号。
作为一种可选的实施例,添加单元508包括:
配置模块,用于将目标脏页的第二标记配置为第一脏页的第一标记,其中,第一标记为脏页最后一次更新的重做日志的日志序列号,第二标记为脏页第一次更新的重做日志的日志序列号;
添加模块,用于将目标脏页添加到目标堆列表,其中,目标堆列表中的脏页按照第二标记的顺序进行排列。
作为一种可选的实施例,上述装置还包括:
第一选取单元,用于在将目标脏页添加到目标堆列表之后,按照第二标记的顺序,从目标堆列表中选取出目标脏页;
第二刷新单元,用于在目标脏页的第一标记小于或者等于目标标记的情况下,将目标脏页刷新到目标磁盘的第一位置上;
第二移除单元,用于移除目标磁盘的目标位置上的、与目标脏页对应的目标数据页,其中,目标标记为已刷新到磁盘上的重做日志的最大日志序列号。
作为一种可选的实施例,上述装置还包括:
第三刷新单元,用于在按照第二标记的顺序,从目标堆列表中选取出目标脏页之后,在目标脏页的第一标记大于目标标记的情况下,将目标脏页刷新到目标磁盘的目标位置上。
作为一种可选的实施例,上述装置还包括:
第二读取单元,用于在将第一脏页从脏页链表中移除之后,从脏页链表中读取出第二脏页,其中,第二脏页为第一脏页的下一个脏页;
第四刷新单元,用于在与第二脏页对应的重做日志均已刷新到磁盘上的情况下,将第二脏页刷新到目标磁盘上的第二位置,其中,第二位置为与第二脏页对应的第二数据页所处的位置;
释放单元,用于释放第二脏页的重做日志的日志空间。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现,其中,硬件环境包括网络环境。
根据本申请实施例的又一个方面,还提供了一种用于实施上述脏页刷新方法的电子设备,该电子设备可以是服务器、终端、或其组合。
图6是根据本申请实施例的一种可选的电子设备的结构框图,如图6所示,包括处理器602、通信接口604、存储器606和通信总线608,其中,处理器602、通信接口604和存储器606通过通信总线608完成相互间的通信,其中,
存储器606,用于存储计算机程序;
处理器602,用于执行存储器606上所存放的计算机程序时,实现如下步骤:
S1,在存在未刷新到磁盘上的、与第一脏页对应的重做日志的情况下,创建与第一脏页匹配的目标脏页,其中,第一脏页为脏页链表中与第一数据页对应的脏页;
S2,将目标脏页刷新到目标磁盘中的目标位置,其中,目标位置为与目标磁盘中第一数据页所处的第一位置不同的位置;
S3,将第一脏页从脏页链表中移除,并将目标脏页添加到目标堆列表中。
可选地,在本实施例中,上述的通信总线可以是PCI (Peripheral ComponentInterconnect,外设部件互连标准)总线、或EISA (Extended Industry StandardArchitecture,扩展工业标准结构)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括RAM,也可以包括非易失性存储器(non-volatile memory),例如,至少一个磁盘存储器。可选地,存储器还可以是至少一个位于远离前述处理器的存储装置。
作为一种示例,上述存储器606中可以但不限于包括上述脏页刷新装置中的创建单元502、第一刷新单元504、第一移除单元506以及添加单元508。此外,还可以包括但不限于上述脏页刷新装置中的其他模块,本示例中不再赘述。
上述处理器可以是通用处理器,可以包含但不限于:CPU (Central ProcessingUnit,中央处理器)、NP(Network Processor,网络处理器)等;还可以是DSP (DigitalSignal Processing,数字信号处理器)、ASIC (Application Specific IntegratedCircuit,专用集成电路)、FPGA (Field-Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
本领域普通技术人员可以理解,图6所示的结构仅为示意,实施上述脏页刷新方法的设备可以是终端设备,该终端设备可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile Internet Devices,MID)、PAD等终端设备。图6其并不对上述电子设备的结构造成限定。例如,终端设备还可包括比图6中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图6所示的不同的配置。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、ROM、RAM、磁盘或光盘等。
根据本申请实施例的又一个方面,还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于执行本申请实施例中上述任一项脏页刷新方法的程序代码。
可选地,在本实施例中,上述存储介质可以位于上述实施例所示的网络中的多个网络设备中的至少一个网络设备上。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:
S1,在存在未刷新到磁盘上的、与第一脏页对应的重做日志的情况下,创建与第一脏页匹配的目标脏页,其中,第一脏页为脏页链表中与第一数据页对应的脏页;
S2,将目标脏页刷新到目标磁盘中的目标位置,其中,目标位置为与目标磁盘中第一数据页所处的第一位置不同的位置;
S3,将第一脏页从脏页链表中移除,并将目标脏页添加到目标堆列表中。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例中对此不再赘述。
可选地,在本实施例中,存储介质可以包括但不限于:U盘、ROM、RAM、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例中所提供的方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

Claims (10)

1.一种脏页刷新方法,其特征在于,包括:
在存在未刷新到磁盘上的、与第一脏页对应的重做日志的情况下,创建与所述第一脏页匹配的目标脏页,其中,所述第一脏页为脏页链表中与第一数据页对应的脏页;
将所述目标脏页刷新到目标磁盘中的目标位置,其中,所述目标位置为与所述目标磁盘中所述第一数据页所处的第一位置不同的位置;
将所述第一脏页从所述脏页链表中移除,并将所述目标脏页添加到目标堆列表中。
2.根据权利要求1所述的方法,其特征在于,在所述创建与所述第一脏页匹配的目标脏页之前,所述方法还包括:
确定所述第一脏页的第一标记,其中,所述第一标记为脏页最后一次更新的重做日志的日志序列号;
在所述第一脏页的所述第一标记大于目标标记的情况下,确定存在未刷新到磁盘上的、与所述第一脏页对应的重做日志,其中,所述目标标记为已刷新到磁盘上的重做日志的最大日志序列号。
3.根据权利要求1所述的方法,其特征在于,在所述创建与所述第一脏页匹配的目标脏页之前,所述方法还包括:
按照第二标记的顺序,从所述脏页链表中读取出所述第一脏页,其中,所述第二标记为脏页第一次更新的重做日志的日志序列号。
4.根据权利要求1所述的方法,其特征在于,所述将所述目标脏页添加到目标堆列表中包括:
将所述目标脏页的第二标记配置为所述第一脏页的第一标记,其中,所述第一标记为脏页最后一次更新的重做日志的日志序列号,所述第二标记为脏页第一次更新的重做日志的日志序列号;
将所述目标脏页添加到所述目标堆列表,其中,所述目标堆列表中的脏页按照所述第二标记的顺序进行排列。
5.根据权利要求4所述的方法,其特征在于,在所述将所述目标脏页添加到所述目标堆列表之后,所述方法还包括:
按照所述第二标记的顺序,从所述目标堆列表中选取出所述目标脏页;
在所述目标脏页的所述第一标记小于或者等于目标标记的情况下,将所述目标脏页刷新到所述目标磁盘的所述第一位置上;
移除所述目标磁盘的所述目标位置上的、与所述目标脏页对应的目标数据页,其中,所述目标标记为已刷新到磁盘上的重做日志的最大日志序列号。
6.根据权利要求5所述的方法,其特征在于,在所述按照所述第二标记的顺序,从所述目标堆列表中选取出所述目标脏页之后,所述方法还包括:
在所述目标脏页的所述第一标记大于所述目标标记的情况下,将所述目标脏页刷新到所述目标磁盘的所述目标位置上。
7.根据权利要求1至6中任一项所述的方法,其特征在于,在所述将所述第一脏页从所述脏页链表中移除之后,所述方法还包括:
从所述脏页链表中读取出第二脏页,其中,所述第二脏页为所述第一脏页的下一个脏页;
在与所述第二脏页对应的重做日志均已刷新到磁盘上的情况下,将所述第二脏页刷新到所述目标磁盘上的第二位置,其中,所述第二位置为与所述第二脏页对应的第二数据页所处的位置;
释放所述第二脏页的重做日志的日志空间。
8.一种脏页刷新装置,其特征在于,包括:
创建单元,用于在存在未刷新到磁盘上的、与第一脏页对应的重做日志的情况下,创建与所述第一脏页匹配的目标脏页,其中,所述第一脏页为脏页链表中与第一数据页对应的脏页;
第一刷新单元,用于将所述目标脏页刷新到目标磁盘中的目标位置,其中,所述目标位置为与所述目标磁盘中所述第一数据页所处的第一位置不同的位置;
第一移除单元,用于将所述第一脏页从所述脏页链表中移除;
添加单元,用于并将所述目标脏页添加到目标堆列表中。
9.一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,所述处理器、所述通信接口和所述存储器通过所述通信总线完成相互间的通信,其特征在于,
所述存储器,用于存储计算机程序;
所述处理器,用于通过运行所述存储器上所存储的所述计算机程序来执行权利要求1至7中任一项所述的方法步骤。
10.一种计算机可读的存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行权利要求1至7中任一项中所述的方法步骤。
CN202011367588.6A 2020-11-30 2020-11-30 脏页刷新方法和装置、存储介质和电子设备 Active CN112182010B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011367588.6A CN112182010B (zh) 2020-11-30 2020-11-30 脏页刷新方法和装置、存储介质和电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011367588.6A CN112182010B (zh) 2020-11-30 2020-11-30 脏页刷新方法和装置、存储介质和电子设备

Publications (2)

Publication Number Publication Date
CN112182010A CN112182010A (zh) 2021-01-05
CN112182010B true CN112182010B (zh) 2021-03-12

Family

ID=73918258

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011367588.6A Active CN112182010B (zh) 2020-11-30 2020-11-30 脏页刷新方法和装置、存储介质和电子设备

Country Status (1)

Country Link
CN (1) CN112182010B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112506941B (zh) * 2021-02-03 2021-05-11 北京金山云网络技术有限公司 核查点的处理方法和装置、电子设备和存储介质
CN112835528A (zh) * 2021-02-22 2021-05-25 北京金山云网络技术有限公司 脏页刷新方法和装置、电子设备和存储介质
CN113590596A (zh) * 2021-07-02 2021-11-02 阿里巴巴新加坡控股有限公司 数据处理方法、系统、设备、计算机程序产品及存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102541691A (zh) * 2011-12-27 2012-07-04 北京人大金仓信息技术股份有限公司 面向内存数据库oltp应用的日志检查点恢复方法
CN102682069A (zh) * 2011-03-04 2012-09-19 微软公司 管理数据库恢复时间
CN103177085A (zh) * 2013-02-26 2013-06-26 华为技术有限公司 一种检查点操作方法及装置
CN108874588A (zh) * 2018-06-08 2018-11-23 郑州云海信息技术有限公司 一种数据库实例恢复方法和装置
CN109960686A (zh) * 2019-03-26 2019-07-02 北京百度网讯科技有限公司 数据库的日志处理方法和装置
CN110019066A (zh) * 2017-09-21 2019-07-16 阿里巴巴集团控股有限公司 数据库处理方法及装置、系统
CN110543386A (zh) * 2019-09-16 2019-12-06 上海达梦数据库有限公司 一种数据存储方法、装置、设备和存储介质
CN111046024A (zh) * 2019-12-16 2020-04-21 上海达梦数据库有限公司 一种共享存储数据库的数据处理方法、装置、设备及介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180144015A1 (en) * 2016-11-18 2018-05-24 Microsoft Technology Licensing, Llc Redoing transaction log records in parallel

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102682069A (zh) * 2011-03-04 2012-09-19 微软公司 管理数据库恢复时间
CN102541691A (zh) * 2011-12-27 2012-07-04 北京人大金仓信息技术股份有限公司 面向内存数据库oltp应用的日志检查点恢复方法
CN103177085A (zh) * 2013-02-26 2013-06-26 华为技术有限公司 一种检查点操作方法及装置
CN110019066A (zh) * 2017-09-21 2019-07-16 阿里巴巴集团控股有限公司 数据库处理方法及装置、系统
CN108874588A (zh) * 2018-06-08 2018-11-23 郑州云海信息技术有限公司 一种数据库实例恢复方法和装置
CN109960686A (zh) * 2019-03-26 2019-07-02 北京百度网讯科技有限公司 数据库的日志处理方法和装置
CN110543386A (zh) * 2019-09-16 2019-12-06 上海达梦数据库有限公司 一种数据存储方法、装置、设备和存储介质
CN111046024A (zh) * 2019-12-16 2020-04-21 上海达梦数据库有限公司 一种共享存储数据库的数据处理方法、装置、设备及介质

Also Published As

Publication number Publication date
CN112182010A (zh) 2021-01-05

Similar Documents

Publication Publication Date Title
CN112182010B (zh) 脏页刷新方法和装置、存储介质和电子设备
CN111324303B (zh) Ssd垃圾回收方法、装置、计算机设备及存储介质
US20110119662A1 (en) Method for updating firmware of embedded system
CN112162773B (zh) 差分升级方法及装置、存储介质、终端
WO2018006721A1 (zh) 日志文件的存储方法及装置
CN112835528A (zh) 脏页刷新方法和装置、电子设备和存储介质
US10423580B2 (en) Storage and compression of an aggregation file
CN112506941B (zh) 核查点的处理方法和装置、电子设备和存储介质
CN109213450B (zh) 一种基于闪存阵列的关联元数据删除方法、装置及设备
CN113419897B (zh) 一种文件处理方法、装置、电子设备及其存储介质
CN105808451B (zh) 一种数据缓存方法以及相关装置
CN113407376A (zh) 一种数据恢复方法、装置及电子设备
KR100954603B1 (ko) 파일 시스템의 로그 파일 및 상기 파일 시스템의 오류 복구방법
CN111522598A (zh) 嵌入式设备的重启信息记录方法及装置
CN114675995A (zh) 数据备份方法、装置和电子设备
CN111625500B (zh) 文件快照方法及装置、电子设备和存储介质
CN110716923B (zh) 数据处理方法、装置、节点设备及存储介质
CN113849494A (zh) 一种数据更新方法及装置
CN114968963A (zh) 文件覆盖写方法、装置和电子设备
CN114675776A (zh) 资源存储方法和装置、存储介质和电子设备
CN112578772A (zh) 电子控制单元的数据处理方法及相关装置
CN111857586A (zh) 一种SSD Trim优化方法、系统、终端及存储介质
US11243844B2 (en) Method for enhancing speed of incremental backup, bridge device, and storage system
CN109753228B (zh) 快照删除方法、装置及系统
CN115617580B (zh) 基于共享sst文件的增量备份、恢复方法和系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant