[发明专利]一种基于PM的数据库页缓存方法及系统在审
申请号: | 202010541330.7 | 申请日: | 2020-06-15 |
公开(公告)号: | CN113655949A | 公开(公告)日: | 2021-11-16 |
发明(设计)人: | 闫宗帅;屠要峰;陈河堆;郭斌;黄震江;韩银俊;解海波;王涵毅 | 申请(专利权)人: | 中兴通讯股份有限公司 |
主分类号: | G06F3/06 | 分类号: | G06F3/06;G06F12/0882 |
代理公司: | 北京德崇智捷知识产权代理有限公司 11467 | 代理人: | 王斌 |
地址: | 518000 广东省深圳市*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 pm 数据库 缓存 方法 系统 | ||
一种基于PM的数据库页缓存方法,包括以下步骤,将表文件映射到内存;对缓存页进行区域划分;为划分区域后的缓存页设置对应的页面描述符;获取修改区域,并修改相应的页面描述符;将修改区域的数据刷写到PM内存。本发明还提供一种基于PM的数据库页缓存系统,减小记录页改动点开销的同时进一步减小写放大,提升性能,以并行的方式将cache line block刷盘,进一步提升刷盘效率和硬件使用寿命。
技术领域
本发明涉及数据处理技术领域,尤其涉及基于PM的数据库页缓存方法及系统。
背景技术
现有的关系型数据库系统为面向磁盘的数据库系统,主要架构是在HDD和DRAM构建的两层存储层级上。由于关系型数据库数据本身很大,不可能全部存储在内存中,并且内存本身不具备持久性,因此需将数据页持久化到磁盘上。
传统存储介质都是块设备,读写的最小单位是块(Block),I/O时延从毫秒级别到微秒级别不等,而DRAM则是纳秒级别。出于性能考虑,存储引擎不会直接修改物理磁盘上的数据页,而是先把要修改的这些数据页读入内存缓冲区(本文称数据页在缓冲区中的映像为缓存页),再修改缓存页,事务提交之后择机把这些被修改的缓存页(称之为脏页)刷写到磁盘,完成持久化。存储引擎引入了页缓存机制,有效解决了磁盘慢速I/O与高速CPU之间矛盾。然而,以页为单位的刷写粒度会导致写放大问题,即使一个事务仅修改了某页的几个字节,持久化时也要把整个脏页刷写到磁盘,严重制约了磁盘的有效吞吐量。
发明内容
为了解决上述技术问题,本发明提供一种基于PM的数据库页缓存方法及系统,不仅可以根据bitmap获取哪些cache line block需要刷写,减小记录页改动点开销的同时进一步减小写放大,提升性能,而且以并行的方式将cache line block刷盘,进一步提升刷盘效率,使用cache line block刷盘机制减小IO的同时,提升硬件使用寿命。
为达到上述目的,本发明提供的基于PM的数据库页缓存方法,包括以下步骤:
将表文件映射到内存;
对缓存页进行区域划分;
为划分区域后的缓存页设置对应的页面描述符;
获取修改区域,并修改相应的页面描述符;
将所述修改区域的数据刷写到PM内存。
进一步地,所述对缓存页进行区域划分的步骤,进一步包括,将每个缓存页划分为多个固定大小的区域,每个所述区域的大小为1个缓存行。
进一步地,划分区域后的缓存页,其结构分为页头和页尾,其中,
所述页头,包括:
checksum:数据校验值;
lower:页内空闲空间下限;
upper:页内空闲空间上限;
linp:页内记录的指针数组;
所述页尾,包括:
prepage:前一页页号;
nextpage:后一页页号。
进一步地,所述页面描述符,包括,
tablespace id:表所在的表空间ID;
database id: 表所在的数据库ID;
rel id:表的ID;
page id:PM内存上数据页的页号;
cache line bitmap:标记缓存页中的修改区域。
进一步地,所述获取修改区域,并修改相应的页面描述符的步骤,进一步包括,
对缓存页进行修改;
将页内空闲空间上限指针指向最后一个修改记录;
将页内记录的指针数组指向所述修改记录;
获取修改区域;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中兴通讯股份有限公司,未经中兴通讯股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010541330.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:笔记型计算机
- 下一篇:会员层级操作系统及其方法