[发明专利]一种数据库的持久化写入方法、装置和系统有效
申请号: | 201410696915.0 | 申请日: | 2014-11-26 |
公开(公告)号: | CN104408126B | 公开(公告)日: | 2018-06-15 |
发明(设计)人: | 侯冰剑;陈志标 | 申请(专利权)人: | 杭州华为数字技术有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 广州三环专利商标代理有限公司 44202 | 代理人: | 郝传鑫;熊永强 |
地址: | 310053 浙江省杭州*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明实施例公开了一种数据库的持久化写入方法,包括:在数据库内存生成N个脏页时,查询所述N个脏页在磁盘的数据库文件中各自对应的物理页,N为大于0的整数;确定所述数据库文件中的缓冲物理页;将所述N个脏页中的当前脏页写入到所述缓冲物理页,以及将所述当前脏页在所述数据库文件中对应的物理页作为新的缓冲物理页,并所述N个脏页中的下一脏页写入到所述新的缓冲物理页。本发明实施例还公开了一种数据库的持久化写入装置和系统。采用本发明,减少磁盘的写入次数,延长磁盘寿命。 1 | ||
搜索关键词: | 物理页 写入 缓冲 数据库文件 持久化 磁盘 数据库 数据库内存 写入装置 查询 | ||
在数据库内存生成N个脏页时,查询所述N个脏页在磁盘的数据库文件中各自对应的物理页,N为大于0的整数;
确定所述数据库文件中的缓冲物理页;
将所述N个脏页中的当前脏页写入到所述缓冲物理页,以及将所述当前脏页在所述数据库文件中对应的物理页作为新的缓冲物理页,并所述N个脏页中的下一脏页写入到所述新的缓冲物理页,直到所述N个脏页全部写入到磁盘的所述数据库文件中。
2.如权利要求1所述的方法,其特征在于,所述在数据库内存生成N个脏页时,查询所述N个脏页在磁盘的数据库文件中各自对应的物理页包括:当数据库内存生成N个脏页时,根据写入顺序生成包含所述N个脏页的脏页队列;
查询所述脏页队列所述数据库文件中对应的包含N个物理页的第一物理页队列;其中,所述脏页队列的脏页和所述第一物理页队列中的物理页依据队列位置一一对应。
3.如权利要求2所述的方法,其特征在于,还包括:将第一映射关系保存至所述数据库文件的第一映射物理页中;其中,所述第一映射关系表示所述脏页队列中包含的N个脏页与所述第一物理页队列包含N个物理页的映射关系。
4.如权利要求3所述的方法,其特征在于,还包括:将所述缓冲物理页插入到所述第一物理页队列的队列头的前面,并移除所述第一物理页队列的队列尾后生成第二物理页队列;
将第二映射关系保存至所述数据库文件的第二映射物理页中;其中,所述第二映射关系表示所述脏页队列中包含的N个脏页和所述第二物理页队列中包含的N个物理页的映射关系,所述脏页队列的脏页和所述第二物理队列中的物理页依据队列位置一一对应。
5.如权利要求4所述的方法,其特征在于,所述将所述N个脏页中的当前脏页写入到所述缓冲物理页,以及将所述当前脏页在所述数据库文件中对应的物理页作为新的缓冲物理页,并所述N个脏页中的下一脏页写入到所述新的缓冲物理页包括:将所述脏页队列中包含的N个队列依次写入到所述第二物理队列中各自对应的物理页。
6.如权利要求5所述的方法,其特征在于,还包括:在所述N个脏页全部写入到所述数据库文件后,将所述第二映射物理页覆盖所述第一映射物理页。
7.如权利要求4‑6任意一项所述的方法,其特征在于,所述在数据库内存生成N个脏页时,查询所述N个脏页在磁盘的数据库文件中各自对应的物理页之前,还包括:将所述磁盘的数据库文件划分为多个物理页,以及分别在所述多个物理页中设置所述第一映射物理页、所述第二映射物理页和初始缓冲物理页;或者
将所述磁盘的数据库文件划分为多个段,以及将每个段划分为多个分区、将每个分区划分为多个物理页;
在每个段中设置所述第一映射物理页和所述第二映射物理页,以及在每个分区中设置初始缓冲物理页。
8.如权利要求7所述的方法,其特征在于,所述将所述脏页队列中包含的N个队列依次写入到所述第二物理队列中各自对应的物理页之后,还包括:判断所述第二映射物理页是否完整,若为否,将所述第一映射物理页覆盖所述第二映射物理页;
若为是,继续判断所述第一映射物理页是否完整,若为否,将所述第二映射物理页覆盖所述第一映射物理页;
若为是,继续判断所述第一映射物理页和所述第二映射物理页是否一致,若为否,识别出所述第二物理页队列中的目标物理页,其中,所述目标物理页为未成功写入脏页的物理页;
根据所述第二映射关系查询与所述目标物理页关联的目标脏页,并根据所述第一映射关系查询与所述目标脏页关联的未修改物理页;
将所述目标脏页与所述未修改物理页进行关联,并更新第二映射物理页所述第二映射关系;
将所述更新所述第二映射关系后的第二映射物理页覆盖所述第一映射物理页。
9.一种数据库的持久化写入装置,其特征在于,包括:查询模块,用于在数据库内存生成N个脏页时,查询所述N个脏页在磁盘的数据库文件中各自对应的物理页;
确定模块,用于确定所述数据库文件中的缓冲物理页;
写入模块,用于将所述N个脏页中的当前脏页写入到所述缓冲物理页,以及将所述当前脏页在所述数据库文件中对应的物理页作为新的缓冲物理页,并所述N个脏页中的下一脏页写入到所述新的缓冲物理页,直到所述N个脏页全部写入到磁盘的所述数据库文件中。
10.如权利要求9所述的装置,其特征在于,所述查询模块具体用于:当数据库内存生成N个脏页时,根据写入顺序生成包含所述N个脏页的脏页队列;
查询所述脏页队列所述数据库文件中对应的包含N个物理页的第一物理页队列;其中,所述脏页队列的脏页和所述第一物理页队列中的物理页依据队列位置一一对应。
11.如权利要求10所述的装置,其特征在于,还包括:第一保存模块,用于将第一映射关系保存至所述数据库文件的第一映射物理页中;其中,所述第一映射关系表示所述脏页队列中包含的N个脏页与所述第一物理页队列包含N个物理页的映射关系。
12.如权利要求11所述的装置,其特征在于,还包括:第二保存模块,用于将所述缓冲物理页插入到所述第一物理页队列的队列头的前面,并移除所述第一物理页队列的队列尾后生成第二物理页队列;
将第二映射关系保存至所述数据库文件的第二映射物理页中;其中,所述第二映射关系表示所述脏页队列中包含的N个脏页和所述第二物理页队列中包含的N个物理页的映射关系,所述脏页队列的脏页和所述第二物理队列中的物理页依据队列位置一一对应。
13.如权利要求12所述的装置,其特征在于,所述写入模块用于将所述脏页队列中包含的N个队列依次写入到所述第二物理队列中各自对应的物理页。14.如权利要求13所述的装置,其特征在于,还包括:更新模块,用于在所述N个脏页全部写入到所述数据库文件后,将所述第二映射物理页覆盖所述第一映射物理页。
15.如权利要求12‑14任意一项所述的装置,其特征在于,还包括:设置模块,用于将所述磁盘的数据库文件划分为多个物理页,以及分别在所述多个物理页中设置所述第一映射物理页、所述第二映射物理页和初始缓冲物理页;或者
将所述磁盘的数据库文件划分为多个段,以及将每个段划分为多个分区、将每个分区划分为多个物理页;
在每个段中设置所述第一映射物理页和所述第二映射物理页,以及在每个分区中设置初始缓冲物理页。
16.如权利要求15所述的装置,其特该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州华为数字技术有限公司,未经杭州华为数字技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201410696915.0/,转载请声明来源钻瓜专利网。