POLARDB云数据库分布式存储引擎揭秘,POLARDB和MySql 5.6兼容性能对比

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,高可用系列 2核4GB
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
简介: 2017云栖大会POLARDB专场,阿里云资深技术专家曹伟带来POLARDB云数据库分布式存储引擎揭秘的演讲。本文主要从计算和存储分离的优势谈起,然后说明控制平面与数据平面分离,接着分享了划时代的技术,包括零拷贝、并行副本等,最后解释了面向数据库优化的智能存储。

2017云栖大会POLARDB专场,阿里云资深技术专家曹伟带来POLARDB云数据库分布式存储引擎揭秘的演讲。本文主要从计算和存储分离的优势谈起,然后说明控制平面与数据平面分离,接着分享了划时代的技术,包括零拷贝、并行副本等,最后解释了面向数据库优化的智能存储。

以下是精彩内容整理:

 

计算和存储分离的优势

如何把过去MySQL从单机磁盘数据库,演进成基于共享存储、集成数据库的核心组建Polar store。我们把三副本分布式的存储系统,做得延迟和本地SSD磁盘一样快,这就是核心的武器。那么,我们怎么做一个又快又稳定的分布式存储系统。

为什么做POLARDB时会选择把MySQL本地SSD单机数据库改造成一个基于共享存储集成数据库,在做了七年RDS之后选择做这件事。怎么去做一个高性能的分布式存储系统,同时让它稳定,我们为什么不用已有分布式存储系统,因为我们要在稳定系统和存储系统当中加入对数据库的理解优化,让它成为一个为数据库定制和优化的智能存储。

我们过去单机做数据库有一个很头疼的问题,怎么先做容量的预测,每台机器SSD容量的预测和迁移。在“双11”之前,我们一般会把核心用户的机器、数据库打散操作,把每个用户买每台数据库容量降低到60%以下,我们很担心“双11”那天大量数据进来,把机器塞满之后弄不出去。我需要预留40%-50%的SSD容量在那儿放着,存不了数据,就是为了避免突然的流量高峰把机器用满了,然后就要开始做迁移。

存储池化

在存储池化之后,我能用好每一块盘,为什么呢?因为今天的池子不再是单机十几T、几T,拥有的是几PB的大池子。在大池子当中加机器就OK了,整个大池子可以保持85%,90%左右。把存储池化之后,我们有一个大盘子了,就能把资源用得更好,TCO会下降。

计算存储硬件分离优化

过去做数据库的时候,每年很头疼的一件事情是定义明年新机型是什么,内存和存储的平易怎么控制,权衡之间的比例一直是很头疼的事情。

当我把计算的机型、数据库机型和存储机型分离之后,就能很好的进行优化。数据库的机型不需要再带SSD,存储机型不需要很好的CPU,也不需要很大的内存,但会有很多盘,单机存储力度可以很高。

数据库快速迁移能力

没有不坏的硬件,包括供电、机器、风扇、温度,硬件坏了之后,我们怎么把恢复时间指标往下降,保证用户可用时间往上走。在机器坏了的时候怎么能快速恢复,把数据库弄到一个好的机器上去跑,这个能力很重要,RDS的SLA是99.95%,这个时间很难保证。今天一份存储的成本给多个数据库节点也是我们获得的关键能力。

软件定义存储能力更强

为什么过去不这么做呢?过去分布式存储太慢,分布式存储都还停留在HTD的延时,你得到的延迟是几个毫秒,我们接受不了。因为数据库是非常敏感的。软件定义存储和普通机器上硬件SSD相比拥有更强的能力,比如单个盘可以任意扩容,可以从10TB扩容到100TB,100TB对于本级SSD来说很难达到,因为SSD的制造工艺也有瓶颈,能够放下的颗粒也是有限的,随机而来的单机SSD密度是有限的。

还有数据快照技术,我们在存储引入了分布式数据库快照技术做数据库的备份,完美解决了数据库备份。我可以在5分钟之内对100T数据库完成备份,还可以一个备份在5分钟之内挂载上去,成为一个新的实例,这些技术用传统的单机数据库是无法解决的。我们今天存储层做了一个Thin-provisioning技术,按需分配,拥有它后,有可能就可以按你使用的存储资源付钱了。

 

控制平面与数据平面分离

26bb0980c8a1af48eb1761c8b6cc399bd24d3289

这样一个强大的分布式存储系统是怎么构建的呢?我们借鉴了SDN的经验,用控制平面与数据平面分离的思想在设计系统。简单来说,存储所有的复杂逻辑,比如故障怎么处理,副本策略如何,全都会在微服务实现的控制集群当中,数据平面非常高效的实现。

 

划时代技术,超高性能、超低延迟

5e18bcfd57a46403305ae92af89b35154ea85887

我们一些核心技术点如图,首先直接操作裸的RDMA网卡,自己实现一套完整网络协议栈和OR协议栈。零拷贝技术RDMA&SPDK、用户态文件系统和并行同步技术,我们紧贴着RDMA,在RDMA网络栈基础上实现了ParallelRaft。

我们是真正的零拷贝,别人的不是零拷贝。当RDMA网卡收到请求之后,会直接把请求操作写到物理机内存地址上去,直接用了很大的区域做这件事。网卡一旦写入内存之后,这个内存就一直使用下去,永远不拷贝,这就是零拷贝。启动系统时会把物理内存注册到网卡当中去,网卡会直接操作物理内存到CPU说知道有这个物理内存到了之后,我们就一直拿物理内存用DMA发给磁盘,用RDMA再发给远程网卡一直使用下去,再也没有拷贝过了。这件事情如果不是自己写RO协议栈或者网络协议栈不可能办到。

af418c1301587288538f65ecaa437f498cbba791

POLARDB当中使用的文件系统是PolarFS文件系统。这个文件系统是一个libpfs形式直接嵌入到数据库当中,数据库拿着lib操作后面的存储。也会在文件系统内部维护,让整个硬件在最合理的模式下工作,这是我们的设计思想。

ParallelRaft并行副本技术是传统的复制协议。我们的思路就是乱序带来并发,乱序带来极高的性能,乱序做正确就是我们的挑战,提出了一套专业的ParallelRaft技术解决这个问题。

 

面向数据库优化的智能存储

面向数据库优化的智能存储,包括防止DB脑裂写坏数据、Group Commit批量I/O写入优化、保证Page原子写入,避免doubleWrite开销、RedoLog高优先级写入。数据库的配置是大于10k的,一个16kb的页面如果出现部分显示成功,部分显示失败,就会出现数据损坏。

MySQL当中怎么做呢,它是用了DoubleWrite的方法做,先写到一个正确的地方,然后再放回来。相当于I/O带宽高了2倍,我们支持Page原子写入。脑裂问题,假如两个节点,一个在杭州,一个在上海。杭州和上海之间网络断开之后,两个节点都认为自己是主节点,一般做法是一主一备,两个节点都会写坏数据。我们通常做法是一定要写进去合并,再恢复到单机状态。我们在Polar store当中对数据库做了写保护,防止DB写入时脑裂,假如出现脑裂,存储借助三副本技术,可以随时授权进行仲裁,只保证一个人写的。

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
22天前
|
关系型数据库 数据库 RDS
【瑶池数据库训练营及解决方案本周精选(探索PolarDB,参与RDS迁移、连接训练营)】(5.30-6.8)
本周精选聚焦数据库迁移训练营、快速连接云数据库RDS训练营及智能多模态搜索解决方案。为用户提供模拟教程与实战演练,学习RDS MySQL实例连接与数据管理技能,助力企业智能化发展。每周解锁数据库实战新场景,抓紧时间,精彩不容错过!
|
3月前
|
Cloud Native 关系型数据库 分布式数据库
登顶TPC-C|云原生数据库PolarDB技术揭秘:Limitless集群和分布式扩展篇
阿里云PolarDB云原生数据库在TPC-C基准测试中以20.55亿tpmC的成绩刷新世界纪录,展现卓越性能与性价比。其轻量版满足国产化需求,兼具高性能与低成本,适用于多种场景,推动数据库技术革新与发展。
|
1月前
|
Cloud Native 关系型数据库 分布式数据库
阿里云PolarDB与沃趣科技携手打造一体化数据库解决方案,助推国产数据库生态发展
阿里云瑶池数据库与沃趣科技将继续深化合作,共同推动国产数据库技术的持续创新与广泛应用,为行业生态的繁荣注入更强劲的技术动力。
阿里云PolarDB与沃趣科技携手打造一体化数据库解决方案,助推国产数据库生态发展
|
28天前
|
存储 Cloud Native 关系型数据库
PolarDB开源:云原生数据库的架构革命
本文围绕开源核心价值、社区运营实践和技术演进路线展开。首先解读存算分离架构的三大突破,包括基于RDMA的分布式存储、计算节点扩展及存储池扩容机制,并强调与MySQL的高兼容性。其次分享阿里巴巴开源治理模式,涵盖技术决策、版本发布和贡献者成长体系,同时展示企业应用案例。最后展望技术路线图,如3.0版本的多写多读架构、智能调优引擎等特性,以及开发者生态建设举措,推荐使用PolarDB-Operator实现高效部署。
130 3
|
1月前
|
SQL 关系型数据库 分布式数据库
PolarDB开源数据库入门教程
PolarDB是阿里云推出的云原生数据库,基于PostgreSQL、MySQL和Oracle引擎构建,具备高性能、高扩展性和高可用性。其开源版采用计算与存储分离架构,支持快速弹性扩展和100%兼容PostgreSQL/MySQL。本文介绍了PolarDB的安装方法(Docker部署或源码编译)、基本使用(连接数据库、创建表等)及高级特性(计算节点扩展、存储自动扩容、并行查询等)。同时提供了性能优化建议和监控维护方法,帮助用户在生产环境中高效使用PolarDB。
447 18
|
1月前
|
Cloud Native 关系型数据库 分布式数据库
PolarDB开源:云原生数据库的新篇章
阿里云自研的云原生数据库PolarDB于2023年5月正式开源,采用“存储计算分离”架构,具备高性能、高可用及全面兼容性。其开源版本提供企业级数据库解决方案,支持MySQL、PostgreSQL和Oracle语法,适用于高并发OLTP、核心业务系统等场景。PolarDB通过开放治理与开发者工具构建完整生态,并展望更丰富的插件功能与AI集成,为中国云原生数据库技术发展贡献重要力量。
253 18
|
2月前
|
Cloud Native 关系型数据库 分布式数据库
登顶TPC-C|云原生数据库PolarDB技术揭秘:Limitless集群和分布式扩展篇
云原生数据库PolarDB技术揭秘:Limitless集群和分布式扩展篇
毫秒级查询性能优化实践!基于阿里云数据库 SelectDB 版内核:Apache Doris 在极越汽车数字化运营和营销方向的解决方案
毫秒级查询性能优化实践!基于阿里云数据库 SelectDB 版内核:Apache Doris 在极越汽车数字化运营和营销方向的解决方案
毫秒级查询性能优化实践!基于阿里云数据库 SelectDB 版内核:Apache Doris 在极越汽车数字化运营和营销方向的解决方案
|
11月前
|
存储 安全 Cloud Native
阿里云数据库多款产品支持米哈游新游《绝区零》全球开服!
这一次,阿里云继续与大家共同守护「新艾利都」!

推荐镜像

更多