基于非易失存储系统的高性能关系型数据库服务

著录项
  • CN201910722430.7
  • 20190806
  • CN110659305A
  • 20200107
  • 上海孚典智能科技有限公司
  • 赵继胜;吴宇
  • G06F16/2455
  • G06F16/2455 G06F16/28

  • 上海市杨浦区国定路323号15层(集中登记地)
  • 上海(31)
  • 上海精晟知识产权代理有限公司
  • 肖爱华
摘要
本发明提供了一种通过非易失性存储系统对传统关系型数据库进行性能加速的技术。本项发明针对目前在云计算和物联网相关的各类信息系统软件中广泛应用的关系型数据库系统对性能提升的要求,引入非易失存储系统,通过对关系型数据库的中间缓存系统进行加速(通过非易失存储),从而在响应速度和数据安全兼顾的情况下完成数据库整体性能提升。本项发明包含两方面创新:1.在数据库读写缓存之上应用NVRAM(非易失性内存);2.通过NVRAM资源维护关系数据库的核心数据结构解决数据高可用问题。本项发明在增强云计算和物联网边缘计算系统效能方面具有良好的适用性。
权利要求

1.基于非易失存储系统的高性能关系型数据库服务,包括:提供了通过采用非易失性存储(NVRAM)加速关系型数据库数据缓存,以此来提升数据库系统的读写性能和吞吐量。本项发明通过将结构化数据存储引擎:InnoDB存储引擎的内存数据结构分层化,增加以NVRAM实现的缓存层(参考附图1),在兼顾数据完整性的同时,实现对数据响应能力的提升。InnoDB存储引擎作为广泛应用的MySQL DB的数据引擎,对其的性能提升将对使用MySQL DB的应用系统产生直接的影响。针对云计算和边缘计算对存储和管理结构化数据的性能方面的需求,本发明提供一种可以快速、便捷的提升结构化数据存储引擎:Inno DB的以非易失性存储系统(NVRAM)硬件为基础、结合软件实现的软硬件结合性能加速技术。本项技术主要以软件驱动专用硬件的方式对数据库系统的优化为主,即通过软件技术来利用NVRAM的高速I/O能力和数据持久化能力,实现对结构化数据存取、查询的加速(参见附图1)。对于事物密集型应用,多表间的关联操作会占用大量内存空间,因此以目前Inno DB引擎的方式进行数据缓存,数据页将更多的导入文件系统空间,因而降低性能,为此引入NVRAM作为中间缓存(参见附图1),可以有效提升读命中率,并可由非易失性存储能力保障写操作的数据完整性。本项发明将数据页、数据插入缓冲区和数据字典以分层管理的方式由NVRAM和内存共同处理。日志数据完全由NVRAM接管。

2.基于非易失存储系统的高性能关系型数据库服务,对于读操作:分别从内存、NVRAM和分布式文件系统尝试读取数据,对比标准的Inno DB所采用的内存和文件系统两层存储结构,引入NVRAM数据缓存层,可以有效提升读操作命中率,提升I/O效率;对于写操作:分别对内存、NVRAM和分布式文件系统尝试写入数据,对比对比标准的Inno DB所采用的内存和文件系统两层存储结构,引入NVRAM数据缓存层,可以有效降低对文件系统的操作频率,并保障数据在系统故障(例如服务器掉点)时的数据高可用能力。

3.基于非易失存储系统的高性能关系型数据库服务,其特征在于在Inno DB实现中使用NVRAM在内存和文件系统之间实现对数据页、插入记录缓存、数据字典进行缓存和管理,提升了读命中率和读写速度。

4.基于非易失存储系统的高性能关系型数据库服务,其特征在于在Inno DB实现了数据分层治理的策略,有效的利用NVRAM的数据持久化能力和高速读写能力,实现了非易失性高速数据缓存。

5.基于非易失存储系统的高性能关系型数据库服务,其特征在于在内存和NVRAM层面同时管理数据页列表,实现了大容量高速数据缓存和高可用数据缓存。

6.基于非易失存储系统的高性能关系型数据库服务,其特征在于在内存和NVRAM层面同时管理插入记录缓存,避免因文件系统存储插入记录缓存而导致写效率下降。

7.基于非易失存储系统的高性能关系型数据库服务,其特征在于使用NVRAM备份数据字典,实现了大容量高可用数据字典。

8.基于非易失存储系统的高性能关系型数据库服务,其特征在于在通过在NVRAM层面实现对日志的读写操作,避免日志存储占用内存或直接访问本地磁盘带来的读写速率降低,同时通过NVRAM的非易失性来保持日志的完整性。

9.基于非易失存储系统的高性能关系型数据库服务,其特征在于在加速系统以专门修改的Inno DB来实现。

10.基于非易失存储系统的高性能关系型数据库服务,其特征在于在加速系统使用标准的基于PCIe的NVRAM设备,可以由主流x86软硬件系统实现对接。

说明书
技术领域

本发明属于涉及信息技术领域,尤其是涉及用于支持云计算和边缘计算数据管理系统,采用非易失性存储(NVRAM)技术为关系型数据库系统带来的I/O性能提升。

近年来,随着云计算和边缘计算技术的飞速发展和相关应用的不断落地,以数据分析和处理为基础的智能化数据应用开始飞速增加。该类应用涉及大量的数据查询和缓存、管理、索引和查询,对关系型数据库系统的性能提出了新的挑战。特别是在边缘计算场景下,需要考虑功耗与效能和稳定性平衡的需求下,简单的使用高容量内存和高速SSD硬盘并未能解决所面临的上述问题。因此如何有效实现关系型数据库的效率提升并保持功耗与稳定性已经是各个软硬件厂商所共同面临的问题。

基于上述技术要求,本项专利提供了通过采用非易失性存储(NVRAM)加速关系型数据库数据缓存,以此来提升数据库系统的读写性能和吞吐量。本项发明通过将结构化数据存储引擎:InnoDB存储引擎的内存数据结构分层化,增加以NVRAM实现的缓存层(参考附图1),在兼顾数据完整性的同时,实现对数据响应能力的提升。InnoDB存储引擎作为广泛应用的MySQL DB的数据引擎,对其的性能提升将对使用MySQL DB的应用系统产生直接的影响。

针对云计算和边缘计算对存储和管理结构化数据的性能方面的需求,本发明的目的是提供一种可以快速、便捷的提升结构化数据存储引擎:Inno DB的以非易失性存储系统(NVRAM)硬件为基础、结合软件实现的软硬件结合性能加速技术。本项技术主要以软件驱动专用硬件的方式对数据库系统的优化为主,即通过软件技术来利用NVRAM的高速I/O能力和数据持久化能力,实现对结构化数据存取、查询的加速(参见附图1)。使用者需要在数据库系统所在的服务器上安装NVRAM硬件和数据库与NVRAM硬件对接的软件模块。关系型数据库存储引擎通常为两层数据存储系统:内存表和日志数据、文件系统接口层(永久化存储)(参见附图2)。内存表和日志存放在内存数据结构中,包括数据页管理、插入缓冲池、并发锁信息表、索引页、自适应索引和数据字典。维持改内存数据集通常需要大量内存以提升数据响应能力,而同时为保障数据完整性,需要在页存储一级进行文件写入/更新操作。由于需要支持并发用户,因此需要维护数据锁的表,该表为典型的内存数据。对于日志数据,有独立的数据管理驱动来负责内存和文件系统间的数据持久化。

对于事物密集型应用,多表间的关联操作会占用大量内存空间,因此以目前InnoDB引擎的方式进行数据缓存,数据页将更多的导入文件系统空间,因而降低性能,为此引入NVRAM作为中间缓存(参见附图1),可以有效提升读命中率,并可由非易失性存储能力保障写操作的数据完整性。本项发明将数据页、数据插入缓冲区和数据字典以分层管理的方式由NVRAM和内存共同处理。日志数据完全由NVRAM接管。对于引入NVRAM作为中间缓存后的数据管理总结如下:

1.数据页根据用户设定的比例分布于内存和NVRAM之间,具体比例为内存缓存区尺寸/NVRAM缓冲区尺寸;

2.根据最近访问频度,将高频页面置于内存缓存,其余置于NVRAM缓存,并根据访问频度变化进行自适应调度,即将数据页在内存和NVRAM之间交换;

3.数据页的持久化从“内存→文件系统”改为“内存→NVRAM→文件系统”;

4.“NVRAM→文件系统”的数据更新频率和比“内存→文件系统”数据更新频率大为降低,具体取决于应用程序对数据库的读写压力;

5.插入缓冲根据用户设定的比例分布于内存和NVRAM之间,具体比例为内存缓存区尺寸/NVRAM缓冲区尺寸;

6.插入缓冲的写入从内存开始,超出内存缓冲空间的内容写入NVRAM;

7.插入缓冲的持久化从“内存→文件系统”改为“内存→NVRAM→文件系统”;

8.数据字典的写入从内存开始,超出内存缓冲空间的内容写入NVRAM;

9.数据字典的持久化从“内存→文件系统”改为“内存→NVRAM→文件系统”;

10.日志存储由NVRAM维护,如果日志超出NVRAM存储空间,则向文件系统写入日志。

本项发明将Inno DB的数据存储扩展为三层:内存表和日志数据、NVRAM数据层、文件系统接口层(永久化存储)(参见附图3)。中间加入NVRAM数据层,利用NVRAM的接近内存的读写速度和数据不丢失(掉电情况下),起到高速磁盘的作用。

对于NVRAM的管理,本项发明提供专门的改进版InnoDB实现,替代对内存数据管理和日志数据管理的组件,修改后的系统架构分三层:内存表数据结构管理、读写调度、文件层持久化(参见附图3)。与标准Inno DB实现不同的是:

1.将数据页缓存在内存和由NVRAM实现的高速存储系统中,并由NVRAM向文件系统同步数据;而原先的存储引擎将数据页缓存在内存中,并向文件系统同步数据;

2.将数据插入记录缓存在内存和由NVRAM实现的高速存储系统中,并由NVRAM向文件系统同步数据;而原先的存储引擎将数据插入记录缓存在内存中,并向文件系统同步数据;

3.由NVRAM实现对数据字典的缓存,而原先的存储引擎将数据字典缓存在内存中,并向文件系统同步数据;

4.当数据页占用空间,NVRAM空间达到上限时,写入文件系统,意味着更大的高速数据缓存,提升了数据库系统中对读操作的响应速度;

5.对于写操作,NVRAM提供了更大的缓存空间,避免因操作缓存至文件系统导致双重写入;

6.对于日志数据,NVRAM可以实现轻量级持久化,避免因文件系统操作,导致事物系统运行缓慢;

7.鉴于NVRAM的非易失性,即使物理服务器掉电,数据仍可由NVRAM进行恢复,特别是日志数据,可以有效保障数据完整性和高可用。

由NVRAM驱动程序实现的数据读写策略:

1.读操作,从数据页中指定地址读取数据,如果读取失败(数据没有缓存在内存中),则从NVRAM中读取数据,并将NVRAM中的数据页于内存中相对低频的数据页进行替换;

2.读操作,从NVRAM指定地址读取数据,如果读取失败,文件系统中提取数据,并将文件系统中的数据块提取至NVRAM(如果NVRAM已满,则替换掉最近访问次数最低的数据块);

3.写操作,向数据页中指定地址写入数据,如果写入失败(数据没有缓存在内存中),则向NVRAM写入数据,并将NVRAM中的数据页于内存中相对低频的数据页进行替换;

4.写操作,向NVRAM写入数据,如果写入失败,向文件系统中写入数据,并将文件系统中的数据块提取至NVRAM(如果NVRAM已满,则替换掉最近访问次数最低的数据块);

5.内存中修改的数据字典数据定期向NVRAM进行更新;

6.日志数据由NVRAM管理,读写直接在NVRAM上操作,当日志数据结构超出NVRAM给定的缓存空间时,将其写入文件系统。

本项发明的上述技术方案有益结果如下:

云计算和边缘计算应用通常涉及大量高速数据查询、存取、更新操作,特别是事物类型操作。通常会采用高速闪存系统和大容量内存解决数据块节点的性能,但无法保障由掉电导致的内存数据结构丢失,同时大容量内存导致成本和功耗上升。本项发明所述的技术方案提供一种用于采用NVRAM作为高速缓存层的实现方法,对应于广泛使用的关系型数据存储引擎Inno DB,使用NVRAM在内存和文件系统之间进行数据缓存,并利用NVRAM的非易失性实现对高速、大容量数据缓存的数据高可用。本项发明提升了读写速度,降低了对文件系统的I/O频率。本项发明以通用的NVRAM卡作为硬件实现,提供以对应NVRAM的InnoDB特殊版本实现上述高速缓存系统,可作为一种便捷、实用的数据加速技术为云计算和边缘计算设备提升效率。

图1基于NVRAM加速的InnoDB数据存储架

图2标准InnoDB的数据存储架构

图3 NVRAM加速系统的程序逻辑架构

本发明分为硬件和软件两部分实现,硬件部分由NVRAM设备实现,可采用目前Intel公司的Optane NVRAM系统。该系统以PCIe接口实现与x86 server的对接,其硬件设备驱动支持主流Linux和Windows系统。因此可以方便的在目前的主流数据平台实现。

软件系统以主流InnoDB存储引擎为对象,该引擎是包括MySQL DB,Maria DB在内的多种广泛应用的关系型数据库的核心存储引擎。提供针对InnoDB数据存储引擎的内存数据管理驱动程序(NVRAM驱动,参见附图1)以替代其原有的内存数据管理模块(参见附图2)。通过引入对NVRAM作为数据缓冲层的管理和操作能力,将对接内存的数据结构缓存由文件系统替换为NVRAM,提升了I/O效率,起到读写加速能力。具体的相关数据结构包括:

1.数据页;

2.数据插入记录;

3.数据字典;

4.日志

具体的数据读写操作定义,参见下列伪代码实现(read为读数据,write为写数据):

FindPage函数在处理写操作时,如果不到对应数据表,但存在足够的内存空间,将在内存中创建一个新的数据页。

用于确定‘最近访问次数’的时间区间通常设置为10分钟,跟进应用场景可以进行适当调整。

本文发布于:2024-09-24 14:33:52,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/85446.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议