高性能云盘:一文解析RDS数据库存储架构升级

本文涉及的产品
云数据库 RDS SQL Server,基础系列 2核4GB
RDS PostgreSQL Serverless,0.5-4RCU 50GB 3个月
推荐场景:
对影评进行热评分析
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
简介: 性能、成本、弹性,是客户实际使用数据库过程中关注的三个重要方面。RDS业界率先推出的高性能云盘(原通用云盘),是PaaS层和IaaS层的深度融合的技术最佳实践,通过使用不同的存储介质,为客户提供同时满足低成本、低延迟、高持久性的体验。

1. 什么是高性能云盘(原通用云盘)?

介绍高性能云盘(原通用云盘)前,我们先来说说存储。众所周知,数据库架构设计由下至上可分为存储层、引擎层、服务层、网络层。存储层负责数据的持久化存储和读取,处于整个数据库系统架构的最底层。数据存储和数据检索读取是它的两大功能。在数据库中,存储层常见的存储类型,往往有基于物理机本地硬盘的本地盘和基于分布式存储架构的云盘。本地盘存储,数据存储与计算资源位于同一物理服务器节点上,由于数据读写不需要经过网络传输,因此IO延迟通常较低,随机读写性能高,但本地盘的存储容量受限于单个服务器的硬件配置,一旦服务器出现故障,可能影响数据的安全性和可用性,且本地盘存储容量难以独立扩展;云盘基于分布式存储架构,数据存储与计算资源分离,用户可独立地按需调整计算和存储资源,提高了资源的利用率和灵活度,但云盘通过网络为计算节点提供存储服务,多少会对IO延时有所影响,而且,云盘的性能,往往跟其容量绑定,提升性能大部分情况下势必需要提升云盘容量,除此之外,云盘不支持缩容。

而在调研和分析用户业务场景的过程中,我们发现,在多个行业,例如电商行业、新零售行业、游戏行业等,用户业务流量并不是一直持续一个水位,有明显的波峰波谷特征,如何让性能不受容量影响,顺应峰值的到来而提升,如何得到性能(低延迟、高持久)的同时做到完美的成本控制(低成本),已然成为大部分客户在数据库选型中的关注点。阿里云RDS产品,率先推出了高性能云盘(原通用云盘),同时满足用户关于低成本、低延迟、高持久性的诉求

高性能云盘(原通用云盘),首先是一种云盘。但与当前业界主流云盘的区别在于,高性能云盘(原通用云盘)深度融合PaaS层和IaaS层的技术创新,改变了传统的数据存储结构,不拘泥于单一的数据存储介质,并结合 RDS 多个独有的内核能力,配合采用最合适的存储介质,在性能成本弹性等多个维度上提供了具有竞争力的特性。

高性能云盘采用ESSD作为主要数据盘,并结合PaaS层和IaaS层的能力,性能方面提供了IO性能突发16k原子写的特性,成本方面提供了云盘压缩特性,弹性方面提供了云盘缩容以及自动秒级扩容的特性;高性能云盘采用弹性临时盘(Elastic Ephemeral Disk,EED)存放缓存数据,结合RDS独有的缓存加速能力,将EED作为内存扩展的一部分,在性能方面提供了缓存池扩展(Buffer Pool Extension, BPE)的特性;高性能云盘采用对象存储OSS(Object Storage Service)存储归档数据,结合RDS独有的数据归档特性,在成本方面提供了数据归档特性,将不常用的冷数据归档存储于对象存储上,实现使用成本的节约。

2. 高性能云盘(原通用云盘)包含哪些存储介质?

高性能云盘(原通用云盘)主要包含了三种不同的存储介质,分别是ESSD弹性临时盘EED对象存储OSS。高性能云盘根据不同存储介质的特性,分别与对应的RDS内核能力进行结合,将不同存储介质的价值发挥到最大化。

● 弹性临时盘EED:处理高IOPS和超低IO时延需求,一般百万级IOPS和微秒级IO时延需求,结合RDS数据库引擎的缓存技术,提供了查询数据库过程中的BPE特性,带来更高的查询性能。

ESSD:处理低IO时延和数据可靠性需求,一般万级IOPS和毫秒级IO时延需求,保障数据的高可靠性和安全性。借助基础设施和RDS内核的创新能力,以及RDS数据库的管控架构升级,性能方面提供了IO性能突发16k原子写的特性,成本方面提供了云盘压缩特性,弹性方面提供了云盘缩容以及自动秒级扩容的特性

● 对象存储OSS:处理数据持久化和存储低成本需求,一般归档的数据不常被访问,但有超高的数据库可靠性和持久性需求。采用阿里云对象存储(Object Storage Service,OSS),结合RDS数据库内核的归档技术,提供了RDS的数据归档特性,并支持通过ALTER TABLE实现了表文件在ESSD和OSS的切换,为不常访问的数据表提供了更低成本的存储选择

存储介质

弹性临时盘

ESSD云盘

对象存储OSS

性能-单盘最大IOPS

1,000,000

50,000

——

性能-单盘最大吞吐量(MB/s)

4,000

350

——

性能-单路平均时延(us)

35

200

——

性能-网络带宽(MB/s)

——

——

100

数据-可靠性

非持久化

9个9

12个9

数据-容量(GB)

64-8192

10-65536

按量收费

                                   表1:RDS高性能云盘(原通用云盘)多种存储介质对比

3. 高性能云盘(原通用云盘)有哪些特性?

在详解特性技术前,我们整理了一张高性能云盘(原通用云盘)多种存储的特性对比表,如下:

存储介质

弹性临时盘

ESSD云盘

对象存储OSS

核心特征

高性能

极致弹性

低成本

关键特性

BPE

性能:IO性能突发、16k原子写

成本:云盘压缩

弹性:自动秒级扩容、云盘缩容

数据归档

核心实现

1.扩充缓存池

2.存放临时表/文件

  1. 解耦云盘IO性能与容量
  2. 关闭InnoDB双写机制来提升写入效率
  3. 借助数据拷贝实现云盘缩容
  4. 利用底层硬件实现压缩

1.数据库内核直接访问对象存储

2.借助JuiceFS访问对象存储

                                   表2:RDS高性能云盘(原通用云盘)多种存储特性对比

3.1 性能提升

3.1.1 IO性能突发

高IO负载、波动IO负载是较为常见的两种业务场景。RDS数据库之前接入的ESSD云盘(PL1-3),其云盘IO性能与容量深度绑定,IOPS和带宽上限深受存储容量的限制。在这个限制下,应对高IO负载、波动IO负载的高IO洪峰场景时,云盘扩容成为了获得更高云盘IO性能的唯一解。

RDS的高性能云盘(原通用云盘)在数据库通过技术创新,将云盘的IO性能与存储容量解耦,提供IO性能突发能力,并可根据实际业务的使用量动态调整云盘的IO上限。高IO负载时,自动触发IO性能突发,提升IO上限,IO负载回落后,自动恢复IO上限,实现IO性能的极致弹性,避免IO性能和成本浪费。

目前,RDS高性能云盘(原通用云盘)IO性能突发功能已支持RDS MySQL、PostgreSQL和SQL Server三款引擎。

3.1.2 16k原子写

MySQL的InnoDB引擎采用双写技术确保数据页的原子性,以防止半写错误。当InnoDB需要刷新脏页时,首先将数据写入双写缓冲区;待该缓冲区满后,刷脏线程需等待上一批次的数据完成写盘才能继续。每次刷新数据页都涉及两次写操作,这增加了磁盘I/O资源的消耗。对于写入密集型应用,磁盘I/O常成为性能瓶颈,InnoDB双写机制会显著增加磁盘带宽负担,进而影响实例整体性能。

开启RDS MySQL的16k原子写功能后,借助底层16k原子写的技术,可以确保每次数据页写入的原子性,从而安全地关闭InnoDB双写机制。这不仅降低了I/O写入量,还简化了刷脏过程,大幅度降低实例写盘的IOPS及带宽需求,达到提升实例写性能的目的。

目前,RDS16k原子写功能支持RDS MySQL引擎。

3.1.3 缓存池扩展(Buffer Pool Extension, BPE)

缓存池扩展(Buffer Pool Extension, BPE):利用弹性临时盘进行缓存池扩展,提高缓存命中率,减少ESSD的访问次数,加快数据库查询速度。

缓存池(Buffer Pool,简称BP)是数据库引擎内存区域的一部分,用于临时存储常用的数据和索引页,从而减少对磁盘的访问次数,提高数据库操作的性能和效率。因此,缓存池越大,缓存命中率就越高,数据库对磁盘的访问次数就越少,整体的查询性能和效率就越高。

但是,缓存池的大小受限于内存资源,而对于数据库系统来说,内存资源的使用往往是比较紧张的。为了能够在不增加内存资源的情况下扩大缓存,并且充分利用弹性临时盘高IO性能的优势,RDS的MySQL引擎实现了缓存池扩展的功能,对内存中的缓存池进行扩充,进一步提高缓存命中率,提升数据库整体查询性能。

缓存池扩展工作原理.png

图1:缓存池扩展工作原理

缓存池扩展作用原理如上图,一次数据页读取的过程:

  1. 客户端侧发起读取数据页的请求。
  2. 请求进入内存的缓存池中查找指定数据页:
  1.  如果在缓存池中找到数据页,则返回结果给客户端侧,查询和读取结束。
  2. 如果在缓存池中未找到数据页,则执行步骤3。
  1. 请求进入缓存盘的缓存池拓展中查找指定数据页:
  1. 如果在缓存池拓展中找到数据页,则返回数据页给缓存池,再返回结果给客户端侧,查询和读取结束。
  2. 如果在缓存池拓展中未找到数据页,则执行步骤4。
  1. 请求进入ESSD的数据表文件中查找指定数据页。找到数据页后返回给缓存池,再返回结果给客户端侧。
  2. 查询和读取请求结束。

以8核16GB规格为例,BPE测试结果如下:

● read_only QPS提升80%

write_only QPS提升33%

read_write QPS提升103%

1.png

2.png

3.png

3.1.4 存放临时表/文件

 存放临时表/文件:利用弹性临时盘存放临时表/文件,提高临时表/文件的访问速度,进而提高数据库查询性能。

对于数据库引擎来说,内存中的缓存池、磁盘中的临时表/文件都会影响数据库的查询性能。临时表/文件用于当前会话或者查询中,存放数据查询过程中产生的中间结果或者超出内存的结果,一般不需要持久化存储到数据文件中,使用后便会被删除。

基于临时表/文件在业务中的无持久化需求,RDS高性能云盘(原通用云盘),有别于当前的ESSD云盘,更改了临时表/文件的存储位置。之前,RDS数据库的临时表/文件存放于ESSD数据盘中;而推出高性能云盘(原通用云盘)后,临时表/文件可存储于弹性临时盘中,提升了数据库对临时表/文件的访问效率,进而加快数据库查询速度。

3.2 成本优势

3.2.1 云盘压缩

RDS MySQL基于阿里巴巴自研智能透明压缩盘,搭载内嵌专用芯片,采用Zlib level (6)压缩级别同等的压缩算法,在物理磁盘层面实现对数据的实时压缩和解压缩。整个数据压缩和解压缩过程完全透明,对于用户应用无感知,避免复杂的应用适配工作。同时,透明压缩减少磁盘内部的数据搬移,有效降低磁盘固有的写放大,相较于传统的软压缩具有更高的效率,在保持性能影响可控的情况下,使单位容量数据的存储价格更低。

3.2.2 数据归档

高性能云盘(原通用云盘)采用对象存储OSS作为存储介质,将表级别数据归档于OSS中,并不影响用户正常查询OSS中归档表数据。客户可通过ALTER TABLE将表文件在ESSD数据盘与OSS对象存储之间切换,同时在OSS中的归档表支持正常的查询。

OSS存储成本远低于ESSD,可以为客户不常访问的表大幅度降低存储成本。

数据归档特性较适用于有不常访问或修改的表的业务场景。数据归档有两种实现方式,分别是通过数据库内核直接访问对象存储和借助JuiceFS访问对象存储OSS。

3.2.2.1 数据库内核直接访问对象存储

数据库内核直接访问对象存储是指归档表数据put到OSS中,并通过get访问OSS归档表数据。RDS的MySQL引擎主要采用这种方式。值得注意的是,为确保归档表的兼容性,AliSQL内核采用InnoDB引擎存储格式。因此,缓存池扩展能力(BPE)仍然能够作用于归档表,对其查询性能进行加速。

客户可通过执行ALTER TABLE,将正常表上传至OSS转变成归档表,也可通过ALTER TABLE将归档表转为正常表。归档表目前仅支持读操作,用户可通过SELECT语句访问归档表中的内容。MySQL内核会对用户指定的归档表执行具体操作如下:

1. 将数据表对应的ibd文件,按照oss_block_size指定的大小(默认2MB)切分成文件块。

2. 利用OSS的sdk将切分后的文件块上传到OSS中。

3. 在ESSD数据盘上保留space header文件,加速实例的启动和表文件的扫描速度。

图3:RDS MySQL数据归档数据流

3.2.2.2 借助JuiceFS访问对象存储

借助JuiceFS访问对象存储OSS的数据归档方式,主要用于RDS PostgreSQL引擎。

RDS PostgreSQL实例除了数据目录外,会增加归档目录/cold-jfs及对应的表空间rds_oss。客户可通过ALTER TABLE语句将对应的表转移到rds_oss表空间中。处于rds_oss表空间中的数据会借助JuiceFS文件系统上传到OSS上,并不占用ESSD数据盘空间。rds_oss表空间中的所有表均为归档表,客户可以用正常的查询语句查询归档表中的数据。

图4:RDS PostgreSQL数据归档数据流

RDS MySQL归档表只读性能测试结果如下:

相比于正常表,归档表的QPS是正常表的15%左右。

平均TPS

平均QPS

归档表

366.36

5861.82

正常表

2671.37

42741.99

3.3 极致弹性

3.3.1 云盘缩容

众所周知,云盘不支持缩容。但RDS高性能云盘(原通用云盘),借助RDS数据库管控架构和RDS内核的优势,结合数据拷贝功能,实现了RDS云盘缩容。同时,基于云盘本身的秒级扩容能力,可以让客户根据业务需求自由地调整云盘容量,实现云盘容量的极致弹性。

4. 总结

性能、成本、弹性,是客户实际使用数据库过程中关注的三个重要方面。RDS业界率先推出的高性能云盘(原通用云盘),是PaaS层和IaaS层的深度融合的技术最佳实践,通过使用不同的存储介质,为客户提供同时满足低成本、低延迟、高持久性的体验。


相关文章
|
26天前
|
存储 运维 Java
官宣 | Fluss 0.7 发布公告:稳定性与架构升级
Fluss 0.7 版本正式发布!历经 3 个月开发,完成 250+ 次代码提交,聚焦稳定性、架构升级、性能优化与安全性。新增湖流一体弹性无状态服务、流式分区裁剪功能,大幅提升系统可靠性和查询效率。同时推出 Fluss Java Client 和 DataStream Connector,支持企业级安全认证与鉴权机制。未来将在 Apache 孵化器中继续迭代,探索多模态数据场景,欢迎开发者加入共建!
144 8
官宣 | Fluss 0.7 发布公告:稳定性与架构升级
|
1月前
|
存储 机器学习/深度学习 缓存
软考软件评测师——计算机组成与体系结构(分级存储架构)
本内容全面解析了计算机存储系统的四大核心领域:虚拟存储技术、局部性原理、分级存储体系架构及存储器类型。虚拟存储通过软硬件协同扩展内存,支持动态加载与地址转换;局部性原理揭示程序运行特性,指导缓存设计优化;分级存储架构从寄存器到外存逐级扩展,平衡速度、容量与成本;存储器类型按寻址和访问方式分类,并介绍新型存储技术。最后探讨了存储系统未来优化趋势,如异构集成、智能预取和近存储计算等,为突破性能瓶颈提供了新方向。
|
2月前
|
人工智能 监控 安全
NTP网络子钟的技术架构与行业应用解析
在数字化与智能化时代,时间同步精度至关重要。西安同步电子科技有限公司专注时间频率领域,以“同步天下”品牌提供可靠解决方案。其明星产品SYN6109型NTP网络子钟基于网络时间协议,实现高精度时间同步,广泛应用于考场、医院、智慧场景等领域。公司坚持技术创新,产品通过权威认证,未来将结合5G、物联网等技术推动行业进步,引领精准时间管理新时代。
|
3月前
|
存储 运维 Serverless
千万级数据秒级响应!碧桂园基于 EMR Serverless StarRocks 升级存算分离架构实践
碧桂园服务通过引入 EMR Serverless StarRocks 存算分离架构,解决了海量数据处理中的资源利用率低、并发能力不足等问题,显著降低了硬件和运维成本。实时查询性能提升8倍,查询出错率减少30倍,集群数据 SLA 达99.99%。此次技术升级不仅优化了用户体验,还结合AI打造了“一看”和“—问”智能场景助力精准决策与风险预测。
326 69
|
1月前
|
数据采集 存储 算法
人才招聘系统开发全解析:从技术底层到商业逻辑的完整架构优雅草卓伊凡|小无|果果|阿才
人才招聘系统开发全解析:从技术底层到商业逻辑的完整架构优雅草卓伊凡|小无|果果|阿才
83 2
人才招聘系统开发全解析:从技术底层到商业逻辑的完整架构优雅草卓伊凡|小无|果果|阿才
|
2月前
|
存储 人工智能 自然语言处理
为什么混合专家模型(MoE)如此高效:从架构原理到技术实现全解析
本文深入探讨了混合专家(MoE)架构在大型语言模型中的应用与技术原理。MoE通过稀疏激活机制,在保持模型高效性的同时实现参数规模的大幅扩展,已成为LLM发展的关键趋势。文章分析了MoE的核心组件,包括专家网络与路由机制,并对比了密集与稀疏MoE的特点。同时,详细介绍了Mixtral、Grok、DBRX和DeepSeek等代表性模型的技术特点及创新。MoE不仅解决了传统模型扩展成本高昂的问题,还展现出专业化与适应性强的优势,未来有望推动AI工具更广泛的应用。
334 4
为什么混合专家模型(MoE)如此高效:从架构原理到技术实现全解析
|
29天前
|
Cloud Native 关系型数据库 分布式数据库
客户说|知乎基于阿里云PolarDB,实现最大数据库集群云原生升级
近日,知乎最大的风控业务数据库集群,基于阿里云瑶池数据库完成了云原生技术架构的升级。此次升级不仅显著提升了系统的高可用性和性能上限,还大幅降低了底层资源成本。
|
2月前
|
机器学习/深度学习 算法 测试技术
图神经网络在信息检索重排序中的应用:原理、架构与Python代码解析
本文探讨了基于图的重排序方法在信息检索领域的应用与前景。传统两阶段检索架构中,初始检索速度快但结果可能含噪声,重排序阶段通过强大语言模型提升精度,但仍面临复杂需求挑战
89 0
图神经网络在信息检索重排序中的应用:原理、架构与Python代码解析
|
2月前
|
缓存 算法 网络协议
IP代理技术原理深度解析:从基础架构到应用实践
IP代理是网络通信中的关键技术,通过构建中间层实现请求转发与信息过滤。其核心价值体现在身份伪装、访问控制和性能优化三个方面。文章详细解析了HTTP与SOCKS协议的工作机制,探讨了代理服务器从传统单线程到分布式集群的技术演进,并分析了在网络爬虫、跨境电商及企业安全等场景的应用。同时,面对协议识别、性能瓶颈和隐私合规等挑战,提出了多种解决方案。未来,IP代理将融合边缘计算、AI驱动优化及量子安全加密等趋势,持续发展为支撑现代互联网的重要基础设施。
161 2
|
25天前
|
人工智能 运维 关系型数据库
数据库运维:mysql 数据库迁移方法-mysqldump
本文介绍了MySQL数据库迁移的方法与技巧,重点探讨了数据量大小对迁移方式的影响。对于10GB以下的小型数据库,推荐使用mysqldump进行逻辑导出和source导入;10GB以上可考虑mydumper与myloader工具;100GB以上则建议物理迁移。文中还提供了统计数据库及表空间大小的SQL语句,并讲解了如何使用mysqldump导出存储过程、函数和数据结构。通过结合实际应用场景选择合适的工具与方法,可实现高效的数据迁移。
188 1

相关产品

  • 云数据库 RDS