对话 | PolarDB for MySQL 云原生多主架构解读

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
云原生数据库 PolarDB 分布式版,标准版 2核8GB
简介: PolarDB for MySQL多主架构集群版的发布,实现了集群架构从一写多读到多写多读升级,以及写性能的横向扩展,让用户购买的资源得到了最大化的利用。

898989.jpg>>>

杨文锋(高见)

阿里云数据库高级产品专家,多年数据库相关运维和产品经验,现负责PolarDB for MySQL的产品管理、方案设计和特性规划工作。

>>>

章颖强(江疑)

阿里云数据库资深技术专家,PolarDB多主架构/Serverless/事务引擎研发负责人。

>>>

王林平(君远)

阿里云高级解决方案架构师,从事数据库运维、架构、售前工作16年,现负责泛互联网数据库解决方案工作。


点击查看完整对话视频



 高见:  PolarDB for MySQL是阿里巴巴自研的新一代云原生关系型数据,PolarDB集群版采用存储和计算分离的架构,集群中有一个主节点可读可写和至少一个只读节点。


随着PolarDB for MySQL引擎客户的不断增加,大规模头部客户不断涌入,部分头部客户业务体量规模庞大,使得目前PolarDB for MySQL引擎的一写多读架构在特定场景下,写性能出现瓶颈。


本次PolarDB for MySQL多主架构集群版的发布,实现了集群架构从一写多读到多写多读升级,以及写性能的横向扩展,让用户购买的资源得到了最大化的利用。


Q

高见:下面让我们来听一下市场的声音,客户在什么业务场景下遇到了哪些痛点,需要通过云原生的多主架构来解决?


 君远:  众所周知,PolarDB for MySQL以其100%兼容MySQL、高性能、高稳定性、高弹性、大存储、HTAP等优势能力,受到国内外数据库客户的青睐,在关系型数据库市场占据了重要的位置。


从在业务发展初期,数据量和并发访问量较小的情况下,客户利用PolarDB的写节点可以轻松满足各类业务数据的存储和读取。


随着业务发展,业务复杂度、数据量、并发访问量逐步增加,当前PolarDB规格已经不能满足业务需求情况下,客户需要升配PolarDB的写节点规格,来支撑数据量和并发访问量的快速增长。


此方案的优势是操作简单、业务无需改造、升配时间短;不足之处是写节点受限于本地服务器资源规格上限。


目前PolarDB单节点最大规格是88核710GB,如果客户业务上出现高并发、复杂读流量场景,读流量和写流量也会互相影响,导致业务受损。在这种业务场景下,很多客户需要增加读节点,利用读写分离提高系统的读承载能力,以确保客户支持更多的业务、更多数据、更多的访问量。


PolarDB为解决读节点延迟而读不到最新数据的问题,通过数据库代理提供最终一致性、会话一致性、全局一致性等多级读一致性能力,以满足客户在不同场景下对一致性级别的要求。


通过一写多读和读写分离一致性级别,PolarDB满足了大部分客户对数据库扩展性的需求。但是当客户希望横向扩展写能力、需要写隔离、支撑写业务的快速切换时,读写分离就有些力不从心,需要数据库能提供写扩展能力来满足业务需求。


不少客户在业务发展初期为开发降低开发成本和架构成本,以及部分to B客户为了产品输出、部署简单,采用多个业务模块存储在一套数据库的方式,PolarDB有不少客户就是这样的。


随着业务业务持续发展,数据量、访问量持续增加,不同业务模块的写特点也有可能不同,对数据库写TPS的诉求越来越高,会面临以下问题:


  • 各业务模块共同的并发写诉求单个写节点已经不能承载;
  • 在业务高峰期A业务的并发写可能会影响B业务的写入;
  • 写节点异常导致业务整体异常,无法及时恢复;
  • 通过垂直升配提高写容量的成本越来越高。


通过垂直升配、读写分离能解决部分写扩展问题,在性价比、稳定性、成本方面存在不少问题,客户更期待一个平滑扩展、高弹性、高稳定性、高性价比的数据库写扩展方案来支撑数据库写性能的横向扩展。


Q

高见:面对这些场景和痛点,PolarDB for MySQL的多主架构是如何解决的呢?


 江疑:  多主技术一直被誉为是数据库技术中皇冠上的明珠。早在云时代开始之前,能够实现多主写扩展技术的只有头部的两大商业数据库,其他开源数据库都无法做到这一点。这两大厂商也因此在数据库市场最核心的银行、金融、电信等领域占有垄断性的市场。


而其他商业或者开源数据库则主要以单主的一写多读形态存在,当需要写扩展的时候,往往通过购买多个单主数据库集群,并通过中间件或者ShareNothing的分布式数据库技术,将多个单写数据库分片聚合在一起,来实现写扩展。


云时代到来以后,各个头部云厂商都提供了云原生数据库的形态,PolarDB是国内第一个云原生数据库。云原生数据库在传统数据库的技术上和云的基础设施进行了融合,例如PolarDB通过和分布式存储PolarStore的融合,使得其在弹性、读扩展、存储容量上面有了大幅度的提升。


但是和云时代之前一样,云原生数据库在一开始还是难以突破多主技术的壁垒,当业务数据库增长达到单机上限瓶颈的时候,目前主流的方案还是只能通过多个单主集群拆分业务,中间件拆分数据,Share Nothing分布式数据库拆分数据等传统方案进行。


这些传统方案都存在如下的显著瓶颈:


  • 微观上都是通过拆分数据到多个单主集群/单主分片实现,当需要进行横向扩展是需要进行数据物理拆分和迁移,这种迁移非常的费时,有点类似传统数据库上扩只读节点那样需要迁移数据,并没有充分的利用云的基础设施的能力。同时拆分子业务和拆分数据分片的方案,难免都会遇到不同的业务/分片流量不均,或者短时间的分片流量突增,而由于分业务和分片只能通过迁移数据扩展,容易引发局部容量瓶颈导致的稳定性故障;
  • 当业务通过拆分到多个单主节点以后,如果需要进行全局的数据查询,业务往往需要一个额外的聚合库来进行聚合查询。这时就需要一个多链路的同步机制和一个额外的包含所有数据的大容量存储来支持。此时不单存储成本和容量都会直接翻倍,而且同步链路的延迟和稳定性也会让业务同学焦头烂额;
  • 由于传统的拆分子业务和拆分数据分片的方案,每个单主节点和分片都包含一部分数据,因此需要一个独立的备节点来解决这个节点的高可用问题,而这个备节点大部分情况下是浪费的,或者最多提供一些延迟读请求。

那么PolarDB for MySQL的多主架构是怎么来解决这些问题的呢?


PolarDB多主架构是基于第一代云原生架构的PolarDB一写多读架构实现的,是第一种实战的第二代云原生架构。他继承了一代云原生架构的存储和计算分离的技术,在大规模分布式存储的基础上实现了多个写节点共享同一份存储的多主技术突破,主要分为以下几点:


  • 使得一个数据库最大可以支持32个写节点,用户可以通过动态秒级的添加/删除写节点来实现横向弹性扩展,扩缩整个集群的读写能力,而无需干扰现有业务;
  • 用户可以秒级跨写节点迁移读写流量,来实现多个子业务和数据分片的读写均衡;
  • PolarDB多主架构在业内第一次实现了可以横跨多个主节点的全局RO功能。在不增加额外存储的同时,实现高效的汇聚查询,为用户解决了独立聚合库的大难题;
  • PolarDB多主架构实现了主主互备能力,每一个子业务/数据分片主节点都不需要在额外有一个备节点来实现高可用。当某一个主节点宕机时,多主架构通过动态选择其他低负载主节点接管宕机主节点流量,实现集群内再平衡。和云原生数据库相比,计算成本就直接降低到原来的1/2了;如果和自建/托管数据库相比,计算/存储成本均降为原来的1/2。


那么PolarDB for MySQL的多主架构是怎么突破的这个多主技术瓶颈的呢?


  • 难点一:没有一个的统一的分布式元数据管理系统。


多主架构支持库表及流量跨主节点切换,必然需要一套可以多点读写的分布式元数据体系,使得多个节点看到的库表结构均是完全一致的,并可以同时访问和修改。多主架构采用了PolarFusion技术,实现了在多个主节点上元数据的数据页的内存直接同步,实现了多节点强一致的分布式元数据体系,支撑了整个多主架构的秒级动态扩缩容,跨主节点秒级切流,本地DDL等功能,是整个多主架构的基石。


  • 难点二:秒级切换流量。


多主架构的多个核心优势均体现在跨主节点的流量秒切上面,而数据库的流量运行,不单需要访问数据存储本身,同时涉及到内存中缓存的数据页面,特别是脏页;涉及到多种必不可少的额外信息例如undo log,redo log,统计信息等等,这些信息都是耦合在一起的,并且各有各的不同点,需要在切流的时候针对其特点进行妥善的处理,来支撑秒级切流。


  • 难点三:一体化的事务系统。


多主架构下,跨越主节点的并发访问,在流量切换下的事务一致性,全局RO的事务定序,历史数据的有序purge都需要有一个分布式的事务系统来协调和处理这些在单机上很容易解决的问题。多主架构设计了跨越多个主节点的全局事务管理系统,解决所有集群维度的事务/流量协调。


 高见:  基于该架构的加持,多主架构集群版实现了三大技术优势:


1. 线性扩展


多主架构集群与标准的PolarDB集群版不同,标准集群版支持1个读写节点和最多15个只读节点,全部的写入操作指向唯一的读写节点,而多主架构集群版打破了这种限制,所有数据库实例节点都具备了读写的能力。根据阿里云实验室的测试数据,多主架构集群版随着节点的增加,集群整体并发读写能力得到了极大的提升,性能扩展可以说是线性提升。相对于友商的多主架构最大支持4节点扩展,PolarDB的多主架构集群版最多可支持32个节点同时写入,极限性能有了数倍提升,最大程度满足用户超高并发下的严苛性能要求。


2. 快速弹性


传统主备数据库架构下,增加节点需要全量复制数据,节点弹性的时间依赖数据量大小,从小时到天级不等,无法应对突增的业务性能要求。分表分库的分布式架构下,增加节点需要数据Re-Balance,迁移部分数据到新增的节点上,这个过程和数据量及新增节点数强相关,也需要花费较长时间提前规划维护窗口。PolarDB多主架构集群中所有读写节点共享同一份数据,增加节点做弹性扩展时,无需数据搬迁,5分钟生效,数据库跨节点动态调度,秒级完成切换,轻松应对不确定的业务增长。


3. 降低成本


传统数据库架构下,业务系统为了维持高可用,采用自建或者RDS数据库服务方式时,通常会选择主备架构。备节点无法提供服务或仅提供少量的读服务,造成资源闲置,成本高昂。PolarDB多主架构集群的节点间互为备份,故障场景下可以快速切换由其他节点接管业务,无需专门的备节点。相对于传统自建方式或者RDS的主备方式,可节省约一半的计算节点费用,存储费用也会相对减少。


有了这些优势,相信多主架构集群版可以为用户提供更优质更具性价比的数据库服务。


Q

高见:PolarDB for MySQL的多主架构集群版已经做了灰度发布,前面已经有很多重量级的客户进行了功能的试用,并且有部分客户已经将生产业务搬到了多主架构集群版上。那么客户真实的使用情况如何,能不能解决客户的问题,我们来听一下来自客户的反馈。

 君远:  在我服务的客户里有一类企业服务商客户,他们的业务特点和开发模式非常适合多主架构集群版。其中一个客户,业务上有一个基础平台系统和五六个核心业务系统。不同业务系统之间以及业务系统和基础平台之间有数据交互,他们云上的数据库架构是基础平台和业务系统的库做垂直拆分,采用这样的架构出于满足写扩展和写隔离的诉求,有十几个核心数据库实例,这些数据库之间由于业务侧需求,有跨库数据访问的诉求,通过数据复制工具进行不同数据库之间的数据复制,形成了复杂的级联复制链路,大大增加了维护数据库成本和维护成本,同时由于复制链路不稳定,当数据复制延迟是业务侧服务会一定程度上受损。


为解决这些问题,该客户提出用一套高规格、多实例数据库来承载基础平台系统和业务系统数据库的规划,来降低开发难度、降低输出数据库成本、降低部署难度、提高健壮性和稳定性。该需求的核心诉求是写扩展、写隔离、开发简单、跨数据库节点聚合查询数据。


首先,希望数据库方案支持写扩展和写隔离,能快速扩展写节点,同时支持写隔离用于隔离基础平台和业务系统的高并发写,以免在业务业务的高峰期出现写争抢以及出现A业务的写影响了B业务,在功能、性能、容量上满足各业务模块对并发写的诉求;其次,需要能支持不同数据库的跨节点数据库数据聚合查询,降低业务侧的开发难度;第三,如果其中一个数据库写节点出现异常,希望可以快速切换和恢复。


在客户提出这个需求的时候,我们也在规划多主架构集群版产品形态,基于客户的需求和客户进行了多轮共创。写扩展和写隔离是多主架构集群版核心能力,可以天然满足客户需求;跨数据库节点的数据聚合查询,我们在考虑多种实现方式以及方案交付及时性权衡后,提出用全局读节点来满足客户的跨数据库聚合查询的诉求,并且可以通过智能代理进行智能分流,不需要客户针对不同节点进行业务适配,客户在理解了我们的技术实现后表示可以满足业务需求。


对于数据库写节点异常快速切换的能力,我们提供了两个方案:

方案一:基于共享存储在不同写节点切换数据库;

方案二:提供备用standby节点进行高可用切换。


客户觉得第一个方案更适合他们的业务需求。至此多主架构集群版产品能力完美适配客户的业务需求,并在客户的预期时间点正式发布。


 江疑:  刚才我已经提到了PolarDB的多主架构在架构层面的技术突破,使得PolarDB完成了从一代云原生的一写多读架构到二代云原生的多写多读的多主架构转换。接下来我详细介绍下,多主架构的几个核心功能的技术内幕。


1. 主主互备


主主互备是多主架构的核心竞争力的技术点,在降本增效的大势下,如果我们能将计算和存储的成本直接减半,而不影响性能,这无疑有巨大的吸引力。那么主主互备就是这样的功能点。


主主互备打破了传统数据库甚至云原生数据库大规模数据集群形态想永远都是多个一主一备的架构,直接在不牺牲性能和高可用的前提下,裁剪掉了备节点,成本直接减半。那为什么只有PolarDB多主架构能做到呢?


最核心的就是多主架构下,多个主节点的存储是物理打通的,任何一个主节点,都可以同时作为其他主节点的备节点。这在单主架构下是无法实现的,这个架构突破给多主架构带来了巨大的成本优势。


当然主主互备有非常多的技术挑战:


  • 首先虽然多个主节点共享存储,但是大家都独立的redo log等,当一个主节点crash的时候,是需要recovery的,而不是能直接的切流到其他主节点,这时候我们需要其他主节点有在运行态帮助crash节点实现recovery的能力,而这个能力无论是工作量还是技术挑战都非常复杂,我们是云厂商中第一家拥有这个能力的数据库;
  • 其次主主互备中需要存活探测,流量探测,流量切换,流量再平衡等复杂流程,相对于原来的简单主备切换,需要有一个分布式的高可用管理系统,这个架构也是我们第一次在业内实现。


2. 全局只读节点


全局RO是PolarDB多主架构的另外一个核心创新点和优势点。在多主架构下,分布式共享存储上存储了多个主节点的所有数据,这给全局RO的实现提供了可能。在多主架构下,我们不再需要用多流和并的方式把多个单主小集群的数据汇聚到一个独立的汇聚库中,而天然存在一份包含所有数据的存储集群。当然全局RO同样存在多个核心功能挑战:

  • 多流物理复制:全局RO不是只要能访问到全局的存储数据就能实现,在访问数据的同时,全局RO同样需要感知到所有主节点最新的更新信息,并且在内存中对多个主节点的更新数据进行同步,这对于事务系统是一个巨大的挑战;
  • 分布式事务一致性读:多个主节点的修改,在同一个RO节点上如何定序,如何保证事务读的ACID,这都需要有一个分布式事务一致性读的机制,在主节点上进行事务写入的时候,就进行协调。

Q

高见:我们看到,多主架构集群版很好的解决了用户的扩展问题,非常适合用户将大量零散数据库进行聚合,相对于传统方式成本也有了大幅的降低。本次是多主架构集群版正式发布的第一个版本,产品功能还有很大的成长空间,后面也会不断的演进优化,那么产品研发团队近期主要是在做哪些方面的优化,主要的方向是哪些?


 江疑:  PolarDB多主架构集群版的演进思路有以下三个方面:


1. 多主架构未来需要加强的功能点:目前已经支持了主主互备,后续结合秒级切换的体系支持多主热备,做到无感高可用;在全局RO的基础上支持跨节点的订阅读,可以在一个主节点上读到其他主节点的数据;支持数据表透明分布,把一个表的多个分区分布放到多个RW上,然后来实现一个透明的写能力扩展,同时支持完整的ACID事务特性。

2. 多主架构和Serverless的融合,按需扩缩节点;

3. 多主架构实现行级多写的突破,PolarDB Cloud RAC。


 高见:  PolarDB for MySQL多主架构集群功能已经全面上线,可以在新购页面系列中选择“多主架构集群版”选择该功能,当前该功能已支持8.0以上内核版本。更多购买方法、使用说明请参见官网。


 / End /  

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
6天前
|
Cloud Native 关系型数据库 分布式数据库
让PolarDB更了解您--PolarDB云原生数据库核心功能体验馆
让PolarDB更了解您——PolarDB云原生数据库核心功能体验馆,由阿里云数据库产品事业部负责人宋震分享。内容涵盖PolarDB技术布局、开源进展及体验馆三大部分。技术布局包括云计算加速数据库演进、数据处理需求带来的变革、软硬协同优化等;开源部分介绍了兼容MySQL和PostgreSQL的两款产品;体验馆则通过实际操作让用户直观感受Serverless、无感切换、SQL2Map等功能。
|
1月前
|
Kubernetes Cloud Native 微服务
探索云原生技术:容器化与微服务架构的融合之旅
本文将带领读者深入了解云原生技术的核心概念,特别是容器化和微服务架构如何相辅相成,共同构建现代软件系统。我们将通过实际代码示例,探讨如何在云平台上部署和管理微服务,以及如何使用容器编排工具来自动化这一过程。文章旨在为开发者和技术决策者提供实用的指导,帮助他们在云原生时代中更好地设计、部署和维护应用。
|
3天前
|
人工智能 关系型数据库 MySQL
AnalyticDB MySQL版:云原生离在线一体化数据仓库支持实时业务决策
AnalyticDB MySQL版是阿里云推出的云原生离在线一体化数据仓库,支持实时业务决策。产品定位为兼具数据库应用性和大数据处理能力的数仓,适用于大规模数据分析场景。核心技术包括混合负载、异构加速、智能弹性与硬件优化及AI集成,支持流批一体架构和物化视图等功能,帮助用户实现高效、低成本的数据处理与分析。通过存算分离和智能调度,AnalyticDB MySQL可在复杂查询和突发流量下提供卓越性能,并结合AI技术提升数据价值挖掘能力。
26 16
|
3天前
|
运维 关系型数据库 分布式数据库
阿里云PolarDB:引领云原生数据库创新发展
阿里云PolarDB引领云原生数据库创新,2024云栖大会将分享其最新发展及在游戏行业的应用。PolarDB凭借弹性、高可用性、多写技术等优势,支持全球80多个站点,服务1万多家企业。特别是针对游戏行业,PolarDB助力Funplus等公司实现高效运维、成本优化和业务扩展。通过云原生能力,PolarDB推动游戏业务的全球化部署与快速响应,提升用户体验并保障数据安全。未来,PolarDB将继续探索AI、多云管理等前沿技术,为用户提供更智能的数据基础设施。
|
2天前
|
人工智能 编解码 自然语言处理
AI运用爆发时代, 视频服务云原生底座“视频云”架构的全智能再进化
本文介绍了AI运用爆发时代下,视频服务云原生底座“视频云”架构的全智能再进化。随着AI技术的发展,视频内容和交互方式正经历深刻变革。文章从背景、视频AI应用挑战、视频云网端底座、AIGC时代的全智能化及未来展望五个方面展开讨论。重点阐述了云、网、端三者如何深度融合,通过AI赋能视频采集、生产、分发和消费全流程,实现视频处理的智能化和高效化。同时,展望了未来AI在视频领域的创新应用和潜在的杀手级应用。
|
1月前
|
运维 Cloud Native 持续交付
云原生技术深度探索:重塑现代IT架构的无形之力####
本文深入剖析了云原生技术的核心概念、关键技术组件及其对现代IT架构变革的深远影响。通过实例解析,揭示云原生如何促进企业实现敏捷开发、弹性伸缩与成本优化,为数字化转型提供强有力的技术支撑。不同于传统综述,本摘要直接聚焦于云原生技术的价值本质,旨在为读者构建一个宏观且具体的技术蓝图。 ####
|
1月前
|
Cloud Native API 持续交付
云原生架构下的微服务治理策略与实践####
本文旨在探讨云原生环境下微服务架构的治理策略,通过分析当前面临的挑战,提出一系列实用的解决方案。我们将深入讨论如何利用容器化、服务网格(Service Mesh)等先进技术手段,提升微服务系统的可管理性、可扩展性和容错能力。此外,还将分享一些来自一线项目的经验教训,帮助读者更好地理解和应用这些理论到实际工作中去。 ####
52 0
|
1月前
|
Cloud Native 持续交付 云计算
云原生架构的崛起:企业数字化转型的加速器
在当今快速发展的技术环境中,企业正面临着前所未有的变革压力。本文深入探讨了云原生架构如何成为推动企业数字化转型的关键力量。通过分析其核心概念、优势以及实施策略,本文旨在为读者提供对云原生技术的全面理解,展示其在现代企业中不可或缺的作用。
33 0
|
3天前
|
存储 关系型数据库 分布式数据库
PolarDB PostgreSQL版:商业数据库替换与企业上云首选
PolarDB PostgreSQL版是商业数据库替换与企业上云的首选。其技术架构实现存储计算分离,具备极致弹性和扩展性,支持Serverless、HTAP等特性。产品在弹性、性能、成本优化和多模处理方面有显著提升,如冷热数据自动分层、Ganos多模引擎等。已在汽车、交通、零售等行业成功应用,典型案例包括小鹏汽车、中远海科等,帮助企业大幅降低运维成本并提高业务效率。
24 13
|
3天前
|
容灾 关系型数据库 分布式数据库
PolarDB分布式版:与云融合的分布式数据库发展新阶段
PolarDB分布式版标志着分布式数据库与云融合的新阶段。它经历了三个发展阶段:从简单的分布式中间件,到一体化分布式架构,再到云原生分布式数据库。PolarDB充分利用云资源的弹性、高性价比、高可用性和隔离能力,解决了大规模数据扩展性问题,并支持多租户场景和复杂事务处理。零售中台的建设背景包括国家数字化转型战略及解决信息孤岛问题,采用分布式数据库提升高可用性和性能,满足海量订单处理需求。展望未来,零售中台将重点提升容灾能力、优化资源利用并引入AI技术,以实现更智能的服务和更高的业务连续性。

相关产品

  • 云数据库 RDS MySQL 版
  • 云原生数据库 PolarDB