CN113655949B - 一种基于pm的数据库页缓存方法及系统 - Google Patents
一种基于pm的数据库页缓存方法及系统 Download PDFInfo
- Publication number
- CN113655949B CN113655949B CN202010541330.7A CN202010541330A CN113655949B CN 113655949 B CN113655949 B CN 113655949B CN 202010541330 A CN202010541330 A CN 202010541330A CN 113655949 B CN113655949 B CN 113655949B
- Authority
- CN
- China
- Prior art keywords
- page
- cache
- memory
- based database
- descriptor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 34
- 238000012986 modification Methods 0.000 claims abstract description 20
- 230000004048 modification Effects 0.000 claims abstract description 20
- 238000011010 flushing procedure Methods 0.000 claims abstract description 11
- 238000013507 mapping Methods 0.000 claims abstract description 3
- 230000001680 brushing effect Effects 0.000 claims description 21
- 238000003491 array Methods 0.000 claims description 12
- 230000002688 persistence Effects 0.000 claims description 11
- 230000002085 persistent effect Effects 0.000 claims description 9
- 239000000872 buffer Substances 0.000 claims description 7
- 238000002360 preparation method Methods 0.000 claims description 6
- 239000007853 buffer solution Substances 0.000 claims description 5
- 230000002045 lasting effect Effects 0.000 claims description 2
- 230000003321 amplification Effects 0.000 abstract description 3
- 238000003199 nucleic acid amplification method Methods 0.000 abstract description 3
- 230000008569 process Effects 0.000 description 9
- 230000008859 change Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 8
- 230000007246 mechanism Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000011022 operating instruction Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
- G06F12/0882—Page mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk device
- G06F3/0676—Magnetic disk device
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种基于PM的数据库页缓存方法,包括以下步骤,将表文件映射到内存;对缓存页进行区域划分;为划分区域后的缓存页设置对应的页面描述符;获取修改区域,并修改相应的页面描述符;将修改区域的数据刷写到PM内存。本发明还提供一种基于PM的数据库页缓存系统,减小记录页改动点开销的同时进一步减小写放大,提升性能,以并行的方式将cache line block刷盘,进一步提升刷盘效率和硬件使用寿命。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及基于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:标记缓存页中的修改区域。
进一步地,所述获取修改区域,并修改相应的页面描述符的步骤,进一步包括,
对缓存页进行修改;
将页内空闲空间上限指针指向最后一个修改记录;
将页内记录的指针数组指向所述修改记录;
获取修改区域;
将所述页面描述符标记缓存页中的修改区域对应的bit位修改为1;
将第一个区域及修改区域的下一个区域对应的bit位修改为1。
进一步地,所述将所述改动修改区域的数据刷写到PM内存的步骤,进一步包括,遍历所有页面描述符数组,将bit位为1的区域刷写到PM内存。
进一步,包括,所述将bit位为1的区域刷写到PM内存,是以并行方式调用PMDK接口、以用户态的方式刷写到PM内存,进行刷盘持久化。
更进一步地,包括,刷盘持久化刷盘完成后,将页面描述符中bitmap表清0。
为达到上述目的,本发明还提供一种基于PM的数据库页缓存系统,包括,PM内存、DRAM内存、区域划分模块、页面描述模块,以及磁盘刷写模块,其中,
所述PM内存,其用于存储表文件;
所述DRAM内存,其存储缓存页及页面描述符,并根据所述磁盘刷写模块指令,将修改的区域刷写到所述PM内存;
所述区域划分模块,其对缓存页进行区域划分;
所述页面描述模块,其为缓存页设置对应的页面描述符;
所述磁盘刷写模块,其对所述DRAM内存进行控制,将修改的区域刷写到所述PM内存中,进行持久化刷盘。
进一步地,所述区域划分模块,将每个缓存页划分成多个大小为1个缓存行的区域;所述缓存页的结构分为页头和页尾,其中,
所述页头,包括:
checksum:数据校验值;
lower:页内空闲空间下限;
upper:页内空闲空间上限;
linp:页内记录的指针数组;
所述页尾,包括:
prepage:前一页页号;
nextpage:后一页页号。
进一步地,所述页面描述符模块,其设置的页面描述符,包括,
tablespace id:表所在的表空间ID,即表文件存储路径;
database id: 表所在的数据库ID;
rel id:表的ID;
page id:PM上数据页页号;
cache line bitmap(bitmap表):标记缓存页中哪些区域被修改。
更进一步地,所述磁盘刷写模块,其遍历所有页面描述符数组,控制所述DRAM内存,以并行方式调用PMDK接口、以用户态的方式刷写到PM内存,进行刷盘持久化。
为达到上述目的,本发明还提供一种电子设备,包括,处理器;以及
被安排成存储计算机可执行指令的存储器,可执行指令在被执行时使处理器执行上述基于PM的数据库页缓存方法的步骤。
为达到上述目的,本发明还提供一种计算机可读存储介质,计算机可读存储介质存储一个或多个程序,一个或多个程序执行时,执行上述基于PM的数据库页缓存方法的步骤。
本发明的基于PM的数据库页缓存方法及系统,应用PM到数据库系统中,充分利用PM非易失性、按字节寻址、大容量低延迟等新特性,重构其存储引擎系统;设计cache lineaware页,带来了以下有益效果:
不需要精确记录每次页面改动的起始位置,只需要记录改动区域;只需一个位图即可快速定位所有改动点,管理开销非常低。在缓存页持久化过程中,只需通过bitmap表即可快速判断哪些区域需要持久化;充分利用按字节寻址的特性,当刷写脏页时,不再需要将整个数据页都刷写到磁盘,根据bitmap获取哪些cache line block需要刷写,减小记录页改动点开销的同时进一步减小写放大,提升性能;以并行的方式将cache line block刷盘,进一步提升刷盘效率;使用cache line block刷盘机制减小IO的同时,提升硬件使用寿命。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为根据本发明的基于Cache-line的缓存页结构示意图;
图2为根据本发明的页面描述符数据组结构示意图;
图3为根据本发明的基于PM的数据库页缓存方法流程图;
图4为根据本发明的插入一条记录修改数据页并刷盘的流程图;
图5为根据本发明的基于PM的数据库页缓存系统架构图;
图6为本发明的一个实施例电子设备的结构示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
本发明实施例中,通过利用PM硬件非易失性、按字节寻址、大容量低延迟等新特性,将数据页持久化到PM磁盘。
本发明实施例中,不需要精确记录每次页面改动的起始位置,只需要记录改动区域(Area):把每个缓存页划分成固定大小的区域,在页描述符中增加一个位图,每个比特位代表一个区域,当某个区域数据被改动时把该比特位设置为1(称为变脏)。这种方式的优点是管理开销非常低,只需一个位图即可快速定位所有改动点。在给定负载下,区域设置得越小,总的刷写次数就越多,对PM的IOPS要求越高。根据实测结果,Intel Optane DCPersistent Memory的随机读写时延大概在300纳秒左右,可轻松满足IOPS要求。
由于CPU Cache与内存(PM也是内存)交换数据的最小单位是1个Cache Line(缓存行),因此把区域大小设置成1个Cache Line可获得最佳性能。
图1为本发明基于Cache-line的缓存页结构示意图,如图1所示,假设1个缓存页的大小为8KB,1个Cache Line大小为64B,则每个缓存页被分割为128个区域。
数据页结构分为页头和页尾,其中,
页头包括:checksum、lower、upper、linp,其中,
checksum:数据校验值;
lower:页内空闲空间下限;
upper:页内空闲空间上限;
linp:页内记录的指针数组。
页尾包括:prepage、nextpage,其中,
prepage:前一页页号;
nextpage:后一页页号。
为了管理缓存页,每个缓存页都有一个对应的页面描述符,图2为根据本发明的页面描述符数据组结构示意图,如图2所示,描述符以数组的形式组织,数组下标即为内存中数据页页号。页面描述符包括以下几个成员变量:
tablespace id:表所在的表空间ID,即表文件存储路径;
database id: 表所在的数据库ID;
rel id:表的ID;
page id:PM上数据页页号;
还有1个16字节大小的bitmap表:cache-line area bitmap,用于标记哪些区域变脏了。例如,插入一条记录到1个干净的缓存页,数据存放位置横跨第9和第10个区域,由于页面变动都会涉及到Header(位于第1个区域)的改动,因此,对应的bitmap值为0000 00000000 0301。在缓存页持久化过程中,只需通过bitmap表即可快速判断哪些区域需要持久化。
实施例1
图3为根据本发明的基于PM的数据库页缓存方法流程图,下面将参考图3,对本发明的基于PM的数据库页缓存方法进行详细描述。
首先,在步骤301,将表文件映射到DRAM内存。
本发明实施例中,通过持久内存开发工具包PMDK,将PM内存的表文件映射到DRAM内存中。
在步骤302,对缓存页进行区域划分和页面描述。
本发明实施例中,对数据库缓存页进行划分区域,包括,把每个缓存页划分成固定大小的区域, 其中,把区域大小设置为1个Cache Line,数据页被分割成多个区域(cacheline block)。区域划分后的数据库缓存页,其结构如图1所示,包括页头和页尾,其中,
页头包括:checksum、lower、upper、linp,其中,
checksum:数据校验值;
lower:页内空闲空间下限;
upper:页内空闲空间上限;
linp:页内记录的指针数组。
页尾包括:prepage、nextpage,其中,
prepage:前一页页号;
nextpage:后一页页号。
本发明实施例中,对缓存页设置对应的页面描述符进行页面描述,包括,
tablespace id:表所在的表空间ID,即表文件存储路径;
database id: 表所在的数据库ID;
rel id:表的ID;
page id:PM上数据页页号;
cache line bitmap(bitmap表):标记缓存页中哪些cache line block变脏(区域被修改)。
描述符以数组的形式组织,数组下标即为内存中数据页页号。
在步骤303,修改缓存页中的记录,并调整upper指针及对应的linp数组。
本发明实施例中,调整upper指针调整upper指针,指向最后一个记录头部,该记录偏移为ptr,其中ptr为相对页首位置的偏移;调整对应linp数组,指向该记录。
在步骤304,查找修改的区域,修改页面描述符。
本发明实施例中,计算该记录位于哪个cache line block,并修改页描述符bitmap表对应的bit位为1:
dirty_cache_line=ptr%cache_line_block_size;
将第一个cache line block及第dirty_cache_line+1个 block对应的bitmap位置成1;
在步骤305,根据修改的页面描述符进行磁盘刷写。
本发明实施例中,刷写的步骤为:根据修改的页面描述符,将bitmap表对应bit位为1的cache line block以并行的的方式调用PMDK接口、以用户态的方式刷盘。
本发明实施例中,根据 CPU核数启动多条刷写进程,将各个cache line block均匀地分配到各个刷写进程,进行刷写。
在步骤306,刷盘完成后,再将页面描述符中bitmap表清0。
实施例2
图4为根据本发明的插入一条记录修改数据页并刷盘的流程图,下面将参考图4,对本发明的插入一条记录修改数据页并刷盘的流程进行详细描述。首先,在步骤401,将记录插入到缓存页的空闲区块。
本发明实施例中,是从缓存页的页尾向页头进行扫描,在缓存页空闲空间位置找到一个空闲空间,并插入记录。
在步骤402,调整upper指针和对应linp数组。
本发明实施例中,调整upper指针,指向最后一个记录头部,该记录偏移为ptr;调整对应lnp数组,指向该记录。
在步骤403,计算记录插入的位置,并修改页面描述符。
本发明实施例中,计算该记录位于哪个区域(cache line block),并修改页面描述符bitmap表对应的bit位为1:dirty_cache_line=ptr%cache_line_block_size;
将第一个cache line block及第dirty_cache_line+1个 block对应的bitmap位置成1。
在步骤404,根据修改的页面描述符,进行脏页刷盘。
将插入记录的区域对PM内存进行持久化刷写。
本发明实施例中,遍历所有页面描述符数组,将bitmap表对应bit位为1的cacheline block以并行的的方式调用PMDK接口以用户态的方式刷盘。
本发明实施例中,跳过操作系统内核态以避免内核态与用户态切换的额外消耗。
本发明实施例中,并发方式为,根据CPU核数启动多条刷写进程,将各个cacheline block均匀地分配到各个刷写进程,进行刷写。
在步骤405,持久化刷盘完成,对页面描述符清零。
刷盘持久化完成后,再将页面描述符中bitmap表清0。实施例3
图5为根据本发明的基于PM的数据库页缓存系统架构图,如图5所示,本发明的基于PM的数据库页缓存系统,包括,PM内存501、DRAM内存502、区域划分模块503、页面描述模块504,以及磁盘刷写模块505,其中,
PM内存501,其用于存储表文件。
本发明实施例中,PM内存501,其通过持久内存开发工具包PMDK,将表文件映射到DRAM内存502,接受磁盘刷写模块505指令,更新表文件。
DRAM内存502,其存储数据库缓存页及页面描述符,并根据磁盘刷写模块505指令,将修改的区域刷写到PM内存501。
区域划分模块503,其对数据库缓存页进行区域划分。
本发明实施例中,对数据库缓存页划分区域,包括,把每个缓存页划分成固定大小的区域, 其中,把区域大小设置为1个Cache Line,缓存页被分割成多个区域(cache lineblock)。
页面描述模块504,对缓存页设置对应的页面描述符。
本发明实施例中,页面描述模块504设置的页面描述符,包括,
tablespace id:表所在的表空间ID,即表文件存储路径;
database id: 表所在的数据库ID;
rel id:表的ID;
page id:PM上数据页页号;
cache line bitmap(bitmap表):标记缓存页中哪些cache line block变脏。
磁盘刷写模块505,其遍历页面描述符数组,控制DRAM内存,将修改的区域刷写到PM内存501中,进行持久化刷盘。
本发明实施例中,磁盘刷写模块505遍历页面描述符数组,将bitmap表对应bit位为1的cache line block以并行的的方式调用PMDK接口以用户态的方式刷盘。
本发明实施例中,跳过操作系统内核态以避免内核态与用户态切换的额外消耗。
本发明实施例中,并发方式为,根据CPU核数启动多条刷写进程,将各个cacheline block均匀地分配到各个刷写进程,进行刷写。
实施例4
图6为本发明的一个实施例电子设备的结构示意图,如图6所示,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(Random-Access Memory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器;至少1个PM等。当然,该电子设备还可能包括其他业务所需要的硬件。
处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(PeripheralComponent Interconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。
处理器从非易失性存储器中读取对应的计算机程序到存储器中然后运行,在逻辑层面上形成共享资源访问控制装置。处理器,执行存储器所存放的程序,并具体用于执行以下操作:
对缓存页进行区域划分;
为区域划分后的缓存页设置对应的页面描述符;
获取修改区域,并修改所述页面描述符;
将所述修改区域刷写到PM内存。
实施例5
本发明实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被执行时,能够执行所述实施例的方法,并具体用于执行上述基于PM的数据库页缓存方法。
虽然本发明所揭露的实施方式如上,但所述的内容仅为便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。
Claims (14)
1.一种基于PM的数据库页缓存方法,其特征在于,包括以下步骤,
将表文件映射到内存;
对缓存页进行区域划分;
为划分区域后的缓存页设置对应的页面描述符;
获取修改区域,并修改相应的页面描述符;
将所述修改区域的数据刷写到PM内存。
2.根据权利要求1所述的基于PM的数据库页缓存方法,其特征在于,所述对缓存页进行区域划分的步骤,进一步包括,将每个缓存页划分为多个固定大小的区域,每个所述区域的大小为1个缓存行。
3.根据权利要求2所述的基于PM的数据库页缓存方法,其特征在于,划分区域后的缓存页,其结构分为页头和页尾,其中,
所述页头,包括:
checksum:数据校验值;
lower:页内空闲空间下限;
upper:页内空闲空间上限;
linp:页内记录的指针数组;
所述页尾,包括:
prepage:前一页页号;
nextpage:后一页页号。
4.根据权利要求1所述的基于PM的数据库页缓存方法,其特征在于,所述页面描述符,包括,
tablespace id:表所在的表空间ID;
database id: 表所在的数据库ID;
rel id:表的ID;
page id:PM内存上数据页的页号;
cache line bitmap:标记缓存页中的修改区域。
5.根据权利要求1所述的基于PM的数据库页缓存方法,其特征在于,所述获取修改区域,并修改相应的页面描述符的步骤,进一步包括,
对缓存页进行修改;
将页内空闲空间上限指针指向最后一个修改记录;
将页内记录的指针数组指向所述修改记录;
获取修改区域;
将所述页面描述符标记缓存页中的修改区域对应的bit位修改为1;
将第一个区域及修改区域的下一个区域对应的bit位修改为1。
6.根据权利要求5所述的基于PM的数据库页缓存方法,其特征在于,所述将所述修改区域的数据刷写到PM内存的步骤,进一步包括,遍历所有页面描述符数组,将bit位为1的区域刷写到PM内存。
7.根据权利要求6所述的基于PM的数据库页缓存方法,其特征在于,进一步包括,所述将bit位为1的区域刷写到PM内存,是以并行方式调用PMDK接口、以用户态的方式刷写到PM内存,进行刷盘持久化。
8.根据权利要求1所述的基于PM的数据库页缓存方法,其特征在于,进一步包括,持久化刷盘完成后,将页面描述符中bitmap表清0。
9.一种基于PM的数据库页缓存系统,其特征在于,包括,PM内存、DRAM内存、区域划分模块、页面描述模块,以及磁盘刷写模块,其中,
所述PM内存,其用于存储表文件;
所述DRAM内存,其存储缓存页及页面描述符,并根据所述磁盘刷写模块指令,将修改的区域刷写到所述PM内存;
所述区域划分模块,其对缓存页进行区域划分;
所述页面描述模块,其为缓存页设置对应的页面描述符;
所述磁盘刷写模块,其对所述DRAM内存进行控制,将修改的区域刷写到所述PM内存中,进行持久化刷盘。
10.根据权利要求9所述的基于PM的数据库页缓存系统,其特征在于,所述区域划分模块,将每个缓存页划分成多个大小为1个缓存行的区域;所述缓存页的结构分为页头和页尾,其中,
所述页头,包括:
checksum:数据校验值;
lower:页内空闲空间下限;
upper:页内空闲空间上限;
linp:页内记录的指针数组;
所述页尾,包括:
prepage:前一页页号;
nextpage:后一页页号。
11.根据权利要求9所述的基于PM的数据库页缓存系统,其特征在于,所述页面描述模块,其设置的页面描述符,包括,
tablespace id:表所在的表空间ID,即表文件存储路径;
database id: 表所在的数据库ID;
rel id:表的ID;
page id:PM上数据页页号;
cache line bitmap,bitmap表:标记缓存页中哪些区域被修改。
12.根据权利要求9所述的基于PM的数据库页缓存系统,其特征在于,所述磁盘刷写模块,其遍历所有页面描述符数组,控制所述DRAM内存,以并行方式调用PMDK接口、以用户态的方式刷写到PM内存,进行刷盘持久化。
13.一种电子设备,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行权利要求1-8任一项所述基于PM的数据库页缓存方法的步骤。
14.一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序执行时,执行权利要求1-8任一项所述基于PM的数据库页缓存方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010541330.7A CN113655949B (zh) | 2020-06-15 | 2020-06-15 | 一种基于pm的数据库页缓存方法及系统 |
PCT/CN2021/100122 WO2021254332A1 (zh) | 2020-06-15 | 2021-06-15 | 一种基于pm的数据库页缓存方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010541330.7A CN113655949B (zh) | 2020-06-15 | 2020-06-15 | 一种基于pm的数据库页缓存方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113655949A CN113655949A (zh) | 2021-11-16 |
CN113655949B true CN113655949B (zh) | 2023-12-01 |
Family
ID=78476727
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010541330.7A Active CN113655949B (zh) | 2020-06-15 | 2020-06-15 | 一种基于pm的数据库页缓存方法及系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113655949B (zh) |
WO (1) | WO2021254332A1 (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6651073B1 (en) * | 2000-05-23 | 2003-11-18 | International Business Machines Corporation | Method and apparatus for insuring database data integrity without data recovery logging |
CN102331986A (zh) * | 2010-07-12 | 2012-01-25 | 阿里巴巴集团控股有限公司 | 一种数据库缓存管理方法及一种数据库服务器 |
CN107209720A (zh) * | 2015-04-02 | 2017-09-26 | 慧与发展有限责任合伙企业 | 持久存储器上的页面高速缓存 |
CN107784121A (zh) * | 2017-11-18 | 2018-03-09 | 中国人民解放军国防科技大学 | 一种基于非易失内存的日志文件系统的小写优化方法 |
WO2019228440A1 (zh) * | 2018-05-30 | 2019-12-05 | 中兴通讯股份有限公司 | 数据页访问方法、存储引擎以及计算机可读存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016159930A1 (en) * | 2015-03-27 | 2016-10-06 | Hewlett Packard Enterprise Development Lp | File migration to persistent memory |
-
2020
- 2020-06-15 CN CN202010541330.7A patent/CN113655949B/zh active Active
-
2021
- 2021-06-15 WO PCT/CN2021/100122 patent/WO2021254332A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6651073B1 (en) * | 2000-05-23 | 2003-11-18 | International Business Machines Corporation | Method and apparatus for insuring database data integrity without data recovery logging |
CN102331986A (zh) * | 2010-07-12 | 2012-01-25 | 阿里巴巴集团控股有限公司 | 一种数据库缓存管理方法及一种数据库服务器 |
CN107209720A (zh) * | 2015-04-02 | 2017-09-26 | 慧与发展有限责任合伙企业 | 持久存储器上的页面高速缓存 |
CN107784121A (zh) * | 2017-11-18 | 2018-03-09 | 中国人民解放军国防科技大学 | 一种基于非易失内存的日志文件系统的小写优化方法 |
WO2019228440A1 (zh) * | 2018-05-30 | 2019-12-05 | 中兴通讯股份有限公司 | 数据页访问方法、存储引擎以及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2021254332A1 (zh) | 2021-12-23 |
CN113655949A (zh) | 2021-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10379746B2 (en) | Information processing apparatus, storage device, and computer program product | |
US20120030413A1 (en) | Memory management device, information processing device, and memory management method | |
US20170060434A1 (en) | Transaction-based hybrid memory module | |
US11392488B2 (en) | Optimizing storage of application data in memory | |
CN109952565B (zh) | 内存访问技术 | |
US20170285954A1 (en) | Data storage device and data maintenance method thereof | |
KR20100115090A (ko) | 버퍼를 고려한 가비지 컬렉션 기법 | |
CN110413211B (zh) | 存储管理方法、电子设备以及计算机可读介质 | |
CN111488125B (zh) | 一种基于Ceph集群的Cache Tier缓存优化方法 | |
CN110968269A (zh) | 基于scm与ssd的键值存储系统及读写请求处理方法 | |
CN113655955B (zh) | 缓存管理方法、固态硬盘控制器及固态硬盘 | |
CN103383666A (zh) | 改善缓存预取数据局部性的方法和系统及缓存访问方法 | |
CN112732725B (zh) | 基于nvm混合内存的自适应前缀树构建方法及其系统、介质 | |
KR102321346B1 (ko) | 대용량 ssd 장치를 위한 데이터 저널링 방법 | |
CN113986773A (zh) | 基于固态硬盘的写放大优化方法、装置及计算机设备 | |
CN113655949B (zh) | 一种基于pm的数据库页缓存方法及系统 | |
KR20160121819A (ko) | 이종 메모리 기반 데이터 관리 장치 | |
CN115203079A (zh) | 一种将数据写入固态硬盘的方法 | |
US11868244B2 (en) | Priority-based cache-line fitting in compressed memory systems of processor-based systems | |
US11829292B1 (en) | Priority-based cache-line fitting in compressed memory systems of processor-based systems | |
CN116737613A (zh) | 映射表管理方法及存储器 | |
CN113535089B (zh) | 用于ssd的映射表的刷新方法 | |
CN113590505B (zh) | 地址映射方法、固态硬盘控制器及固态硬盘 | |
US9760488B2 (en) | Cache controlling method for memory system and cache system thereof | |
CN109189348B (zh) | 基于电荷捕获型3d tlc闪存的存储系统的读性能优化方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |