前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PolarDB架构解析

PolarDB架构解析

作者头像
wubx
发布2021-04-26 11:15:35
2.3K0
发布2021-04-26 11:15:35
举报
文章被收录于专栏:MySQLBeginnerMySQLBeginner

2020年11月24日,国际知名行业研究机构Gatner公布2020年全球云数据库魔力象限评估结果,阿里云首次挺进全球云数据库第一阵营--领导者(LEADERS)象限。Gatner分析师评价道:阿里云产品上具备强大的创新能力,其数据库PolarDB已全面应用于零售,电信,物流,金融等多个行业。在云原生关系型数据库领域PolarDB的全球部署能力,分析师认为达到了国际领先水平。

云原生关系型数据库PolarDB是阿里巴巴自主研发的下一代云原生关系型数据库,100%兼容MySQL、PostgreSQL、高度兼容Oracle语法。计算能力最高可扩展至1000核以上,存储容量最高可达 100TB,在新的架构中可以达到PB级。经过阿里巴巴双十一活动的最佳实践,让用户既享受到开源的灵活性与价格的优惠,又享受到商业数据库的高性能和安全性。

PolarDB整体架构

PolarDB整体架构上也可以分为三个部分:Proxy层(PolarDB的接入层), PolarDB计算层(支持MySQL,PostgreSQL,Oracle), PolarDB存储层。

PolarDB的本身的生态非常丰富包含:

下面我们更多的关注在PolarDB-MySQL , PolarDB-X这两个上面。下面我们对PolarDB-MySQL集群架构做一个分析,最后附带一些PolarDB-2.0的介绍。

PolarDB MySQL集群整体架构

PolarDB Proxy

连接地址,SQL转发,保证事务的一致性,无持久化存储东西。100% MySQL协兼容,多个连接地址,可以起到业务资源隔离,可以一个Proxy访问后面多个计算节点,实现读写分离,多个节点自动负载均衡,应用访问的一致性保障。

通过Proxy层把不同的业务用不同的连接地址,使用不同的数据节点,避免相互影响。并行查询可以在客户端对指定的SQL开启,不会影响核心业务。

PolarDB 计算节点

在该节点支持MySQL, Pg, Oracle相关语法,无持久化存储数据。 该节点主要用于:SQL解析,事务执行及保证,Query Cache功能等。该节点约束:1个写节点Primary,1-15个只读节点Secondary。所有的节点数据共享,节省成本,物理日志复制,主备延迟<1秒,支持ParallelQuery,充分利用多核CPU的优势,主备切换数据0丢失。其中Primary节点也可以直接对外提供服务。

因为计算机节点无数据持久化,所以支持快速扩容。添加一个只读节点大概在5分钟内快速创建并提供服务。如果开启“自动扩容”,PolarDB会根据系统的负载高低,自动扩容或缩容,从而可以让用户更经济地使用PolarDB。

PolarDB 在计算层支持Fast Query Cache在8核64G配置4G的Cache内存查询性能可以提升50%以上。

在事务这块产生的Redo日志均实时写入共享存储,只读节点,利用存储上的数据文件和Redo日志,在内存中恢复最新的数据,对外提供服务。每一次主备故障切换,只读节点均可以从存储中获取最新的事务Redo日志,因此不会出现数据丢现象(RPO=0)

在计算节点这块PolarDB还有对应的MaxScale可以实现对慢SQL的自动改写及优化,从而自动提高SQL的执行效率。

PolarDB 存储层

单可用区3副本,双可用区6副本,ParallelRaft共识算法实现多副本强一致,秒级备份,且无需对数据库加锁,超低的延迟网络IO,利用25Gb的RDMA网络, Bypass Kerner的用用态协议支持。利用RDMA可以避免以太网的性能压力。

在存储层可以实现快速备份:不超过30秒(与容量无关),支持高频备份每个2个小时做一个备份,分钟级恢复:从全量备份到恢复,不超过10分钟。从全备份中可以部分恢复。

在备份中使用了Redirect-on-Write的方式,每次打快照并没真正的Copy数据,只有当数据块后期有修改了(write)时才把历史版本给保留给Snapshot,然后生成新的数据块,被原数据引用(Redirect),因此,不管数据库的容量是10G还是10TB,每次备备份(快照)均不超过30秒。但需要注意历史快照管理,以防止无限增大。

PolarDB的HTAP方案

在PolarDB中支持 Parallel Query, 慢SQL Rewrite, In-memory Column Index(全内存列式索引)该方案对于OLAP计算节点,估计需要较大的内存,且MySQL版本要选择MySQL 8.0以上。

全球化部署方案

多个PolarDB对外看起来就是一个集群,但所有集群中只有一个能可以写,其它都是可读。最多支持5个集群,集群间数据同步延迟小于2秒。每个集群均支持读写,从集群会把写请求转给主集群,因此集群上的写请求会跨Region,延迟略高。

所以在PolarDB中对于两地三中心,三地六中心 这种架构支持非常好。多Region之间的流量传输目前是免费的。

PolarDB 2.0 (PolarDB-X)特性

到目前来看PolarDB在架构和性能上都在追求极值。但目前在一些业务开发中,动不动还是能在一个库中搞出来几百张表,SQL编写非常复杂,一个SQL上百,上千行,关联十几张表等情况。在PolarDB 2.0版本引入128个RW节点并行写入,库表写入点秒级切换。对于多节点,并发写入进一步的优化。该功能估计需要到2021年Q3才能上线。

备注: 以上解析参考外面公开资料,仅供参考。也欢迎使用过PolarDB或是Auror 的朋友提供使用,评测相关文章投稿&交聊。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-04-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 MySQLBeginner 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档