1 .一种数据库的数据存储方法,包括:
获取启动刷盘进程的触发事件;
判断预先配置的脏页队列中未被刷写的脏页数量是否超过第一设定阈值;
若是,获取所述脏页队列中位于队首的设定数量的脏页;
将所述设定数量的脏页写入磁盘。
2.根据权利要求1所述的数据库的数据存储方法,其中,在所述获取启动刷盘进程的触
发事件的步骤之前还包括:
启动日志检查点的检查流程;
检查缓冲池,以获取上一检查点后出现的脏页;
在所述脏页队列中逐项记录所述脏页的信息。
3 .根据权利要求2所述的数据库的数据存储方法,其中,所述在所述脏页队列中逐项记
录所述脏页的信息步骤包括:
在所述脏页队列的队尾处逐项增加记录所述脏页的信息的元素,所述脏页的信息包
括:所述脏页的标识号、所述脏页对应事务的日志序号,所述脏页的状态信息;
根据增加的元素数量修改所述脏页队列的队尾指针。
4 .根据权利要求3所述的数据库的数据存储方法,其中,在所述根据增加的元素数量修
改所述脏页队列的队尾指针的步骤之后还包括:
判断所述脏页队列中未被刷写的脏页数量是否超过第二设定阈值;
若是,生成所述触发事件。
5 .根据权利要求3所述的数据库的数据存储方法,其中,在所述根据增加的元素数量修
改所述脏页队列的队尾指针的步骤之后还包括:
对所述刷盘进程的休眠时间计时;
在计时时长达到预设休眠时长后,若是,生成所述触发事件。
6 .根据权利要求1所述的数据库的数据存储方法,其中,所述将所述设定数量的脏页写
入磁盘的步骤包括:
对所述设定数量的脏页按照标识号进行排序;
将排序后的所述脏页复制到预先建立的双写缓冲区中;
将所述双写缓冲区的页面分别写入磁盘的共享表文件和数据文件中。
7 .根据权利要求6所述的数据库的数据存储方法,其中,在所述将所述双写缓冲区的页
面分别写入磁盘的共享表文件和数据文件中的步骤之后,还包括:
对所述脏页队列进行更新;
使所述刷盘进程进入休眠。
8.根据权利要求7所述的数据库的数据存储方法,其中,所述对所述脏页队列进行更新
的步骤包括:
将写入所述磁盘的页面的标识号以及状态信息进行复位;
将所述脏页队列的队首指针指向所述设定数量之后的元素;
更新控制文件的日志序号。
9.一种机器可读存储介质,其上存储有机器可执行程序,所述机器可执行程序被处理
器执行时实现根据权利要求1至8任一项所述的数据库的数据存储方法。
权 利 要 求 书
1/2 页
2
相关文档
评论