CN105653720B - 一种可灵活配置的数据库分层存储优化方法 - Google Patents
一种可灵活配置的数据库分层存储优化方法 Download PDFInfo
- Publication number
- CN105653720B CN105653720B CN201610009405.0A CN201610009405A CN105653720B CN 105653720 B CN105653720 B CN 105653720B CN 201610009405 A CN201610009405 A CN 201610009405A CN 105653720 B CN105653720 B CN 105653720B
- Authority
- CN
- China
- Prior art keywords
- storage
- hard disk
- user
- type
- database
- 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/21—Design, administration or maintenance of databases
- G06F16/217—Database tuning
-
- 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/22—Indexing; Data structures therefor; Storage structures
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)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种可灵活配置的数据库分层存储优化方法,包括以下步骤:提供一SQL功能,用于支持用户按需灵活配置表、索引和WAL日志的存储管理方式;和用户利用提供的所述SQL功能,依据应用数据的活跃程度,定制自己的表、索引和WAL日志的存储管理方式。本发明有益效果:所述方法采用分层存储思想,对传统数据库存储管理进行优化,改造后的数据库不仅支持NVM和SSD等新型存储介质,而且还允许用户通过SQL命令按需分层存储数据,有效解决传统数据库的IO瓶颈问题,显著地提升整个***的性能。
Description
技术领域
本发明涉及数据库存储技术领域,涉及一种数据库存储优化方法,尤其涉及一种可灵活配置的数据库分层存储优化方法。
背景技术
通常,存储介质的用途主要包括两类:缓存数据:为CPU高速计算缓存数据,例如DRAM;存储数据:永久保存应用数据,例如HDD;当前的主流存储介质主要有DRAM、NVM、SSD和HDD,它们的特征对比如下表1所示:
表1当前主流存储介质特征对比表
上表1中DRAM和NVM都属于内存设备,价格昂贵,存取单位是字节,在数据库运行中常用于缓存数据,二者的主要区别包括:DRAM和NVM存取速度都很快,NVM具有非易失性,而DRAM没有,因此在数据库中DRAM和NVM都可用于缓存数据,而NVM还可用于永久存储数据;NVM的存储容量比DRAM大;DRAM的存取速度比NVM稍快,因此更适合缓存最活跃的数据。
上表1中SSD和HDD都属于硬盘设备,存储容量比内存设备要大很多,具有非易失性,常用于永久存储数据,二者的主要区别包括:SSD的IO随机存取速度比HDD快很多;SSD的存储容量比HDD小;SSD的价格比HDD贵。
传统数据库一般只支持DRAM和HDD,而还不支持NVM和SSD等新型存储介质。其中,前者用于CPU计算时缓存数据,后者用于永久存储数据。并且,数据库对应用数据的存储管理一般都是自动实现,用户不能灵活配置各自的数据存储管理方式。
传统数据库的性能瓶颈主要体现在内存容量不足,内存和硬盘的IO存取速度不匹配等方面,具体如下:
在内存上,传统数据库主要采用DRAM内存,它的主要问题包括:容量小,不能缓存大量的计算数据,从而限制CPU的处理能力;易失性,一旦断电则可能导致DRAM上缓存的数据丢失,因此为保障数据可靠性,更新后的数据应及时地存储到硬盘等永久介质上,这易导致CPU计算受阻;换句话说,当前内存的主要问题是容量小和易失性问题。
在硬盘上,传统数据库主要采用HDD硬盘,它的主要问题是:虽然存储容量非常大,但它的IO存取速度,尤其是随机存取速度非常慢。在很多数据库应用中,通常需要大量的索引扫描,即随机IO存取访问。因此,当前硬盘的主要问题是随机存取速度慢问题。
综上所述,在传统基于DRAM和HDD方式下,用户是不能设计自己的数据存储方案,数据存储由***内部自动实现,即永久数据存储在HDD硬盘上,缓存数据存储在DRAM内存上。这种方式的主要缺陷包括:因DRAM和HDD的能力不足,制约CPU处理能力的充分发挥。尤其是在数据规模和吞吐量要求很高的数据库应用中,IO问题会变得更加突出。
发明内容
本发明正是基于以上问题,提供一种可灵活配置的数据库分层存储优化方法,旨在保护用户已有数据库***投资前提下,通过数据库内部少量改造和开发新SQL功能提供数据库存储优化。
为实现上述的发明目的,本发明采用的技术方案如下:
本发明所提供一种可灵活配置的数据库分层存储优化方法,包括以下步骤:
提供一SQL功能,用于支持用户按需灵活配置表、索引和WAL日志的存储管理方式;和用户利用提供的所述SQL功能,依据应用数据的活跃程度,定制自己的表、索引和WAL日志的存储管理方式。
进一步的,所述SQL功能包括:配置表数据、索引数据、WAL日志的内存或硬盘的存储介质类型,所述存储介质包括DRAM、NVM、SSD和HDD。
进一步的,所述SQL功能包括:不记录WAL日志的开关。
较佳的,通过所述SQL功能,用户设置表存储的硬盘类型,把经常访问表的硬盘类型设置为SSD,把不经常访问表的硬盘类型设置为HDD。
较佳的,通过所述SQL功能,用户设置表缓存的内存类型,把经常访问表的内存类型设置为DRAM,把不经常访问表的内存类型设置为NVM。
较佳的,通过所述SQL功能,用户设置索引存储的硬盘类型,把经常访问索引的硬盘类型设置为SSD,把不经常访问索引的硬盘类型设置为HDD。
较佳的,通过所述SQL功能,用户设置索引缓存的内存类型,把经常访问索引的内存类型设置为DRAM,把不经常访问索引的内存类型设置为NVM。
较佳的,通过所述SQL功能,用户依据应用特征决定是否记录WAL日志,把OLAP的表定义为不记WAL日志,把OLTP的表定义为记WAL日志。
较佳的,通过所述SQL功能,用户依据应用特征设置WAL日志存储到NVM或HDD。
本发明有益效果:本发明所述的可灵活配置的数据库分层存储优化方法,旨在保护用户已有数据库***投资前提下,通过数据库内部少量改造和开发新SQL功能提供一种数据库存储优化方法,该方法利用当前NVM和SSD等新型存储技术扩展传统数据库的存储管理能力,有效解决当前数据库的IO瓶颈问题,并显著地提升***的性能。
附图说明
图1是改造前基于DRAM和HDD的数据库存储管理示意图。
图2是改造后基于DRAM+NVM+SSD+HDD的数据库分层存储管理示意图;
图3是改造前基于DRAM+HDD架构的SQL语句执行流程图;和
图4是改造后基于DRAM+NVM+SSD+HDD架构的SQL语句执行流程图。
具体实施方式
下面结合附图和实施例对本发明进行详细说明。需要说明的是,如果不冲突,本发明实施例以及实施例中的各个特征可以相互结合,均在本发明的保护范围之内。
NVM技术是当前内存领域的新技术,与DRAM相比,它不仅容量大,而且具有非易失性,因此利用这种内存不仅能提升DRAM的存储容量,还能克服DRAM的易失缺陷。换句话说,NVM既可作为类似DRAM的缓存设备,也可作为类似HDD的永久存储设备。但和硬盘相比,NVM还很贵且容量小很多,只能作为关键数据的永久存储设备。因此,在实际应用中,可考虑通过增加NVM内存扩充DRAM的存储容量,即实现更大的内存,也可考虑把少量影响性能的关键数据(如数据库的WAL日志)存放到NVM上,这不仅能减少原来把它存到硬盘上的操作,还能加快WAL日志的处理速度。
综上所述,虽然NVM的速度略逊于DRAM,但它具有相对较大的存储容量,适合把活跃度稍差的数据从DRAM分流到NVM上。不仅如此,NVM的非易失性,使得NVM可以作为永久存储介质使用,例如可考虑用它存储数据量较小又很重要的WAL日志数据。
类似NVM,SSD技术是当前硬盘领域的新技术。SSD的主要特点是它的IO随机存取速度和顺序存取速度相当。虽然价格比HDD贵,但它的IO随机存储速度比HDD要快很多。在数据库应用中,依据拇指规则,大多数的SQL语句通常只经常访问少量的活跃数据。因此,可考虑把活跃数据存储由原来的HDD替换成价格较贵且IO处理性能较高的SSD,这种方式不仅可显著解决数据库的IO问题,而且与把HDD全替换成SSD方案相比,还能保护用户的已有投资,成本相对较小。
综上所述,虽然SSD和HDD都可用来永久存储数据,但SSD的IO随机存取速度远快于HDD,因此在随机存取访问速度要求较高的数据库应用中,可用SSD全部或部分替换HDD,例如只把活跃数据存储从HDD转移到SSD上。
本发明基于传统数据库的存储管理方式,开发新的SQL功能,这些功能不仅能扩展数据库的存储介质类型,即支持新型介质NVM和SSD,而且还允许用户灵活配置自己的数据存储管理方式。本发明开发新的SQL功能如表2所示:
表2新SQL功能列表
通过上表2的SQL功能,用户可根据应用数据特征灵活设计自身的数据存储方案,具体如下:
通过功能1用户可设置表存储的硬盘类型,例如把经常访问表的硬盘类型设置为SSD,把不经常访问表(如历史数据)的硬盘类型设置为HDD;
通过功能2用户可设置表缓存的内存类型,例如把经常访问表的内存类型设置为DRAM,把不经常访问表的内存类型设置为NVM;
通过功能3用户可设置索引存储的硬盘类型,例如把经常访问索引的硬盘类型设置为SSD,把不经常访问索引的硬盘类型设置为HDD;
通过功能4用户可设置索引缓存的内存类型,例如把经常访问索引的内存类型设置为DRAM,把不经常访问索引的内存类型设置为NVM;
通过功能5用户可依据应用特征决定是否记录WAL日志,例如把OLAP的表定义为不记WAL日志,把OLTP的表定义为记WAL日志;
通过功能6用户可设置WAL日志的存储类型,例如依据写WAL日志影响***性能的严重程度大小,决定把WAL日志存储到NVM还是HDD上;
本发明对传统数据库的存储管理进行增强改造,这种改造既考虑到要保护用户已有投资,即未采用通过NVM和SSD全替换DRAM和SSD方式,而采用按需部分替换方式,也考虑到利用当前存储新技术NVM和SSD,以及数据库各类应用的具体存储和访问特征,采用分而治之的细化策略,利用新SQL功能支持用户灵活设计自己的数据分层存储方案。
在实际应用中,依据拇指规则,大多数据的SQL语句通常只需访问少量数据,我们把这些数据称为活跃数据,其余数据我们称为不活跃数据。换句话说,一个数据库数据一般包括少量的活跃数据和大量的不活跃数据。在数据库内部,依据用途不同,数据被划分为表、索引和WAL日志。与表相比,索引的规模通常会小很多,而且活跃度高。为防止断电等导致的数据丢失问题,数据库还应确保事务提交后WAL日志要实时预先写到硬盘上,因此写WAL日志的优先度要高于写表数据。通过上述分析,数据库数据由热到冷的次序可定义为:活跃索引->不活跃索引->WAL日志->活跃表->不活跃表
根据这个定义,本发明对传统数据库内部的数据存储进行了细化管理。改造前,数据库的存储管理如图1所示。
图1中缓存数据采用DRAM内存,永久存储数据采用HDD硬盘。因DRAM内存的非易失性导致所有数据最终都必须存储到HDD硬盘上,尤其是WAL日志数据必须在事务提交后实时存储到HDD硬盘上,否则一旦断电则可能导致数据丢失。然而,HDD硬盘存储速度非常慢,其性能好坏制约内存和CPU能力的充分发挥。不仅如此,DRAM内存容量较小也限制CPU的处理能力。如上所述,DRAM的容量和易失性问题,HDD的速度问题、以及必须向HDD实时记录WAL日志问题已限制当前数据库的数据管理规模和处理能力。因此,基于DRAM内存和HDD硬盘的数据库存储管理方法已开始越来越制约数据库应用的进一步发推广。
针对上述问题,本发明利用当前内存和硬盘的新技术优化改造了传统数据库的存储管理方式。改造后的数据库存储管理示例如图2所示。
需说明的是,图2只是改造后的一个存储管理示例,用户可通过相关的SQL功能按需灵活设计自己的存储管理方案。上面图1和图2比较,改造后,在内存上新增NVM存储,在硬盘上新增SSD存储。并且,改造后可通过数据特征细化存储管理方案。
改造前后内存和硬盘管理的对比如表3所示:
表3改造前后内存管理对比表
表4改造前后硬盘管理对比表
在实际应用中,用户还需应依据具体应用的表和索引的活跃程度设计自己的内存和硬盘的存储管理策略。如果索引的数据规模非常小,则不必再从活跃度上对它做进一步划分,而是直接把它存到DRAM和SSD上即可。此外,由于OLAP应用主要关注数据的处理规模和速度,而对断电等可能导致的数据丢失问题却不十分关注,因此对这类应用可采用不记WAL日志的方式。
改造后因数据存储管理方式的变化导致数据库内部SQL语句的实现也相应发生了变化。改造前,数据库内部的SQL语句执行流程如图3所示。
图3中内存介质只有DRAM,硬盘介质只有HDD。改造后,扩展NVM和SSD两种介质,此时SQL语句执行流程如图4所示。
通过上面两个SQL语句执行流程图可以看出,本次改造除细化了数据的存储管理外并没有改变传统的SQL语句执行流程,因此开发工作量相对较小。这次改造不仅丰富内存和硬盘的存储类型,而且还为用户定制自身的存储管理提供灵活可配的方法。这种方式既保护用户已有投投资,还提升数据库数据存储能力,尤其是利用新存储技术NVM和SSD有效解决传统数据库的IO瓶颈问题。
本发明所述的可灵活配置的数据库分层存储优化方法主要优点包括:
扩展当前数据库使用的存储介质类型,即新增NVM和SSD存储支持,使得当前数据库不再局限于单一的DRAM和HDD介质;
利用新存储技术提升传统数据库的数据存取容量和速度;
支持按需定制应用数据的存储模式,通过各种新开发的SQL功能支持用户依据各自应用的特征(如数据的访问活跃度)灵活配置数据的存储管理方式。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
以上对本发明进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容仅为本发明的实施方式,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。不应理解为对本发明的限制。
Claims (1)
1.一种可灵活配置的数据库分层存储优化方法,其特征在于,包括以下步骤:
提供一SQL功能,用于支持用户按需灵活配置表、索引和WAL日志的存储管理方式;和
用户利用提供的所述SQL功能,依据应用数据的活跃程度,定制自己的表、索引和WAL日志的存储管理方式,所述SQL功能包括:配置表、索引、WAL日志的内存或硬盘的存储介质类型,所述存储介质包括DRAM、NVM、SSD和HDD,所述SQL功能包括:不记录WAL日志的开关,通过所述SQL功能,用户设置表存储的硬盘类型,把经常访问表的硬盘类型设置为SSD,把不经常访问表的硬盘类型设置为HDD;通过所述SQL功能,用户设置表缓存的内存类型,把经常访问表的内存类型设置为DRAM,把不经常访问表的内存类型设置为NVM;通过所述SQL功能,用户设置索引存储的硬盘类型,把经常访问索引的硬盘类型设置为SSD,把不经常访问索引的硬盘类型设置为HDD;通过所述SQL功能,用户设置索引缓存的内存类型,把经常访问索引的内存类型设置为DRAM,把不经常访问索引的内存类型设置为NVM;通过所述SQL功能,用户依据应用特征决定是否记录WAL日志,把OLAP的表定义为不记WAL日志,把OLTP的表定义为记WAL日志;通过所述SQL功能,用户依据应用特征设置WAL日志存储到NVM或HDD。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610009405.0A CN105653720B (zh) | 2016-01-07 | 2016-01-07 | 一种可灵活配置的数据库分层存储优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610009405.0A CN105653720B (zh) | 2016-01-07 | 2016-01-07 | 一种可灵活配置的数据库分层存储优化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105653720A CN105653720A (zh) | 2016-06-08 |
CN105653720B true CN105653720B (zh) | 2020-03-27 |
Family
ID=56491750
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610009405.0A Active CN105653720B (zh) | 2016-01-07 | 2016-01-07 | 一种可灵活配置的数据库分层存储优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105653720B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109753224B (zh) * | 2017-11-03 | 2022-05-13 | 浙江宇视科技有限公司 | 存储结构及存储结构配置方法 |
CN108228817B (zh) | 2017-12-29 | 2021-12-03 | 华为技术有限公司 | 数据处理方法、装置和*** |
CN109783162B (zh) * | 2018-12-13 | 2024-04-16 | 平安科技(深圳)有限公司 | 方法函数管理方法、装置、计算机设备及存储介质 |
CN109815270B (zh) * | 2019-01-16 | 2020-11-27 | 北京明略软件***有限公司 | 一种关系计算的方法、装置、计算机存储介质及终端 |
CN110347336B (zh) * | 2019-06-10 | 2020-07-10 | 华中科技大学 | 一种基于nvm与ssd混合存储结构的键值存储*** |
CN111886591A (zh) * | 2019-09-12 | 2020-11-03 | 创新先进技术有限公司 | 日志结构存储*** |
CN112596955B (zh) * | 2020-12-28 | 2024-06-18 | 山西云时代研发创新中心有限公司 | 云计算中处理大规模***突发事件的应急处理***及方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101958838A (zh) * | 2010-10-14 | 2011-01-26 | 联动优势科技有限公司 | 数据访问方法及装置 |
CN102200936A (zh) * | 2011-05-11 | 2011-09-28 | 杨钧 | 适用于云存储的智能配置存储备份方法 |
CN102508789A (zh) * | 2011-10-14 | 2012-06-20 | 浪潮电子信息产业股份有限公司 | 一种***分级存储的方法 |
CN103914516A (zh) * | 2014-02-25 | 2014-07-09 | 深圳市中博科创信息技术有限公司 | 一种存储***分层管理的方法与*** |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7953100B2 (en) * | 2008-05-07 | 2011-05-31 | Oracle International Corporation | System and method for providing a pluggable architecture for state management in a telecommunication service access gateway |
-
2016
- 2016-01-07 CN CN201610009405.0A patent/CN105653720B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101958838A (zh) * | 2010-10-14 | 2011-01-26 | 联动优势科技有限公司 | 数据访问方法及装置 |
CN102200936A (zh) * | 2011-05-11 | 2011-09-28 | 杨钧 | 适用于云存储的智能配置存储备份方法 |
CN102508789A (zh) * | 2011-10-14 | 2012-06-20 | 浪潮电子信息产业股份有限公司 | 一种***分级存储的方法 |
CN103914516A (zh) * | 2014-02-25 | 2014-07-09 | 深圳市中博科创信息技术有限公司 | 一种存储***分层管理的方法与*** |
Non-Patent Citations (1)
Title |
---|
"SQL server 2008 集群DTC配置加入";dangdangxia;《百度文库:https://wenku.***.com/view/85097d0848d7c1c708a145d9.html》;20141224;第2-7页 * |
Also Published As
Publication number | Publication date |
---|---|
CN105653720A (zh) | 2016-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105653720B (zh) | 一种可灵活配置的数据库分层存储优化方法 | |
US9552294B2 (en) | Dynamically configuring regions of a main memory in a write-back mode or a write-through mode | |
Zhou et al. | Spitfire: A three-tier buffer manager for volatile and non-volatile memory | |
US11341059B2 (en) | Using multiple memory elements in an input-output memory management unit for performing virtual address to physical address translations | |
US9311253B2 (en) | Thinly provisioned flash cache with shared storage pool | |
US10740251B2 (en) | Hybrid drive translation layer | |
US10019377B2 (en) | Managing cache coherence using information in a page table | |
US10402335B2 (en) | Method and apparatus for persistently caching storage data in a page cache | |
US20130219122A1 (en) | Multi-stage cache directory and variable cache-line size for tiered storage architectures | |
JP2018520420A (ja) | ハイブリッドオブジェクトストレージデバイスのためのキャッシュアーキテクチャおよびアルゴリズム | |
CN105095113B (zh) | 一种缓存管理方法和*** | |
US20220197814A1 (en) | Per-process re-configurable caches | |
CN106909323B (zh) | 适用于dram/pram混合主存架构的页缓存方法及混合主存架构*** | |
CN105786721A (zh) | 一种内存地址映射管理方法及处理器 | |
US11372778B1 (en) | Cache management using multiple cache memories and favored volumes with multiple residency time multipliers | |
CN110659305B (zh) | 基于非易失存储***的高性能关系型数据库服务*** | |
CN108647157A (zh) | 一种基于相变存储器的映射管理方法及固态硬盘 | |
KR20180135390A (ko) | 대용량 ssd 장치를 위한 데이터 저널링 방법 | |
Papon | Enhancing Data Systems Performance by Exploiting SSD Concurrency & Asymmetry | |
Mustafa et al. | Implications of non-volatile memory as primary storage for database management systems | |
JP2013222434A (ja) | キャッシュ制御装置、キャッシュ制御方法、及びそのプログラム | |
US11544197B2 (en) | Random-access performance for persistent memory | |
US11169918B2 (en) | Data access in data storage device including storage class memory | |
Lee et al. | Research issues in next generation DBMS for mobile platforms | |
US9760488B2 (en) | Cache controlling method for memory system and cache system thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |