[发明专利]数据库的数据写盘方法、存储介质与设备在审
申请号: | 202211327411.2 | 申请日: | 2022-10-27 |
公开(公告)号: | CN115599756A | 公开(公告)日: | 2023-01-13 |
发明(设计)人: | 何树培;李翔 | 申请(专利权)人: | 北京人大金仓信息技术股份有限公司 |
主分类号: | G06F16/172 | 分类号: | G06F16/172;G06F16/16;G06F16/18;G06F16/901;G06F11/14 |
代理公司: | 北京智汇东方知识产权代理事务所(普通合伙) 11391 | 代理人: | 刘长江 |
地址: | 100102 北京市朝阳区容*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据库 数据 方法 存储 介质 设备 | ||
本发明提供了一种数据库的数据刷盘方法、存储介质与设备。其中数据库的数据刷盘方法包括:将缓冲池中待刷入磁盘的页面复制到内存中预先配置的双写缓冲区中;获取启动数据刷盘的触发事件;将双写缓冲区的数据写入磁盘的表空间预先配置的双写文件中;判断数据写入双写文件的过程是否成功完成;若是,将双写缓冲区的数据写入磁盘的数据文件中。本发明的方案,可以有效避免出现页断裂情况,同时也可以避免WAL日志文件膨胀的问题。
技术领域
本发明涉及数据库技术领域,特别是涉及一种数据库的数据刷盘方法、存储介质与设备。
背景技术
数据库缓冲池中的页面被修改时,需要将缓冲池中发生变化的页面同步到其对应的磁盘上的数据库数据文件上,以持久存储用户对数据的更新操作。除此之外,数据库系统还需要配置缓冲区替换策略,在缓冲池读入新页面时,需要淘汰缓冲池中的部分旧数据,替换为新的数据,以提高缓存的命中率。
数据库系统将缓冲池的页面刷新到磁盘文件的过程中,可能存在页断裂的问题。该问题的产生原因为:一般操作系统的页大小为4KB,而数据库一般将页的大小设置为8KB或者16KB,一个数据库的页面块在刷写到文件系统时,文件系统可能进行2次或者4次写操作,才能完成一个数据库的页面块的写操作。
刷新过程在完成前面几个页面的刷写后,如果操作系统因为一些原因出现故障,导致后面的页未能成功刷写到磁盘文件。也就是部分页写入成功,部分页写入失败,产生了页断裂。出现这种故障的根本原因是数据库使用的页大小和操作系统的页大小不一致,导致操作系统需要使用多次IO操作,才能将数据库的一个页刷写到磁盘文件中。
针对页断裂的问题,现有技术中的某些数据库采用Full_Page_Write(整页刷写)技术。这种技术是通过在每一个检查点之后,将首次修改过的所有页面块整体存储到WAL(Write Ahead Log,预写日志)文件中。如果写数据时出现故障,则可以通过读取WAL文件中存储的页面块与redo日志结合,来到达恢复数据的目的。但是这种方法会存储大量的数据库的页面到WAL日志文件中,将会导致WAL文件空间的膨胀,占用过多磁盘空间。
发明内容
本发明的一个目的是要提供一种能够解决上述任一问题的数据库的数据刷盘方法、存储介质与设备。
本发明一个进一步的目的是要避免整页刷写导致的WAL文件占用过多磁盘空间。
本发明另一进一步的目的是要避免页面刷新到磁盘文件的过程出现的页断裂问题。
特别地,本发明提供了一种数据库的数据刷盘方法,包括:
将缓冲池中待刷入磁盘的页面复制到内存中预先配置的双写缓冲区中;
获取启动数据刷盘的触发事件;
将双写缓冲区的数据写入磁盘的表空间预先配置的双写文件中;
判断数据写入双写文件的过程是否成功完成;
若是,将双写缓冲区的数据写入磁盘的数据文件中。
可选地,待刷入磁盘的页面包括脏页以及缓存淘汰页面;双写缓冲区包括脏页缓冲区以及淘汰页缓冲区;并且双写文件包括脏页双写文件以及淘汰页双写文件。
可选地,脏页缓冲区以及淘汰页缓冲区由数据库系统向操作系统申请,并且
脏页双写文件的大小配置为与脏页缓冲区的大小一致,淘汰页双写文件的大小配置为与淘汰页缓冲区的大小一致。
可选地,获取启动数据刷盘的触发事件包括:
检测预先配置的脏页队列中未被刷写的脏页数量;
获取脏页数量超过设定阈值的刷盘事件。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京人大金仓信息技术股份有限公司,未经北京人大金仓信息技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202211327411.2/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置