CN102750317A - 数据持久化处理方法、装置及数据库系统 - Google Patents
数据持久化处理方法、装置及数据库系统 Download PDFInfo
- Publication number
- CN102750317A CN102750317A CN2012101334744A CN201210133474A CN102750317A CN 102750317 A CN102750317 A CN 102750317A CN 2012101334744 A CN2012101334744 A CN 2012101334744A CN 201210133474 A CN201210133474 A CN 201210133474A CN 102750317 A CN102750317 A CN 102750317A
- Authority
- CN
- China
- Prior art keywords
- page
- leaf
- sign
- active groups
- checkpoint
- 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.)
- Granted
Links
- 230000002688 persistence Effects 0.000 title claims abstract description 36
- 238000000034 method Methods 0.000 title claims abstract description 30
- 238000012545 processing Methods 0.000 title claims abstract description 17
- 230000015572 biosynthetic process Effects 0.000 claims description 75
- 238000011084 recovery Methods 0.000 claims description 22
- 238000003860 storage Methods 0.000 claims description 10
- 238000002360 preparation method Methods 0.000 claims description 8
- 238000012423 maintenance Methods 0.000 claims description 7
- 238000004321 preservation Methods 0.000 claims description 4
- 238000006243 chemical reaction Methods 0.000 claims description 3
- 230000000694 effects Effects 0.000 abstract description 7
- 230000007246 mechanism Effects 0.000 description 10
- 230000008569 process Effects 0.000 description 6
- 230000009471 action Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000012467 final product Substances 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 240000001439 Opuntia Species 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
- G06F11/1451—Management of the data involved in backup or backup restore by selection of backup contents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1461—Backup scheduling policy
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/80—Database-specific techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/84—Using snapshots, i.e. a logical point-in-time copy of the data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据持久化处理方法、装置及数据库系统,方法包括:在数据库系统内存每次产生脏页时,将产生的各脏页分别对应的页标识加入检查点队列;在检查点队列中确定活动组和当前组,并在预设的检查点发生时机,将活动组包括的各页标识对应的脏页依次转存到磁盘;检查点队列中与当前准备转存到磁盘的多个脏页分别对应的页标识,组成活动组;加入所述检查点队列的新的脏页插入的组为当前组;如果完成活动组相关的脏页转存,则在所述检查点队列中确定下一活动组,并在检查点发生时机,将下一活动组包括的各页标识对应的脏页依次转存到磁盘。本发明在脏页转存对正常事务操作产生较小影响的基础上,提高了脏页转存的效率。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及一种数据持久化处理方法、装置及数据库系统。
背景技术
内存相对于磁盘能够提供较高的吞吐量和快速响应,数据库系统通常将某些数据如读写较为繁琐的数据优先存放到内存中,以提高数据读写速度,实现高速缓存。数据库系统通常是以页作为高速缓存的单位,当进程修改了高速缓存里的数据时,该页就被内核标记为脏页(Dirty Page),数据库系统将会在合适的时间把脏页的数据写到磁盘中去,以保持高速缓存中的数据和磁盘中的数据是一致的。
检查点(Checkpoint)机制是使数据库能够在发生故障之后进行恢复的机制。传统的检查点机制也称为全量检查点机制,是一次性将检查点队列中的所有脏页转存到磁盘中。在使用该检查点机制进行数据持久化处理时,为保证内存与磁盘数据的一致性,需要在整个数据持久化处理期间锁定整个检查点队列,也就是说,用户的正常事务操作将被阻止比较长的一段时间。
为了克服传统的全量检查点机制影响正常事务执行的弊端,名为“模糊检查点”的机制被提了出来。模糊检查点机制旨在将产生的脏页逐步刷到磁盘中,以此减少了因数据持久化处理对用户正常事务操作造成的影响,但是具体如何实现,现有技术尚缺少存少有效的解决方案。
发明内容
本发明实施例提供一种数据持久化处理方法、装置及数据库系统,用以在一定程度上提高脏页转存的效率。
一方面,本发明实施例提供了一种数据持久化处理方法,包括:
在数据库系统内存每次产生脏页时,将产生的各脏页分别对应的页标识加入检查点队列;
在所述检查点队列中确定活动组和当前组;所述检查点队列中与当前准备转存到磁盘的多个脏页分别对应的页标识,组成所述活动组;所述检查点队列中新加入的脏页所插入的组为所述当前组;
在预设的检查点发生时机,将所述活动组包括的各页标识对应的脏页依次转存到磁盘的数据文件;
如果完成所述活动组相关的脏页转存,则在所述检查点队列中确定下一所述活动组,并在所述检查点发生时机,将下一所述活动组包括的各页标识对应的脏页依次转存到所述磁盘的数据文件。
另一方面,本发明实施例还提供了一种数据持久化处理装置,包括:
检查点队列维护单元,用于在数据库系统内存每次产生脏页时,将产生的各脏页分别对应的页标识加入检查点队列;
分组处理单元,用于在所述检查点队列中确定活动组和当前组;所述检查点队列中与当前准备转存到磁盘的多个脏页分别对应的页标识,组成所述活动组;所述检查点队列中新加入的脏页所插入的组为所述当前组;
脏页批量转存单元,用于在预设的检查点发生时机,将所述活动组包括的各页标识对应的脏页依次转存到所述磁盘的数据文件;
所述分组处理单元,还用于如果完成所述活动组相关的脏页转存,则在所述检查点队列中确定下一所述活动组;
所述脏页批量转存单元,还用于在所述检查点发生时机,将下一所述活动组包括的各页标识对应的脏页依次转存到所述磁盘的数据文件。
再一方面,本发明实施例还提供了一种数据库系统,包括:磁盘文件、内存数据库以及数据库管理系统,所述数据库管理系统用于管理所述内存数据库中存储的数据,所述数据库管理系统包括上述的数据持久化处理装置,所述数据持久化处理装置用于将内存数据库中存储的数据转存到所述磁盘文件中。
本发明实施例提供的数据持久化处理方法和装置及数据库系统,动态维护一检查点队列,将检查点队列中与当前准备转存到磁盘的多个脏页对应的页标识作为活动组,检查点队列新加入的脏页所插入的组为当前组,每一检查点发生时机,将一活动组包括的各页标识对应的脏页依次转存到磁盘的数据库中,完成一活动组包括的各页标识对应的脏页的转存之后,在检查点队列中确定下一活动组,以在下一检查点发生时机,将该下一活动组包括的各页标识对应的脏页依次转存到磁盘的数据文件。如此循环处理,实现了按检查点发生时机分组批量向磁盘转存脏页,由此在脏页转存对正常事务操作产生较小影响的基础上,提高了脏页转存的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种数据持久化处理方法流程图;
图2a为本发明实施例提供的检查点队列分组示例一;
图2b为本发明实施例提供的向检测点队列加入页标识的示例;
图2c为本发明实施例提供的检查点队列分组示例二;
图2d为本发明实施例提供的检查点队列分组示例三;
图3为本发明实施例提供的检查点队列各页标识、原子操作以及日志缓冲区地址之间的对应关系示例;
图4为本发明实施例提供的一种数据持久化处理装置的结构示意图;
图5为本发明实施例提供的另一种数据持久化处理装置的结构示意图;
图6为本发明实施例提供的一种数据库系统的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例提供的一种数据持久化处理方法流程图。如图1所示,本实施例提供的数据持久化处理方法包括:
11:在数据库系统内存每次产生脏页时,将产生的各脏页分别对应的页标识加入检查点队列。
数据库系统中动态维护一检查点队列,该检查点队列用于缓存数据库系统内存产生的各脏页对应的页标识。在数据库系统内存每次产生脏页时,可将产生的各脏页以时间先后顺序,依次将相应脏页的页标识加入检查点队列。如果检查点队列包括的任一页标识对应的脏页的数据,由内存转存到磁盘的数据文件之后,该脏页的页标识在检查点队列中自动删除。
12:在所述检查点队列中确定活动组(Active Group)和当前组(CurrentGroup),并在预设的检查点发生时机,将所述活动组包括的各页标识对应的脏页依次转存到所述磁盘的数据文件;所述检查点队列中与当前准备转存到磁盘的多个脏页分别对应的页标识,组成所述活动组;所述检查点队列中新加入的脏页所插入的组为所述当前组。
可对检查点队列包括的各页标识进行分组,以便实现脏页的批量分组转存。例如:可将检查点队列中与当前需要转存到磁盘的各脏页分别对应的各页标识,组成活动组;检查点队列中新加入的脏页所插入的组为当前组。在一种可选的实现方式中,可为活动组包括的各页标识打一活动组标识;如此处理之后,检查点队列包括的各页标识分为两类,一类是打上活动组标识的页标识,即活动组包括的各页标识,这些页标识对应的脏页为当前需要从内存转存到磁盘的脏页;另一类为没有打上活动组标识的页标识,即检查点队列除了活动组包括的各页标识之外的其他各页标识,均没有打上活动组标识。活动组确定完成之后,检查点队列中当前组可选示例如图2a所示。此时,如果数据库系统中产生有新的脏页,则将新产生的脏页按时间顺序依次加入检查点序列,并且新加入的页标识所插入的组为当前组,可选示例如图2b所示。图2a和图2b是将检查点队列中最先加入的四个页标识作为活动组,该活动组的确定方式仅为一个示例性说明,不应理解为对本发明技术实质的限制。
在确定当前的活动组之后,可在检查点发生时机,将活动组包括的各页标识对应的脏页依次转存到所述磁盘的数据文件。其中,检查点发生时机可预先确定,例如:可从原子操作角度确定所述检查点的发生时机,以降低检查点机制对正常事务操作的影响。
当任一页标识对应的脏页转存到磁盘的数据文件之后,检查点队列中可自动删除该页标识,即相当于在活动组中自动删除该页标识。
13:如果完成所述活动组相关的脏页转存,则在所述检查点队列中确定下一所述活动组,并在所述检查点发生时机,将下一所述活动组包括的各页标识对应的脏页依次转存到所述磁盘的数据文件。
在活动组包括的各页标识对应的脏页都转存到磁盘的数据文件之后,可在检查点队列中确定下一活动组,即相当于在检查点队列剩余的页标识中重新分组,其示例如图2c所示,虚线部分为检查点队列中已删除的上一活动组包括的各页标识。
如果检查点队列剩余的页标识数量,小于一个活动组预设的需包括的预设页标识数量,则可将检查点队列剩余的各页标识全部划分为活动组。例如图2d所示,活动组预设的需包括4个页标识,而检查点队列尚未完成转存的脏页的页标识的数量为1个,表示为P9,该情形下,可直接将P9作为一新活动组包括的页标识。
在下一活动组确定之后,可在新的检查点发生时机,将该活动组包括的各页标识对应的脏页转存到磁盘的数据文件中;并将在分组之后内存产生的新的脏页的页标识,加入当前组中,具体实现方式与12相似,在此不再赘述。
如果检查点队列剩余的页标识数量为0,即检查点队列为空,则不执行上述12和13,待检查点队列新加入有页标识且新的检查点发生时机到来时,重复执行上述12和13。
本实施例提供的数据持久化处理方法动态维护一检查点队列,将检查点队列中与当前准备转存到磁盘的多个脏页对应的页标识作为活动组,检查点队列新加入的脏页所插入的组为当前组,每一检查点发生时机,将一活动组包括的各页标识对应的脏页依次转存到磁盘的数据库中,完成一活动组包括的各页标识对应的脏页的转存之后,在检查点队列中确定下一活动组,以在下一检查点发生时机,将该下一活动组包括的各页标识对应的脏页依次转存到磁盘的数据文件。如此循环处理,实现了按检查点发生时机分组批量向磁盘转存脏页,由此在脏页转存对正常事务操作产生较小影响的基础上,提高了脏页转存的效率。
在上述技术方案的基础上,可选的,如果确定需要对所述检查点队列包括的任一页标识对应的脏页进行修改,则判断该页标识是否属于所述活动组;如果是,则在将该页标识对应的脏页转存到磁盘的数据文件之前,创建该页标识对应的脏页的镜像页;否则,不创建该页标识对应的脏页的镜像页。在完成该页标识对应的脏页的镜像页的创建之后,如果轮到该页标识对应的脏页的转存操作,则将该页标识对应的镜像页转存到磁盘的数据文件中。如此处理由于无需为检查点队列中每一页标识对应的脏页创建镜像页,而仅为活动组中确定需要修改的页标识创建相应的镜像页,因此减少了创建镜页所需的内存空间,保证了内存和磁盘的数据一致性。
在上述技术方案的基础上,可选的,一原子操作可涉及多个脏页,一活动组可能包括多个原子操作涉及的脏页。在将该活动组包括的各页标识对应的脏页转存到磁盘的数据文件之前,可将该活动组关联的各原子操作在内存的日志缓冲区中缓存的日志,转存到磁盘的日志文件中;例如:确定与当前的所述活动组包括的各页标识关联的原子操作;在所述数据库内存的日志缓冲区中,获取与确定的原子操作关联的各日志缓冲区地址;将获取的各日志缓冲区地址缓存的日志转存到所述磁盘的日志文件。在完成相应日志的转存之后,再将该活动组包括的各页标识对应的脏页转存到磁盘的数据文件。
下面以图3为例进行说明。如图3所示的示例中,P表示页标识,A表示原子操作;检测点队列当前的活动组包括的页标识为P1-P6,其中:P1、P2和P14为原子操作A1涉及的各脏页的页标识,P1和P2属于活动组,P14属于非活动组;P1、P2和P14对应的脏页的最新数据缓存在内存的日志缓冲区与原子操作A1相应的缓冲区地址内。该场景在检查点发生时机如数据库系统内存当前没有正在运行的原子操作,可获取与原子操作A1关联的各日志缓冲区地址,将获取的各日志缓冲区地址缓存的日志,即P1、P2和P14相应的日志转存到磁盘的日志文件;之后,在依次将P1和P2对应的脏页转存到磁盘的数据文件。活动组包括的各页标识P1-P6各自对应的脏页都转存到磁盘的数据文件之后,在检查点队列剩余的页标识中重新确定下一活动组,并在下一检查点发生时机到来时执行上述相似的操作,如此处理有利于在基于磁盘进行数据库系统进行故障恢复时,保证恢复数据的正确性。
不妨再以图3为例进行说明。例如:原子操作A1涉及的页标识为P1、P2和P14的脏页。假设原子操作A1为:将用户帐号U1转帐100元到用户帐号U2,其中P1和P2对应的脏页对应该原子操作中从用户帐号U1扣款100元的操作,P14对应的脏页对应该原子操作中从用户帐号U2增加100元的操作。日志缓冲区记录了用户账号U1和U2的余额,如P1对应的用户账号U1的余额为100而用户账号U2的余额为0,P2对应的用户账号U1的余额为0而用户账号U2的余额为0,P14对应的用户账号U1的余额为0而用户账号U2的余额为100。如果数据库系统在将P1和P2对应的脏页转存到磁盘的数据文件之后发生故障,该情形下基于磁盘存储的信息对需要对发生故障的数据库系统进行恢复时,可根据磁盘的数据文件中P1和P2的数据恢复数据库系统中原子操作A1涉及的相应数据,此时恢复的数据显示:用户账号U1的余额为0而用户账号U2的余额为0。之后在基于磁盘的日志文件中原子操作A1涉及的各日志,对数据库系统中恢复的原子操作A1涉及的相应数据进行更新,如磁盘的日志文件中存储的与P14对应的日志,即用户账号U1的余额为0而用户账号U2的余额为100,将上述恢复数据中用户账号U2的余额更新为100,由此在基于磁盘进行数据库系统进行故障恢复时,保证了恢复数据的正确性。
进一步可选的,可在活动组的脏页转存操作完成、且确定下一所述活动组之后,获取下一所述活动组包括的各页标识关联的各原子操作的日志文件起始点;任一原子操作的日志文件起始点用于指示:所述任一原子操作开始运行时产生的日志,在所述日志文件中的保存位置;所述日志文件包括的各日志按时间先后顺序保存。设置获取的各原子操作的日志文件起始点的最小值,为当前的数据库恢复点;所述数据库恢复点用于指示:如果所述数据库系统在完成将下一所述活动组包括的各页标识对应的脏页转存到所述磁盘之前发生故障,对发生故障的数据库系统进行恢复时,在所述日志文件中读取恢复所需日志的起始点。如此处理可根据恢复点快速确定数据库恢复需要使用的日志,以提高数据库系统恢复的速度。例如图3中,在完成将当前的活动组G1包括的各页标识P1-P6对应的脏页转存到磁盘之后,获取下一活动组G2关联的各原子操作A2、A3和A4的日志文件起始点,并从获取的各日志文件起始点中取最小值,将该最小值作为当前的数据库恢复点。如果数据库系统在执行活动组G2的脏页转存操作过程中发生故障,则当前的数据库恢复点即作为数据库系进行恢复时,在所述日志文件中读取恢复所需日志的起始点,可确定日志文件中自恢复点之后的各日志为数据库恢复需要使用的日志。
需要说明的是:对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域普通技术人员可以知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
图4为本发明实施例提供的一种数据持久化处理装置的结构示意图。具体的,如图4所示的数据持久化处理装置40包括:检查点队列维护单元41、分组处理单元42和脏页批量转存单元43。
检查点队列维护单元41可用于在数据库系统内存每次产生脏页时,将产生的各脏页分别对应的页标识加入检查点队列;
分组处理单元42可用于在所述检查点队列中确定活动组和当前组;所述检查点队列中与当前准备转存到磁盘的多个脏页分别对应的页标识,组成所述活动组;所述检查点队列中新加入的脏页所插入的组为当前组;
脏页批量转存单元43可用于在预设的检查点发生时机,将所述活动组包括的各页标识对应的脏页依次转存到所述磁盘的数据文件。
所述分组处理单元42还可用于如果完成所述活动组相关的脏页转存,则在所述检查点队列中确定下一所述活动组。
所述脏页批量转存单元43还可用于在所述检查点发生时机,将下一所述活动组包括的各页标识对应的脏页依次转存到所述磁盘的数据文件。
为了保证数据库系统内存运行的原子操作的连贯性,所述检查点发生时机包括:所述数据库系统内存当前没有正在运行的原子操作。
采用上述数据持久化处理装置,可实现脏页根据检查点发生时机分组批量向磁盘的数据文件转存脏页,由此在尽量减少检查点执行过程中对用户正常事务处理过程的影响的同时,提高脏页转存的效率。
如图5所示,在上述技术方案的基础上,可选的,数据持久化处理装置40还可包括:镜像页创建单元44。镜像页创建单元44可用于在确定所述活动组之后,如果确定需要对所述检查点队列包括的任一页标识对应的脏页进行修改,则判断所述任一页标识是否属于所述活动组;如果是,则在将所述任一页标识对应的脏页转存到所述磁盘的数据文件之前,创建所述任一页标识对应的脏页的镜像页;否则,不创建所述任一页标识对应的脏页的镜像页。由于仅对当前的活动组包括的页标识对应的脏页进行修改时,才需创建该脏页的镜像页,由此节省了存储镜像页所需的存储空间。所述脏页批量转存单元43在需要对任一页标识对应的脏页进行从内存到磁盘的转存处理时,如果该页标识创建有镜像页,则将该页标识对应的镜像页,从内存转存到磁盘的数据文件中。
在上述技术方案的基础上,可选的,数据持久化处理装置40还可包括:日志文件转存处理单元45。日志文件转存处理单元45用于确定与所述活动组包括的各页标识关联的原子操作;在所述数据库内存的日志缓冲区中,获取与确定的原子操作关联的各日志缓冲区地址;将获取的各日志缓冲区地址缓存的日志转存到所述磁盘的日志文件。如此处理,有利于在基于磁盘进行数据库系统进行故障恢复时,保证恢复数据的正确性。
进一步可选的,数据持久化处理装置40还可包括:数据库恢复点设置模块46。数据库恢复点设置模块46可用于获取下一所述活动组包括的各页标识关联的各原子操作的日志文件起始点;任一原子操作的日志文件起始点用于指示:所述任一原子操作开始运行时产生的日志,在所述日志文件中的保存位置;所述日志文件包括的各日志按时间先后顺序保存;设置获取的各原子操作的日志文件起始点的最小值,为当前的数据库恢复点;所述数据库恢复点用于指示:如果所述数据库系统在完成将下一所述活动组包括的各页标识对应的脏页转存到所述磁盘之前发生故障,对发生故障的数据库系统进行恢复时,在所述日志文件中读取恢复所需日志的起始点。如此处理,可根据恢复点快速确定数据库恢复需要使用的日志,以提高数据库系统恢复的速度。
本发明实施例提供的数据持久化处理装置,用于实现本发明实施例提供的数据持久化处理方法,其工作机理可参见本发明上述方法实施例的相应记载,在此不再赘述。
如图6所示,本发明实施例还提供了一种数据库系统,包括磁盘文件53、内存数据库52以及数据库管理系统51。数据库管理系统51用于管理内存数据库52中存储的数据,该数据库管理系统51包括上述任一数据持久化处理装置40,该数据持久化处理装置40用于将内存数据库52中存储的数据转存到磁盘文件53(即在磁盘上存储的数据文件)中,由此实现了按检查点发生时机分组批量向磁盘转存脏页,在脏页转存对正常事务操作产生较小影响的基础上,提高了脏页转存的效率。其中,数据持久化处理装置40的具体模块划分和功能方法流程可以参照前述实施例,在此不再赘述。
本发明方案可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序单元。一般地,程序单元包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明方案,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序单元可以位于包括存储设备在内的本地和远程计算机存储介质中。
另外,在本发明各个实施例中的各功能单元可以集成在一个单元中,也可以是各个功能单元单独物理存在,或者是两个或两个以上功能单元集成在一个单元中。上述集成的单元既可以采用硬件的形式或采用软件功能单元的形式实现,也可以采用硬件加软件功能单元的形式实现。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本领域普通技术人员可以理解:实施例中的装置中的模块可以按照实施例描述分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的单元可以合并为一个单元,也可以进一步拆分成多个子模块。所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解:附图只是一个实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (11)
1.一种数据持久化处理方法,其特征在于,包括:
在数据库系统内存每次产生脏页时,将产生的各脏页分别对应的页标识加入检查点队列;
在所述检查点队列中确定活动组和当前组;所述检查点队列中与当前准备转存到磁盘的多个脏页分别对应的页标识,组成所述活动组;所述检查点队列中新加入的脏页所插入的组为所述当前组;
在预设的检查点发生时机,将所述活动组包括的各页标识对应的脏页依次转存到所述磁盘的数据文件;
如果完成所述活动组相关的脏页转存,则在所述检查点队列中确定下一所述活动组,并在所述检查点发生时机,将下一所述活动组包括的各页标识对应的脏页依次转存到所述磁盘的数据文件。
2.根据权利要求1所述的方法,其特征在于,在确定所述活动组之后,所述方法还包括:
如果确定需要对所述检查点队列包括的任一页标识对应的脏页进行修改,则判断所述任一页标识是否属于所述活动组;如果是,则在将所述任一页标识对应的脏页转存到所述磁盘的数据文件之前,创建所述任一页标识对应的脏页的镜像页;否则,不创建所述任一页标识对应的脏页的镜像页。
3.根据权利要求1或2所述的方法,其特征在于,所述检查点发生时机包括:所述数据库系统内存当前没有正在运行的原子操作。
4.根据权利要求1至3任一项所述的方法,其特征在于,在将所述活动组包括的各页标识对应的脏页依次转存到所述磁盘的数据文件之前,所述方法还包括:
确定与所述活动组包括的各页标识关联的原子操作;
在所述数据库内存的日志缓冲区中,获取与所述原子操作关联的各日志缓冲区地址;
将获取的各日志缓冲区地址缓存的日志转存到所述磁盘的日志文件。
5.根据权利要求4所述的方法,其特征在于,在将当前所述活动组包括的各页标识对应的脏页依次转存到所述磁盘的数据文件、且确定下一所述活动组之后,所述方法还包括:
获取下一所述活动组包括的各页标识关联的各原子操作的日志文件起始点;任一原子操作的日志文件起始点用于指示:所述任一原子操作开始运行时产生的日志,在所述日志文件中的保存位置;所述日志文件包括的各日志按时间先后顺序保存;
设置获取的各原子操作的日志文件起始点的最小值,为数据库恢复点;所述数据库恢复点用于指示:如果所述数据库系统在完成将下一所述活动组包括的各页标识对应的脏页转存到所述磁盘之前发生故障,对发生故障的数据库系统进行恢复时,在所述日志文件中读取恢复所需日志的起始点。
6.一种数据持久化处理装置,其特征在于,包括:
检查点队列维护单元,用于在数据库系统内存每次产生脏页时,将产生的各脏页分别对应的页标识加入检查点队列;
分组处理单元,用于在所述检查点队列中确定活动组和当前组;所述检查点队列中与当前准备转存到磁盘的多个脏页分别对应的页标识,组成所述活动组;所述检查点队列中新加入的脏页所插入的组为所述当前组;
脏页批量转存单元,用于在预设的检查点发生时机,将所述活动组包括的各页标识对应的脏页依次转存到所述磁盘的数据文件;
所述分组处理单元,还用于如果完成所述活动组相关的脏页转存,则在所述检查点队列中确定下一所述活动组;
所述脏页批量转存单元,还用于在所述检查点发生时机,将下一所述活动组包括的各页标识对应的脏页依次转存到所述磁盘的数据文件。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
镜像页创建单元,用于在确定所述活动组之后,如果确定需要对所述检查点队列包括的任一页标识对应的脏页进行修改,则判断所述任一页标识是否属于所述活动组;如果是,则在将所述任一页标识对应的脏页转存到所述磁盘的数据文件之前,创建所述任一页标识对应的脏页的镜像页;否则,不创建所述任一页标识对应的脏页的镜像页。
8.根据权利要求6或7所述的装置,其特征在于,所述检查点发生时机包括:所述数据库系统内存当前没有正在运行的原子操作。
9.根据权利要求6至8任一项所述的装置,其特征在于,所述装置还包括:
日志文件转存处理单元,用于确定与所述活动组包括的各页标识关联的原子操作;在所述数据库内存的日志缓冲区中,获取与所述原子操作关联的各日志缓冲区地址;将获取的各日志缓冲区地址缓存的日志转存到所述磁盘的日志文件。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:
数据库恢复点设置模块,用于获取下一所述活动组包括的各页标识关联的各原子操作的日志文件起始点;任一原子操作的日志文件起始点用于指示:所述任一原子操作开始运行时产生的日志,在所述日志文件中的保存位置;所述日志文件包括的各日志按时间先后顺序保存;设置获取的各原子操作的日志文件起始点的最小值,为数据库恢复点;所述数据库恢复点用于指示:如果所述数据库系统在完成将下一所述活动组包括的各页标识对应的脏页转存到所述磁盘之前发生故障,对发生故障的数据库系统进行恢复时,在所述日志文件中读取恢复所需日志的起始点。
11.一种数据库系统,其特征在于,包括磁盘文件、内存数据库以及数据库管理系统,所述数据库管理系统用于管理所述内存数据库中存储的数据,所述数据库管理系统包括如权利要求6至10任一项所述的数据持久化处理装置,所述数据持久化处理装置用于将内存数据库中存储的数据转存到所述磁盘文件中。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210133474.4A CN102750317B (zh) | 2012-05-02 | 2012-05-02 | 数据持久化处理方法、装置及数据库系统 |
PCT/CN2012/083305 WO2013163864A1 (zh) | 2012-05-02 | 2012-10-22 | 数据持久化处理方法、装置及数据库系统 |
US14/529,501 US20150058295A1 (en) | 2012-05-02 | 2014-10-31 | Data Persistence Processing Method and Apparatus, and Database System |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210133474.4A CN102750317B (zh) | 2012-05-02 | 2012-05-02 | 数据持久化处理方法、装置及数据库系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102750317A true CN102750317A (zh) | 2012-10-24 |
CN102750317B CN102750317B (zh) | 2015-01-21 |
Family
ID=47030504
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210133474.4A Active CN102750317B (zh) | 2012-05-02 | 2012-05-02 | 数据持久化处理方法、装置及数据库系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20150058295A1 (zh) |
CN (1) | CN102750317B (zh) |
WO (1) | WO2013163864A1 (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103177085A (zh) * | 2013-02-26 | 2013-06-26 | 华为技术有限公司 | 一种检查点操作方法及装置 |
CN103218430A (zh) * | 2013-04-11 | 2013-07-24 | 华为技术有限公司 | 控制数据写入的方法、系统及设备 |
CN104408126A (zh) * | 2014-11-26 | 2015-03-11 | 杭州华为数字技术有限公司 | 一种数据库的持久化写入方法、装置和系统 |
CN104462127A (zh) * | 2013-09-22 | 2015-03-25 | 阿里巴巴集团控股有限公司 | 一种记录数据更新方法及装置 |
CN110874287A (zh) * | 2018-08-31 | 2020-03-10 | 阿里巴巴集团控股有限公司 | 数据库中数据的备份及恢复方法、装置及电子设备 |
CN113961138A (zh) * | 2020-07-21 | 2022-01-21 | 北京金山云网络技术有限公司 | 数据处理方法、装置、系统和电子设备 |
WO2022096975A1 (en) * | 2020-11-05 | 2022-05-12 | International Business Machines Corporation | Delivery of event notifications from distributed file system |
CN115061858A (zh) * | 2022-08-19 | 2022-09-16 | 湖南视拓信息技术股份有限公司 | 数据持久化方法、装置、计算机设备及存储介质 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9304998B2 (en) * | 2012-12-19 | 2016-04-05 | Microsoft Technology Licensing, Llc | Main-memory database checkpointing |
US9471632B2 (en) * | 2013-10-18 | 2016-10-18 | International Business Machines Corporation | Query optimization considering virtual machine mirroring costs |
US10216598B2 (en) * | 2017-07-11 | 2019-02-26 | Stratus Technologies Bermuda Ltd. | Method for dirty-page tracking and full memory mirroring redundancy in a fault-tolerant server |
CN107562642B (zh) * | 2017-07-21 | 2020-03-20 | 华为技术有限公司 | 检查点淘汰方法和装置 |
WO2020238748A1 (zh) * | 2019-05-31 | 2020-12-03 | 阿里巴巴集团控股有限公司 | 数据同步的处理方法、装置、电子设备及计算机存储介质 |
CN111563053B (zh) * | 2020-07-10 | 2020-12-11 | 阿里云计算有限公司 | 处理Bitmap数据的方法以及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6738866B2 (en) * | 2000-06-20 | 2004-05-18 | International Business Machines Corporation | Memory management of data buffers incorporating hierarchical victim selection |
CN1652111A (zh) * | 2005-02-24 | 2005-08-10 | 中兴通讯股份有限公司 | 一种实时数据库事务操作的实现方法 |
CN101901250A (zh) * | 2010-06-08 | 2010-12-01 | 中兴通讯股份有限公司 | 一种内存数据库及其数据处理方法 |
CN102012849A (zh) * | 2010-11-19 | 2011-04-13 | 中国人民大学 | 一种基于闪存的数据库恢复方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020103819A1 (en) * | 2000-12-12 | 2002-08-01 | Fresher Information Corporation | Technique for stabilizing data in a non-log based information storage and retrieval system |
AU2002248570B2 (en) * | 2001-03-07 | 2007-09-20 | Oracle International Corporation | Managing checkpoint queues in a multiple node system |
US6671786B2 (en) * | 2001-06-07 | 2003-12-30 | Microsoft Corporation | System and method for mirroring memory with restricted access to main physical mirrored memory |
US7587429B2 (en) * | 2004-05-24 | 2009-09-08 | Solid Information Technology Oy | Method for checkpointing a main-memory database |
CN101464820B (zh) * | 2009-01-16 | 2012-02-01 | 中国科学院计算技术研究所 | 磁盘设备的持续数据保护方法和系统 |
US9235531B2 (en) * | 2010-03-04 | 2016-01-12 | Microsoft Technology Licensing, Llc | Multi-level buffer pool extensions |
CN101819561A (zh) * | 2010-04-21 | 2010-09-01 | 中兴通讯股份有限公司 | 文件下载方法及系统 |
US9122631B2 (en) * | 2011-11-07 | 2015-09-01 | Peking University | Buffer management strategies for flash-based storage systems |
-
2012
- 2012-05-02 CN CN201210133474.4A patent/CN102750317B/zh active Active
- 2012-10-22 WO PCT/CN2012/083305 patent/WO2013163864A1/zh active Application Filing
-
2014
- 2014-10-31 US US14/529,501 patent/US20150058295A1/en not_active Abandoned
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6738866B2 (en) * | 2000-06-20 | 2004-05-18 | International Business Machines Corporation | Memory management of data buffers incorporating hierarchical victim selection |
CN1652111A (zh) * | 2005-02-24 | 2005-08-10 | 中兴通讯股份有限公司 | 一种实时数据库事务操作的实现方法 |
CN101901250A (zh) * | 2010-06-08 | 2010-12-01 | 中兴通讯股份有限公司 | 一种内存数据库及其数据处理方法 |
CN102012849A (zh) * | 2010-11-19 | 2011-04-13 | 中国人民大学 | 一种基于闪存的数据库恢复方法 |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103177085A (zh) * | 2013-02-26 | 2013-06-26 | 华为技术有限公司 | 一种检查点操作方法及装置 |
CN103218430A (zh) * | 2013-04-11 | 2013-07-24 | 华为技术有限公司 | 控制数据写入的方法、系统及设备 |
CN103218430B (zh) * | 2013-04-11 | 2016-03-02 | 华为技术有限公司 | 控制数据写入的方法、系统及设备 |
CN104462127A (zh) * | 2013-09-22 | 2015-03-25 | 阿里巴巴集团控股有限公司 | 一种记录数据更新方法及装置 |
CN104408126A (zh) * | 2014-11-26 | 2015-03-11 | 杭州华为数字技术有限公司 | 一种数据库的持久化写入方法、装置和系统 |
CN104408126B (zh) * | 2014-11-26 | 2018-06-15 | 杭州华为数字技术有限公司 | 一种数据库的持久化写入方法、装置和系统 |
CN110874287A (zh) * | 2018-08-31 | 2020-03-10 | 阿里巴巴集团控股有限公司 | 数据库中数据的备份及恢复方法、装置及电子设备 |
CN110874287B (zh) * | 2018-08-31 | 2023-05-02 | 阿里巴巴集团控股有限公司 | 数据库中数据的备份及恢复方法、装置及电子设备 |
CN113961138A (zh) * | 2020-07-21 | 2022-01-21 | 北京金山云网络技术有限公司 | 数据处理方法、装置、系统和电子设备 |
WO2022096975A1 (en) * | 2020-11-05 | 2022-05-12 | International Business Machines Corporation | Delivery of event notifications from distributed file system |
US11593309B2 (en) | 2020-11-05 | 2023-02-28 | International Business Machines Corporation | Reliable delivery of event notifications from a distributed file system |
GB2615715A (en) * | 2020-11-05 | 2023-08-16 | Ibm | Delivery of event notifications from distributed file system |
CN115061858A (zh) * | 2022-08-19 | 2022-09-16 | 湖南视拓信息技术股份有限公司 | 数据持久化方法、装置、计算机设备及存储介质 |
CN115061858B (zh) * | 2022-08-19 | 2022-12-06 | 湖南视拓信息技术股份有限公司 | 数据持久化方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2013163864A1 (zh) | 2013-11-07 |
US20150058295A1 (en) | 2015-02-26 |
CN102750317B (zh) | 2015-01-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102750317A (zh) | 数据持久化处理方法、装置及数据库系统 | |
CN104040481B (zh) | 用于融合、存储和检索增量式备份数据的方法和系统 | |
CN103092905B (zh) | 使用虚拟文件数据对象的列式数据库 | |
EP2477128B1 (en) | Systems and methods for providing increased scalability in deduplication storage systems | |
CN102521072B (zh) | 虚拟磁带库设备及数据恢复方法 | |
CN103761190B (zh) | 数据处理方法及装置 | |
US20150213100A1 (en) | Data synchronization method and system | |
CN106021016A (zh) | 在快照之间的虚拟时间点访问 | |
CN102843396A (zh) | 一种分布式缓存系统中的数据写入及读取方法及装置 | |
CN102331949A (zh) | 一种虚拟机内存快照生成和恢复方法、装置及系统 | |
CN102662992A (zh) | 一种海量小文件的存储、访问方法及装置 | |
CN102646064A (zh) | 支持迁移的增量虚拟机备份 | |
CN103197988A (zh) | 一种数据备份、恢复的方法、设备和数据库系统 | |
CN105339903A (zh) | 恢复文件系统对象 | |
CN103034592B (zh) | 数据处理方法和装置 | |
CN103037004A (zh) | 云存储系统操作的实现方法和装置 | |
US10642530B2 (en) | Global occupancy aggregator for global garbage collection scheduling | |
CN102541691A (zh) | 面向内存数据库oltp应用的日志检查点恢复方法 | |
CN107885616A (zh) | 一种基于文件系统解析的海量小文件备份恢复方法 | |
US8843450B1 (en) | Write capable exchange granular level recoveries | |
CN105302665A (zh) | 一种改进的写时拷贝快照方法及系统 | |
CN110019063B (zh) | 计算节点数据容灾回放的方法、终端设备及存储介质 | |
CN102073690B (zh) | 一种支持历史Key信息的内存数据库的构建方法 | |
CN107220342A (zh) | 一种分布式数据库的控制方法及系统 | |
CN103092955A (zh) | 检查点操作方法、装置及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220210 Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province Patentee after: Huawei Cloud Computing Technologies Co.,Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd. |
|
TR01 | Transfer of patent right |