NVM
作为主存上对数据库管理系统的影响
摘要
传统的数据库管理系统使用磁盘存储关系型数据。硬盘的特点:廉价、持久性、大容
量。然而,从磁盘进行读取数据代价非常高。为了消除这个延迟,需要
DRAM
作为中间媒
介。
DRAM
的特点:比磁盘速度快,但容量小且不具备持久性。
NVM
是一个新兴的存储技
术,具有容量大、字节寻址、堪比
DRAM
的存储速度、非易失兴。
本文,我们综述了
NVM
作为主存对关系型数据库管理系统的影响。即,研究了如何修
改传统的关系型数据库管理系统以充分利用
NVM
的特性。修改了
PostgreSQL
的存储引擎,
使之适配
NVM
,并详细描述了如何修改以及修改的挑战。最后通过一个全面的仿真平台对
其进行测试评估。结果显示,数据存储在磁盘:修改后的
PG
查询时间比原生
PG
减少
40%
;数据存储在
NVM
,可以减少
14.4%
。平均分别减少
20.5%
和
4.5%
。
引言
一般数据库管理系统都是内存加磁盘的架构,数据集最终会持久化到磁盘。磁盘具有
廉价、非易失的特性,适合存储大规模数据。然而,当从磁盘读取数据时,时间比较长。
为了减少数据访问的延迟,在
CPU
和磁盘直接添加了
DRAM
作为中间存储媒介。
DRAM
的
访问速度比磁盘快几个数量级。另外,随着
DRAM
芯片的密度增加以及内存价格的降低,
具有大内存的系统变得越来越常见。
基于这些原因,传统的基于内存的关系数据库变得越来越流行。关系型数据库的重要
部分,例如索引结构、恢复机制、提交处理过程等都是针对主存作为存储介质而定制的。
但是关系型数据库在处理关键数据或者非冗余数据时仍然需要持久化存储介质,例如大量
磁盘。
DRAM
是影响数据库服务效率的重要因素。数据库在执行查询时,
59%
的电量耗费在主
存上。此外,还有与漏电和电压相关的内置物质限制
DRAM
的进一步扩展。因此,
DRAM
作为主要内存介质,不可能跟上当前以及未来数据集的增长。
NVM
是一种新型的硬件存储介质,同时具备磁盘和
DRAM
的一些特性。突出的
NVM
技术产品有:
PC-RAM
、
STT-RAM
和
R-RAM
。因为
NVM
具有设备层次上的持久性,所以不
需要向
DRAM
一样的刷新周期以维持数据状态。因此
NVM
和
DRAM
相比,每
bit
耗费的能
量更少。另外,
NVM
比硬盘有更小的延迟,读延迟甚至和
DRAM
相当;字节寻址;比
DRAM
密度更大。
DBMS
设计时需要充分考虑
NVM
的特性以释放其硬件红利。最简单的设计方法是将
NVM
替代磁盘,利用其低延迟以获取性能提升。然而,使
DBMS
适配
NVM
的特性,远远
不止其低延迟的特点。
本文,研究了如何在设计
DBMS
时部署
NVM
。首先,讨论了如何将
NVM
包含到当前
系统的内存结构中;然后通过修改
PostgreSQL
的存储引擎最大化
NVM
的红利。我们旨在绕
过缓慢的磁盘接口的同时保证
DBMS
的健壮性。
我们通过使用仿真平台和
TPC-H
基准测试用例来评估
PG
的两种修改后的存储引擎。同
时,测试了未修改的
PG
在
SSD
和
NVM
上的场景。结果显示,修改后的存储引擎能够减少
内核执行时间(文件
IO
发生的位置):平均从
10%
到
2.6%
。修改后的
PG
性能在硬盘上能
够提升
20.5%
,
NVM
上可以提升
4.5%
。另外,证明了修改后的
PG
性能瓶颈:由于直接访
评论