数据页访问方法、存储引擎以及计算机可读存储介质技术

技术编号:19342422 阅读:134 留言:0更新日期:2018-11-07 13:59
本发明专利技术公开一种数据页访问方法、基于NVM的数据库存储引擎以及计算机可读存储介质,该方法包括:在非易失存储器NVM上存储缓冲池的镜像数据页;根据数据页的写入访问,对所述缓冲池中的数据页进行修改,并将所述数据页的页号、撤销日志信息以及修改日志信息存入到预设动态数组中。本发明专利技术通过在NVM上存储缓冲池的镜像数据页,去掉了现有关系型数据库中的重做日志缓冲区,数据页修改过程也去掉了重做日志记录流程,增加了并发性,提升了数据库存储引擎的性能。

Data page access method, storage engine and computer readable storage medium

The invention discloses a data page access method, a NVM-based data storage engine and a computer-readable storage medium. The method includes: storing mirror data pages of buffer pools on a non-volatile memory NVM; modifying data pages in the buffer pool according to the write access of data pages, and then modifying the data pages. The page number, the revocation log information, and the modified log information are stored in the default dynamic array. By storing the mirror data page of the buffer pool on NVM, the redo log buffer in the existing relational database is removed, and the process of modifying the data page also removes the process of redo log recording, which increases the concurrency and improves the performance of the database storage engine.

【技术实现步骤摘要】
数据页访问方法、存储引擎以及计算机可读存储介质
本专利技术涉及通信
,尤其涉及一种数据页访问方法、基于NVM的数据库存储引擎以及计算机可读存储介质。
技术介绍
传统的关系型数据库系统是面向磁盘的,主要架构是在HDD(HardDiskDrive,硬盘驱动器)和DRAM(DynamicRandomAccessMemory,动态随机存取存储器)构建的两层存储层级上。因此慢速的HDD和高速的DRAM之间的I/O(Input/Output,输入/输出)成为整个系统中最主要的性能瓶颈。随着3DXPoint技术的出现,以非易失性、大容量、低延迟、高并发访问能力、按字节寻址等特性的新型非易失存储硬件工业化成为现实。融入NVM(NonVolatilememory,非易失存储器)的新型存储环境有望跨越CPU(CentralProcessingUnit,中央处理器)与外存之间的性能鸿沟,消除计算机系统中制约上层软件设计的I/O瓶颈。然而,将现有关系型数据库系统直接应用在NVM上,并不能获得最佳性能。基于传统存储层级架构的数据库系统存在低效或无用的组件与技术。研究人员发现,将面向磁盘的数据库系统裁剪成内存可完全驻留的版本后,在全内存执行环境下系统并没有获得预想的性能收益。其原因在于,除了约12%的CPU时间花费在有用的工作上以外,其他的时间大量被用于缓冲、并发控制、恢复等与事务处理密切相关的辅助性工作上。类似的研究表明,目前没有任何一种现有的OLTP(On-LineTransactionProcessing,联机事务处理)数据库架构能在不同的负载特征下(例如只读、读多写少、写多读少等)以及NVM非易失存储环境下获得一致最佳的性能。
技术实现思路
有鉴于此,本专利技术实施例的目的在于提供一种数据页访问方法、基于NVM的数据库存储引擎以及计算机可读存储介质,以解决如何利用NVM硬件非易失性、按字节寻址、大容量低延迟等新特性,设计高性能的数据库存储引擎的问题。本专利技术实施例解决上述技术问题所采用的技术方案如下:根据本专利技术实施例的一个方面,提供的一种数据页访问方法,所述方法包括:在非易失存储器NVM上存储缓冲池的镜像数据页;根据数据页的写入访问,对所述缓冲池中的数据页进行修改,并将所述数据页的页号、撤销日志信息以及修改日志信息存入到预设动态数组中。根据本专利技术实施例的另一个方面,提供的一种基于NVM的数据库存储引擎,所述存储引擎包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的数据页访问程序,所述数据页访问程序被所述处理器执行时实现上述的数据页访问方法的步骤。根据本专利技术实施例的另一个方面,提供的一种计算机可读存储介质,所述计算机可读存储介质上存储有数据页访问程序,所述数据页访问程序被处理器执行时实现上述的数据页访问方法的步骤。本专利技术实施例的数据页访问方法、基于NVM的数据库存储引擎以及计算机可读存储介质,通过在NVM上存储缓冲池的镜像数据页,去掉了现有关系型数据库中的重做日志缓冲区,数据页修改过程也去掉了重做日志记录流程,增加了并发性,提升了数据库存储引擎的性能。附图说明图1为本专利技术第一实施例的数据页访问方法流程示意图;图2为本专利技术实施例的数据库系统架构结构示意图;图3为本专利技术实施例的mini-transaction结构示意图;图4为本专利技术实施例的缓存池的LRU链表结构示意图;图5为本专利技术第二实施例的基于NVM的数据库存储引擎结构示意图。本专利技术目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式为了使本专利技术所要解决的技术问题、技术方案及有益效果更加清楚、明白,以下结合附图和实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。第一实施例如图1所示,本专利技术第一实施例提供一种数据页访问方法,所述方法包括:步骤S11:在NVM上存储缓冲池的镜像数据页。在本实施例中,对数据库存储引擎进行重构,采用分层存储的结构,每一层级使用不同的存储介质。请参考图2所示,L0层采用NVM,L1层可采用HDD或者SSD(SolidStateDrives,固态硬盘);L0层和缓冲池(BufferPool)均包括k个数据页,即Page1-Pagek;L1层包括n个数据页,即Page1-Pagen,其中n>k。在NVM上存储缓冲池的镜像数据页,去掉了现有关系型数据库中的重做日志缓冲区(RedoLogBuffer),增加了并发性。当数据库第一次启动时,对L0层的NVM按照16Kb大小进行格式化,和缓冲池(BufferPool)中的数据页一一对应。步骤S12:根据数据页的写入访问,对所述缓冲池中的数据页进行修改,并将所述数据页的页号、撤销日志信息以及修改日志信息存入到预设动态数组中。在本实施例中,内存中使用mini-transaction作为操作数据页的单位。请参考图3所示,mini-transaction包括用于存储数据页页号的备忘动态数组(图中的Memo所示),用于存储修改日志信息的修改日志动态数组(图中的Log所示),以及用于存储撤销日志信息的撤销日志动态数组(图中的UndoLog所示)。所述撤销日志信息包括页号、相对页头的偏移、修改的大小以及修改前的值;所述修改日志信息包括页号、相对页头的偏移以及修改的大小,所述撤销日志信息和所述修改日志信息的格式可参考图3所示。在一种实施方式中,所述根据数据页的写入访问,对所述缓冲池中的数据页进行修改,并将所述数据页的页号、撤销日志信息以及修改日志信息存入到预设动态数组中包括:根据所述数据页的页号定位所述数据页,并对所述数据页加锁;将所述数据页的页号存储到所述备忘动态数组;记录撤销日志信息,并将所述撤销日志信息存储到所述撤销日志动态数组;修改所述数据页,并将修改日志信息存储到所述修改日志动态数组。具体地,在事务开启之后,即根据页号定位数据页,并对该数据页加锁;将数据页的页号存储到Memo中,记录撤销日志信息,并将撤销日志信息存储到UndoLog中,用于后续事务的回滚;修改数据页并将修改日志信息存储到Log中。可选的,所述修改所述数据页,并将修改日志信息存储到所述修改日志动态数组之后还包括:根据所述修改日志动态数组存储的修改日志信息,将所述数据页的修改部分刷写到所述NVM,并对所述数据页解锁。具体地,在事务提交之后,从所述修改日志动态数组中弹出一条修改日志信息,解析出页号、相对页头的偏移以及修改的大小,然后根据页号定位到所述数据页,将所述数据页的修改部分刷写到L0层的NVM,并对所述数据页解锁。在现有关系型数据库中,当刷写脏页时,需要将整个数据页都刷写到磁盘上。而通过该实施方式,只需将数据页的修改部分刷写到L0层的NVM,减少了写放大。可选的,所述修改所述数据页,并将修改日志信息存储到所述修改日志动态数组之后还包括:根据所述撤销日志动态数组存储的撤销日志信息,恢复所述数据页,并对所述数据页解锁。具体地,事务的回滚,需要从所述撤销日志动态数组中弹出一条撤销日志信息,解析出页号、相对页头的偏移、修改的大小以及修改前的值,恢复到修改前的数据页,并对所述数据页解锁。在一种实施方式中,所述在NVM上存储缓冲池的镜像数据页之后还包括:本文档来自技高网
...

【技术保护点】
1.一种数据页访问方法,其特征在于,所述方法包括:在非易失存储器NVM上存储缓冲池的镜像数据页;根据数据页的写入访问,对所述缓冲池中的数据页进行修改,并将所述数据页的页号、撤销日志信息以及修改日志信息存入到预设动态数组中。

【技术特征摘要】
1.一种数据页访问方法,其特征在于,所述方法包括:在非易失存储器NVM上存储缓冲池的镜像数据页;根据数据页的写入访问,对所述缓冲池中的数据页进行修改,并将所述数据页的页号、撤销日志信息以及修改日志信息存入到预设动态数组中。2.根据权利要求1所述的方法,其特征在于,所述在NVM上存储缓冲池的镜像数据页之后还包括:根据所述数据页的只读访问,判断所述数据页是否在所述缓冲池中;若所述数据页不在所述缓冲池中,则从硬盘上加载所述数据页到所述缓冲池;否则对所述数据页进行只读访问。3.根据权利要求2所述的方法,其特征在于,所述从硬盘上加载所述数据页到所述缓冲池之前还包括:当所述缓冲池的内存不足时,在所述缓冲池的最近最久未使用LRU链表中选出未修改的数据页,并将所述未修改的数据页刷写到所述硬盘。4.根据权利要求1所述的方法,其特征在于,所述在NVM上存储缓冲池的镜像数据页之后还包括:当数据库重启时,将所述NVM上存储的镜像数据页加载到所述缓冲池。5.根据权利要求1所述的方法,其特征在于,所述预设动态数组包括用于存储数据页页号的备忘动态数组、用于存储撤销日志信息的撤销日志动态数组以及用于存储修改日志信息的修改日志动态数组;所述根据数据页的写入访问,对所述缓冲池中的数据页进行修改,并将所述数据页的页号、撤销日志信息以及修改日志信息存入到预设动态数组中包括:根据所述数据页的页号定位所述数...

【专利技术属性】
技术研发人员:闫宗帅屠要峰黄震江高洪杨洪章王涵毅陈河堆韩银俊郭斌
申请(专利权)人:中兴通讯股份有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1