CN110659305B - 基于非易失存储***的高性能关系型数据库服务*** - Google Patents
基于非易失存储***的高性能关系型数据库服务*** Download PDFInfo
- Publication number
- CN110659305B CN110659305B CN201910722430.7A CN201910722430A CN110659305B CN 110659305 B CN110659305 B CN 110659305B CN 201910722430 A CN201910722430 A CN 201910722430A CN 110659305 B CN110659305 B CN 110659305B
- Authority
- CN
- China
- Prior art keywords
- data
- nvram
- memory
- volatile memory
- file system
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种基于非易失存储***的高性能关系型数据库服务***。本项发明针对目前在云计算和物联网相关的各类信息***软件中广泛应用的关系型数据库***对性能提升的要求,引入非易失存储***,通过对关系型数据库的中间缓存***进行加速(通过非易失存储),从而在响应速度和数据安全兼顾的情况下完成数据库整体性能提升。本项发明包含两方面创新:1.在数据库读写缓存之上应用NVRAM(非易失性内存);2.通过NVRAM资源维护关系数据库的核心数据结构解决数据高可用问题。本项发明在增强云计算和物联网边缘计算***效能方面具有良好的适用性。
Description
技术领域
本发明属于信息技术领域,尤其是涉及用于支持云计算和边缘计算的数据管理***,采用非易失性存储(NVRAM)技术为关系型数据库***带来的I/O性能提升。
背景技术
近年来,随着云计算和边缘计算技术的飞速发展和相关应用的不断落地,以数据分析和处理为基础的智能化数据应用开始飞速增加。该类应用涉及大量的数据查询和缓存、管理、索引和查询,对关系型数据库***的性能提出了新的挑战。特别是在边缘计算场景下,需要考虑功耗与效能和稳定性平衡的需求下,简单的使用高容量内存和高速SSD硬盘并未能解决所面临的上述问题。因此如何有效实现关系型数据库的效率提升并保持功耗与稳定性已经是各个软硬件厂商所共同面临的问题。
基于上述技术要求,本项专利提供了通过采用非易失性存储(NVRAM)加速关系型数据库数据缓存,以此来提升数据库***的读写性能和吞吐量。本项发明通过将结构化数据存储引擎:InnoDB存储引擎的内存数据结构分层化,增加以NVRAM实现的缓存层(参考附图1),在兼顾数据完整性的同时,实现对数据响应能力的提升。InnoDB存储引擎作为广泛应用的MySQL DB的数据引擎,对其的性能提升将对使用MySQL DB的应用***产生直接的影响。
发明内容
针对云计算和边缘计算对存储和管理结构化数据的性能方面的需求,本发明的目的是提供一种可以快速、便捷的提升结构化数据存储引擎:Inno DB的以非易失性存储***(NVRAM)硬件为基础、结合软件实现的软硬件结合性能加速技术。本项技术主要以软件驱动专用硬件的方式对数据库***的优化为主,即通过软件技术来利用NVRAM的高速I/O能力和数据持久化能力,实现对结构化数据存取、查询的加速(参见附图1)。使用者需要在数据库***所在的服务器上安装NVRAM硬件和数据库与NVRAM硬件对接的软件模块。关系型数据库存储引擎通常为两层数据存储***:内存表和日志数据、文件***接口层(永久化存储)。内存表和日志存放在内存数据结构中,包括数据页管理、***缓冲池、并发锁信息表、索引页、自适应索引和数据字典。维持修改内存数据集通常需要大量内存以提升数据响应能力,而同时为保障数据完整性,需要在页存储一级进行文件写入/更新操作。由于需要支持并发用户,因此需要维护数据锁的表,该表为典型的内存数据。对于日志数据,有独立的数据管理驱动来负责内存和文件***间的数据持久化。
对于事物密集型应用,多表间的关联操作会占用大量内存空间,因此以目前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数据层、文件***接口层(永久化存储)。中间加入NVRAM数据层,利用NVRAM的接近内存的读写速度和数据不丢失(掉电情况下),起到高速磁盘的作用。
对于NVRAM的管理,本项发明提供专门的改进版InnoDB实现,替代对内存数据管理和日志数据管理的组件,修改后的***架构分三层:内存表数据结构管理、读写调度、文件层持久化。与标准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的数据存储架构
图3NVRAM加速***的程序逻辑架构
具体实施方式
本发明分为硬件和软件两部分实现,硬件部分由NVRAM设备实现,可采用目前Intel公司的Optane NVRAM***。该***以PCIe接口实现与x86 server的对接,其硬件设备驱动支持主流Linux和Windows***。因此可以方便的在目前的主流数据平台实现。
软件***以主流InnoDB存储引擎为对象,该引擎是包括MySQL DB,Maria DB在内的多种广泛应用的关系型数据库的核心存储引擎。提供针对InnoDB数据存储引擎的内存数据管理驱动程序(NVRAM驱动,参见附图1)以替代其原有的内存数据管理模块。通过引入对NVRAM作为数据缓冲层的管理和操作能力,将对接内存的数据结构缓存由文件***替换为NVRAM,提升了I/O效率,起到读写加速能力。具体的相关数据结构包括:
1.数据页;
2.数据***记录;
3.数据字典;
4.日志
具体的数据读写操作定义,参见下列伪代码实现(read为读数据,write为写数据):
具体的数据读写操作定义,参见系列伪代码实现(read为读数据,write为写数据)
FindPage函数在处理写操作时,如果找不到对应数据表,但存在足够的内存空间,将在内存中创建一个新的数据页。
用于确定‘最近访问次数’的时间区间通常设置为10分钟,跟进应用场景可以进行适当调整。
Claims (3)
1.一种基于非易失存储***的高性能关系型数据库服务***,包括:
通过采用非易失性存储器NVRAM加速关系型数据库数据缓存;
其特征在于:
结构化数据存储引擎,包括:InnoDB存储引擎的内存数据结构分层化,增加以非易失性存储器NVRAM实现的缓存层,形成内存表和日志数据层、NVRAM数据层、文件***接口层;引入非易失性存储器NVRAM作为中间缓存,并由非易失性存储器NVRAM能力保障写操作的数据完整性;将数据页、数据***缓冲区和数据字典以分层管理的方式由非易失性存储器NVRAM和内存共同处理;
所述结构化数据存储引擎的日志数据层的日志数据完全由所述结构化数据存储引擎的非易失性存储器NVRAM接管,包括:数据页根据用户设定的比例分布于内存和非易失性存储器NVRAM之间,具体比例为内存缓存区尺寸/非易失性存储器NVRAM缓冲区尺寸;根据最近访问频度,将高频页面置于内存缓存,其余置于非易失性存储器NVRAM缓存,并根据访问频度变化进行自适应调度,即将数据页在内存和非易失性存储器NVRAM之间交换;数据页的持久化由内存经过非易失性存储器NVRAM更新到文件***;***缓冲的写入从内存开始,超出内存缓冲空间的内容写入非易失性存储器NVRAM;***缓冲的持久化从内存经非易失性存储器NVRAM更新到文件***;数据字典的写入从内存开始,超出内存缓冲空间的内容写入非易失性存储器NVRAM;数据字典的持久化由内存经过非易失性存储器NVRAM更新到文件***;日志存储由非易失性存储器NVRAM维护,如果日志超出非易失性存储器NVRAM的存储空间,则向文件***写入日志;
对于所述结构化数据存储引擎的非易失性存储器NVRAM的管理,包括:将数据页缓存在内存和非易失性存储器NVRAM中,并由非易失性存储器NVRAM向文件***同步数据;将数据***记录缓存在内存和非易失性存储器NVRAM中,并由非易失性存储器NVRAM向文件***同步数据;由非易失性存储器NVRAM实现对数据字典的缓存;当数据页占用空间,非易失性存储器NVRAM空间达到上限时,写入文件***;若物理服务器掉电,包括日志数据的数据由非易失性存储器NVRAM进行恢复;
由所述结构化数据存储引擎的非易失性存储器NVRAM驱动程序实现的数据读写策略,包括:读操作,从数据页中指定地址读取数据,如果因数据没有缓存在内存中而读取失败,则从非易失性存储器NVRAM中读取数据,并将非易失性存储器NVRAM中的数据页与内存中相对低频的数据页进行替换;读操作,从非易失性存储器NVRAM指定地址读取数据,如果读取失败,则从文件***中提取数据,并将文件***中的数据块提取至非易失性存储器NVRAM,如果非易失性存储器NVRAM已满,则替换掉最近访问次数最低的数据块;写操作,向数据页中指定地址写入数据,如果写入失败,则向非易失性存储器NVRAM写入数据,并将非易失性存储器NVRAM中的数据页与内存中相对低频的数据页进行替换;写操作,向非易失性存储器NVRAM写入数据,如果写入失败,则向文件***中写入数据,并将文件***中的数据块提取至非易失性存储器NVRAM,如果非易失性存储器NVRAM已满,则替换掉最近访问次数最低的数据块;内存中修改的数据字典数据定期向NVRAM进行更新;日志数据由非易失性存储器NVRAM管理,读写直接在非易失性存储器NVRAM上操作,当日志数据结构超出非易失性存储器NVRAM给定的缓存空间时,将日志数据写入文件***;
在InnoDB实现中使用非易失性存储器NVRAM在内存和文件***之间实现对数据页、***记录缓存、数据字典进行缓存和管理;
在InnoDB实现数据分层治理的策略;
在内存和非易失性存储器NVRAM层面同时管理数据页列表;
内存和非易失性存储器NVRAM层面同时管理***记录缓存。
2.根据权利要求1所述的基于非易失存储***的高性能关系型数据库服务***,其特征在于,使用非易失性存储器NVRAM备份数据字典。
3.根据权利要求1所述的基于非易失存储***的高性能关系型数据库服务***,其特征在于,使用基于PCIe的非易失性存储器NVRAM设备,由x86软硬件***实现对接。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910722430.7A CN110659305B (zh) | 2019-08-06 | 2019-08-06 | 基于非易失存储***的高性能关系型数据库服务*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910722430.7A CN110659305B (zh) | 2019-08-06 | 2019-08-06 | 基于非易失存储***的高性能关系型数据库服务*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110659305A CN110659305A (zh) | 2020-01-07 |
CN110659305B true CN110659305B (zh) | 2020-11-24 |
Family
ID=69036427
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910722430.7A Active CN110659305B (zh) | 2019-08-06 | 2019-08-06 | 基于非易失存储***的高性能关系型数据库服务*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110659305B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112214171B (zh) * | 2020-10-12 | 2022-08-05 | 华东师范大学 | 一种面向SQLite数据库的非易失性内存缓冲区设计方法 |
CN115455037A (zh) * | 2022-08-25 | 2022-12-09 | 北京万里开源软件有限公司 | 一种基于非易失内存器件的数据库访问管理方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108763508A (zh) * | 2018-05-30 | 2018-11-06 | 中兴通讯股份有限公司 | 数据页访问方法、存储引擎以及计算机可读存储介质 |
CN109086425A (zh) * | 2018-08-09 | 2018-12-25 | 北京百度网讯科技有限公司 | 用于数据库的数据处理方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3279810B1 (en) * | 2016-06-14 | 2019-09-04 | Huawei Technologies Co., Ltd. | Data access method and related apparatus and system |
-
2019
- 2019-08-06 CN CN201910722430.7A patent/CN110659305B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108763508A (zh) * | 2018-05-30 | 2018-11-06 | 中兴通讯股份有限公司 | 数据页访问方法、存储引擎以及计算机可读存储介质 |
CN109086425A (zh) * | 2018-08-09 | 2018-12-25 | 北京百度网讯科技有限公司 | 用于数据库的数据处理方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110659305A (zh) | 2020-01-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Debnath et al. | FlashStore: High throughput persistent key-value store | |
CN109213772B (zh) | 数据存储方法及NVMe存储*** | |
EP3399444B1 (en) | Optimized record lookups | |
CN110825748B (zh) | 利用差异化索引机制的高性能和易扩展的键值存储方法 | |
EP2685384B1 (en) | Elastic cache of redundant cache data | |
US9176884B2 (en) | Promotion of partial data segments in flash cache | |
US20080177803A1 (en) | Log Driven Storage Controller with Network Persistent Memory | |
CN107992269B (zh) | 一种基于去重ssd的事务写入方法 | |
US9817865B2 (en) | Direct lookup for identifying duplicate data in a data deduplication system | |
US10152422B1 (en) | Page-based method for optimizing cache metadata updates | |
CN105653720B (zh) | 一种可灵活配置的数据库分层存储优化方法 | |
CN110659305B (zh) | 基于非易失存储***的高性能关系型数据库服务*** | |
KR20200060220A (ko) | 비휘발성 메모리 기반 파일 시스템 및 이를 이용한 데이터 갱신 방법 | |
CN112346659A (zh) | 一种分布式对象存储元数据的存储方法、设备及存储介质 | |
Teng et al. | A low-cost disk solution enabling LSM-tree to achieve high performance for mixed read/write workloads | |
Xu et al. | Building a fast and efficient LSM-tree store by integrating local storage with cloud storage | |
CN108664217A (zh) | 一种降低固态盘存储***写性能抖动的缓存方法及*** | |
CN111752974A (zh) | 一种加速数据处理效率的方法及数据库 | |
CN111443874A (zh) | 基于内容感知的固态盘内存缓存管理方法、设备及固态盘 | |
Chen et al. | Co-optimizing storage space utilization and performance for key-value solid state drives | |
KR20140049327A (ko) | 모바일 환경에 구축된 데이터베이스에 대한 트랜잭션 로깅 및 회복 장치 및 그 방법 | |
Chen et al. | Reptail: Cutting storage tail latency with inherent redundancy | |
CN111538465A (zh) | 一种基于Linux高性能数据重删方法 | |
Yoon et al. | Access characteristic-based cache replacement policy in an SSD | |
Lee et al. | Research issues in next generation DBMS for mobile platforms |
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 |