非易失性内存技术及数据库

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 非易失性内存技术及数据库

非易失性内存技术及数据库


内容


2013年开始这个项目的研究,当时不确定非易失性内存技术是否可商用。2019Intel商用了NVM产品,NVM对下一代数据库系统的影响吸引了广大研究者”--Joy ArulrajAndrew Pavlo

采访了《非易失性内存数据库管理系统》的作者:Joy ArulrajAndrew Pavlo。谈论了非易失性内存NVM技术及NVM对下一代数据库系统的影响。

Q1:非易失性内存技术是什么?

Arulraj,Pavlo:他是一种广泛的技术,包括相变内存和忆阻器。具有低延迟读、堪比DRAM的写速度,并具有持久特性和堪比SSD的大存储容量。市场上Intel基于3D XPoint技术[1]出产了傲腾DC NVM模块的产品。


Q2:基于易失性内存和持久内存的数据库管理系统有哪些潜在的变化?


Arulraj,Pavlo:现有的数据库管理系统分为两大类:1)面向磁盘;2)面向内存。面向磁盘的数据库管理系统和1970年代的第一代关系数据库基于的假设相同,比如IBMR系统。基于两层存储,用易失性的内存比如DRAM作为缓存,使用慢速、非易失的块设备作为持久存储器,比如SSD。这些系统基于一个悲观的假设:事务可以访问不在内存中的数据,为了访问磁盘上数据需要很长延迟。采用传统技术,比如沉重的并发控制机制来客服这些限制。

   最近出现的商品化产品大大扩展了单机DRAM内存。但是面向磁盘的数据库系统并不是针对数据全部驻留在内存场景而设计。针对NVM,面向磁盘数据库许多部件都显得冗余。

   相反,面向内存的数据库架构假设所有数据都在内存,因此不需要慢速、面向磁盘的部件。因此面向内存的数据库优于面向磁盘的数据库。但是由于DRAM易失,系统崩溃后,为了恢复仍需要沉重的部件。随着NVM的出现,面向磁盘和面向内存的数据库架构都将发生颠覆性影响。


Q3:现存的数据库管理系统为什么不能充分利用NVM技术优点?


Arulraj,PavloNVM特性有:

1)可字节寻址:NVM和其他非易失性存储(仅支持以块为单位进行数据传输)不同,支持字节可寻址。

2)高速写负载:相比SSDNVM写速度能高一个数量级。更重要的是随机写和顺序写差距很小。

3)读写不对称。某些NVM技术,写会比读花费的时间长。另外,过度写单个内存单元会损坏它。

   NVM优点显而易见,在数据库系统中充分利用他们非常重要。我们对面向磁盘和面向内存数据库在NVM上进行了评估,他们性能差不多。当前数据库管理系统假设内存是易失的,因此他们的架构需要将数据持久化到持久设备。这说明为充分利用NVM特性,需要重构数据库管理系统。


Q4:利用NVM,哪些传统数据库系统部件不是必要的?


Arulraj,Pavlo:针对NVM,需要重新设计数据库系统的几个关键部件:1)日志和恢复协议;2)存储和buffer管理;3)索引数据结构

举例说明日志和恢复协议。一个数据库系统需要确保数据的完整性。更新操作的事务在返回应用成功前,需要将其数据持久化到持久设备如SSD。这样的存储设备比DRAM慢,尤其在随机写上,只支持以block为单位的传输。

事务处理过程中,如果在提交前需要覆盖数据库内容,那么必须执行随机写到磁盘。通过将随机写转换成日志顺序写来提高数据库性能。

NVM颠覆了WAL协议的设计,因为他支持快速的随机写。因此我们需要为NVM重新定制新协议。例如write behind loggingWBL)。WBL不仅能提高性能,也能使崩溃重启恢复时快速完成。WBL追踪数据库哪些部分发生更改,而不是如何更改。用这样的日志方法,数据库可以不将数据记录到日志,直接将其刷写。通过排序写到NVM,确保事务持久性和原子性,使每个事务写更少数据,提高NVM设备生命周期。


Q5:你们已经设计开发了适配NVM的数据库系统存储引擎,关键模块是什么?


Arulraj,Pavlo:传统的数据库系统基于两层架构:DRAM+SSD。这些设备具有各自的硬件特性和约束,传统数据库系统架构基于减少这些影响的设计。例如依赖于这些设备,维护两种元组布局。由于DRAM字节寻址并高效处理随机读写,所以内存中的元组可以报考non-lined字段。而存储在SSD上的元组只存在inlined字段以避免随机写。为分摊访问持久设备的开销,这些引擎通过批量写入和刷新的方法进行延迟操作。然而,在具有NVM的存储层次结构的系统中,许多这样的技术将不再是必要模块。我们采用传统引擎的存储和恢复机制以利用NVM的特性。

例如,采用in-place updateNVM-aware存储引擎。当一个事务插入一个元组的时候,不需将其拷贝到WAL中以备恢复等,这个存储引擎只需要在WAL中记录一个元组的非易失指针即可。这非常高效,因为指针和元组都存储在NVM上。因此系统重启后,可以通过指针访问元组,而不需要回放WAL。同样将索引作为非易失的B+tree,系统重启后无需重建可立即访问。因为事务提交时,修改立即持久化,所以系统重启后提交的事务也是持久的。因为内存控制器刷写对于的cache lines时机不确定,所以未提交事务进行的修改可能也持久化了。因此存储引擎需要通过WAL回滚这些事务。由于恢复协议不包含redo处理流程,和传统存储引擎相比NVM-aware引擎具有更小的恢复延迟。


Q6:这边书的要点是什么?


Arulraj, Pavlo: 这本书介绍了适配NVM的关键算法和数据结构,不仅提升性能和减小操作消耗,而且简化了开发和崩溃恢复时间。我们的项目从2013年开始。我们也不太确定NVM技术是否能落地,但是2019intel基于3D Xpoint技术的傲腾系列使之商品化。我们对NVM对下一代数据库系统的影响感到兴奋。


原文


http://www.odbms.org/blog/2019/05/on-databases-and-non-volatile-memory-technologies-interview-with-joy-arulraj-and-andrew-pavlo/

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
2月前
|
数据库 索引
深入探索数据库索引技术:回表与索引下推解析
【10月更文挑战第15天】在数据库查询优化的领域中,回表和索引下推是两个核心概念,它们对于提高查询性能至关重要。本文将详细解释这两个术语,并探讨它们在数据库操作中的作用和影响。
60 3
|
19天前
|
人工智能 物联网 C语言
SVDQuant:MIT 推出的扩散模型后训练的量化技术,能够将模型的权重和激活值量化至4位,减少内存占用并加速推理过程
SVDQuant是由MIT研究团队推出的扩散模型后训练量化技术,通过将模型的权重和激活值量化至4位,显著减少了内存占用并加速了推理过程。该技术引入了高精度的低秩分支来吸收量化过程中的异常值,支持多种架构,并能无缝集成低秩适配器(LoRAs),为资源受限设备上的大型扩散模型部署提供了有效的解决方案。
42 5
SVDQuant:MIT 推出的扩散模型后训练的量化技术,能够将模型的权重和激活值量化至4位,减少内存占用并加速推理过程
|
3天前
|
人工智能 物联网 大数据
解密时序数据库的未来:TDengine Open Day技术沙龙精彩回顾
在数字化时代,开源已成为推动技术创新和知识共享的核心力量,尤其在数据领域,开源技术的涌现不仅促进了行业的快速发展,也让更多的开发者和技术爱好者得以参与其中。随着物联网、工业互联网等技术的广泛应用,时序数据库的需求愈发强烈,开源的兴起更是为这一技术的创新与普及提供了强有力的支持。
16 3
|
14天前
|
存储 JSON NoSQL
学习 MongoDB:打开强大的数据库技术大门
MongoDB 是一个基于分布式文件存储的文档数据库,由 C++ 编写,旨在为 Web 应用提供可扩展的高性能数据存储解决方案。它与 MySQL 类似,但使用文档结构而非表结构。核心概念包括:数据库(Database)、集合(Collection)、文档(Document)和字段(Field)。MongoDB 使用 BSON 格式存储数据,支持多种数据类型,如字符串、整数、数组等,并通过二进制编码实现高效存储和传输。BSON 文档结构类似 JSON,但更紧凑,适合网络传输。
49 15
|
2月前
|
负载均衡 网络协议 数据库
选择适合自己的数据库多实例负载均衡技术
【10月更文挑战第23天】选择适合自己的数据库多实例负载均衡技术需要全面考虑多种因素。通过深入的分析和评估,结合自身的实际情况,能够做出明智的决策,为数据库系统的高效运行提供有力保障。
120 61
|
2月前
|
SQL Java 数据库连接
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率。本文介绍了连接池的工作原理、优势及实现方法,并提供了HikariCP的示例代码。
61 3
|
2月前
|
缓存 负载均衡 监控
数据库多实例的负载均衡技术深入
【10月更文挑战第23天】数据库多实例负载均衡技术是确保数据库系统高效运行的重要手段。通过合理选择负载均衡策略、实时监控实例状态、不断优化调整,能够实现资源的最优分配和系统性能的提升。在实际应用中,需要根据具体情况灵活运用各种负载均衡技术,并结合其他相关技术,以满足不断变化的业务需求。
|
2月前
|
Java 数据库连接 数据库
优化之路:Java连接池技术助力数据库性能飞跃
在Java应用开发中,数据库操作常成为性能瓶颈。频繁的数据库连接建立和断开增加了系统开销,导致性能下降。本文通过问题解答形式,深入探讨Java连接池技术如何通过复用数据库连接,显著减少连接开销,提升系统性能。文章详细介绍了连接池的优势、选择标准、使用方法及优化策略,帮助开发者实现数据库性能的飞跃。
36 4
|
2月前
|
Java 数据库连接 数据库
深入探讨Java连接池技术如何通过复用数据库连接、减少连接建立和断开的开销,从而显著提升系统性能
在Java应用开发中,数据库操作常成为性能瓶颈。本文通过问题解答形式,深入探讨Java连接池技术如何通过复用数据库连接、减少连接建立和断开的开销,从而显著提升系统性能。文章介绍了连接池的优势、选择和使用方法,以及优化配置的技巧。
50 1
|
2月前
|
存储 关系型数据库 MySQL
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
873 2

热门文章

最新文章