数据持久化处理方法、装置及数据库系统制造方法及图纸

技术编号:7917684 阅读:123 留言:0更新日期:2012-10-25 02:37
本发明专利技术公开了一种数据持久化处理方法、装置及数据库系统,方法包括:在数据库系统内存每次产生脏页时,将产生的各脏页分别对应的页标识加入检查点队列;在检查点队列中确定活动组和当前组,并在预设的检查点发生时机,将活动组包括的各页标识对应的脏页依次转存到磁盘;检查点队列中与当前准备转存到磁盘的多个脏页分别对应的页标识,组成活动组;加入所述检查点队列的新的脏页插入的组为当前组;如果完成活动组相关的脏页转存,则在所述检查点队列中确定下一活动组,并在检查点发生时机,将下一活动组包括的各页标识对应的脏页依次转存到磁盘。本发明专利技术在脏页转存对正常事务操作产生较小影响的基础上,提高了脏页转存的效率。

【技术实现步骤摘要】

本专利技术涉及计算机
,特别是涉及一种数据持久化处理方法、装置及数据库系统
技术介绍
内存相对于磁盘能够提供较高的吞吐量和快速响应,数据库系统通常将某些数据如读写较为繁琐的数据优先存放到内存中,以提高数据读写速度,实现高速缓存。数据库系统通常是以页作为高速缓存的单位,当进程修改了高速缓存里的数据时,该页就被内核标记为脏页(Dirty Page),数据库系统将会在合适的时间把脏页的数据写到磁盘中去,以保持高速缓存中的数据和磁盘中的数据是一致的。检查点(Checkpoint)机制是使数据库能够在发生故障之后进行恢复的机制。传 统的检查点机制也称为全量检查点机制,是一次性将检查点队列中的所有脏页转存到磁盘中。在使用该检查点机制进行数据持久化处理时,为保证内存与磁盘数据的一致性,需要在整个数据持久化处理期间锁定整个检查点队列,也就是说,用户的正常事务操作将被阻止比较长的一段时间。为了克服传统的全量检查点机制影响正常事务执行的弊端,名为“模糊检查点”的机制被提了出来。模糊检查点机制旨在将产生的脏页逐步刷到磁盘中,以此减少了因数据持久化处理对用户正常事务操作造成的影响,但是具体如何实现,现有技术尚缺少存少有效的解决方案。
技术实现思路
本专利技术实施例提供一种数据持久化处理方法、装置及数据库系统,用以在一定程度上提高脏页转存的效率。一方面,本专利技术实施例提供了一种数据持久化处理方法,包括在数据库系统内存每次产生脏页时,将产生的各脏页分别对应的页标识加入检查点队列;在所述检查点队列中确定活动组和当前组;所述检查点队列中与当前准备转存到磁盘的多个脏页分别对应的页标识,组成所述活动组;所述检查点队列中新加入的脏页所插入的组为所述当前组;在预设的检查点发生时机,将所述活动组包括的各页标识对应的脏页依次转存到磁盘的数据文件;如果完成所述活动组相关的脏页转存,则在所述检查点队列中确定下一所述活动组,并在所述检查点发生时机,将下一所述活动组包括的各页标识对应的脏页依次转存到所述磁盘的数据文件。另一方面,本专利技术实施例还提供了一种数据持久化处理装置,包括检查点队列维护单元,用于在数据库系统内存每次产生脏页时,将产生的各脏页分别对应的页标识加入检查点队列;分组处理单元,用于在所述检查点队列中确定活动组和当前组;所述检查点队列中与当前准备转存到磁盘的多个脏页分别对应的页标识,组成所述活动组;所述检查点队列中新加入的脏页所插入的组为所述当前组;脏页批量转存单元,用于在预设的检查点发生时机,将所述活动组包括的各页标识对应的脏页依次转存到所述磁盘的数据文件;所述分组处理单元,还用于如果完成所述活动组相关的脏页转存,则在所述检查点队列中确定下一所述活动组;所述脏页批量转存单元,还用于在所述检查点发生时机,将下一所述活动组包括的各页标识对应的脏页依次转存到所述磁盘的数据文件。 再一方面,本专利技术实施例还提供了一种数据库系统,包括磁盘文件、内存数据库以及数据库管理系统,所述数据库管理系统用于管理所述内存数据库中存储的数据,所述数据库管理系统包括上述的数据持久化处理装置,所述数据持久化处理装置用于将内存数据库中存储的数据转存到所述磁盘文件中。本专利技术实施例提供的数据持久化处理方法和装置及数据库系统,动态维护一检查点队列,将检查点队列中与当前准备转存到磁盘的多个脏页对应的页标识作为活动组,检查点队列新加入的脏页所插入的组为当前组,每一检查点发生时机,将一活动组包括的各页标识对应的脏页依次转存到磁盘的数据库中,完成一活动组包括的各页标识对应的脏页的转存之后,在检查点队列中确定下一活动组,以在下一检查点发生时机,将该下一活动组包括的各页标识对应的脏页依次转存到磁盘的数据文件。如此循环处理,实现了按检查点发生时机分组批量向磁盘转存脏页,由此在脏页转存对正常事务操作产生较小影响的基础上,提高了脏页转存的效率。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图I为本专利技术实施例提供的一种数据持久化处理方法流程图;图2a为本专利技术实施例提供的检查点队列分组示例一;图2b为本专利技术实施例提供的向检测点队列加入页标识的示例;图2c为本专利技术实施例提供的检查点队列分组示例二 ;图2d为本专利技术实施例提供的检查点队列分组示例三;图3为本专利技术实施例提供的检查点队列各页标识、原子操作以及日志缓冲区地址之间的对应关系不例;图4为本专利技术实施例提供的一种数据持久化处理装置的结构示意图;图5为本专利技术实施例提供的另一种数据持久化处理装置的结构示意图;图6为本专利技术实施例提供的一种数据库系统的结构示意图。具体实施例方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。图I为本专利技术实施例提供的一种数据持久化处理方法流程图。如图I所示,本实施例提供的数据持久化处理方法包括11 :在数据库系统内存每次产生脏页时,将产生的各脏页分别对应的页标识加入检查点队列。数据库系统中动态维护一检查点队列,该检查点队列用于缓存数据库系统内存产 生的各脏页对应的页标识。在数据库系统内存每次产生脏页时,可将产生的各脏页以时间先后顺序,依次将相应脏页的页标识加入检查点队列。如果检查点队列包括的任一页标识对应的脏页的数据,由内存转存到磁盘的数据文件之后,该脏页的页标识在检查点队列中自动删除。12 :在所述检查点队列中确定活动组(Active Group)和当前组(Current Group),并在预设的检查点发生时机,将所述活动组包括的各页标识对应的脏页依次转存到所述磁盘的数据文件;所述检查点队列中与当前准备转存到磁盘的多个脏页分别对应的页标识,组成所述活动组;所述检查点队列中新加入的脏页所插入的组为所述当前组。可对检查点队列包括的各页标识进行分组,以便实现脏页的批量分组转存。例如可将检查点队列中与当前需要转存到磁盘的各脏页分别对应的各页标识,组成活动组;检查点队列中新加入的脏页所插入的组为当前组。在一种可选的实现方式中,可为活动组包括的各页标识打一活动组标识;如此处理之后,检查点队列包括的各页标识分为两类,一类是打上活动组标识的页标识,即活动组包括的各页标识,这些页标识对应的脏页为当前需要从内存转存到磁盘的脏页;另一类为没有打上活动组标识的页标识,即检查点队列除了活动组包括的各页标识之外的其他各页标识,均没有打上活动组标识。活动组确定完成之后,检查点队列中当前组可选示例如图2a所示。此时,如果数据库系统中产生有新的脏页,则将新产生的脏页按时间顺序依次加入检查点序列,并且新加入的页标识所插入的组为当前组,可选示例如图2b所示。图2a和图2b是将检查点队列中最先加入的四个页标识作为活动组,该活动组的确定方式仅为一个示例性说明,不应理解为对本专利技术技术实质的限制。本文档来自技高网...

【技术保护点】
一种数据持久化处理方法,其特征在于,包括:在数据库系统内存每次产生脏页时,将产生的各脏页分别对应的页标识加入检查点队列;在所述检查点队列中确定活动组和当前组;所述检查点队列中与当前准备转存到磁盘的多个脏页分别对应的页标识,组成所述活动组;所述检查点队列中新加入的脏页所插入的组为所述当前组;在预设的检查点发生时机,将所述活动组包括的各页标识对应的脏页依次转存到所述磁盘的数据文件;如果完成所述活动组相关的脏页转存,则在所述检查点队列中确定下一所述活动组,并在所述检查点发生时机,将下一所述活动组包括的各页标识对应的脏页依次转存到所述磁盘的数据文件。

【技术特征摘要】

【专利技术属性】
技术研发人员:威诺斯彭勇飞杨上德
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1