登顶TPC-C|云原生数据库PolarDB技术揭秘:高可用-无感切换篇

本文涉及的产品
云原生数据库 PolarDB 分布式版,标准版 2核8GB
云数据库 RDS SQL Server,基础系列 2核4GB
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
简介: 「PolarDB登顶TPC-C技术揭秘」系列硬核文章

日前,阿里云PolarDB云原生数据库以超越原记录2.5倍的性能一举登顶TPC-C基准测试排行榜,以每分钟20.55亿笔交易(tpmC)和单位成本0.8元人民币(price/tpmC)的成绩刷新TPC-C性能和性价比双榜的世界纪录


每一个看似简单的数字背后,都蕴含着无数技术人对数据库性能、性价比和稳定性的极致追求,PolarDB的创新步伐从未止步。「阿里云瑶池数据库」公众号特此推出「PolarDB登顶TPC-C技术揭秘」系列硬核文章,为你讲述“双榜第一”背后的故事,敬请关注!


本文为系列连载第4篇——高可用-无感切换篇

👉 点击查看本系列往期内容

01、概述

image.png

TPC-C是由国际数据库事务性能委员会TPC组织发布、专门针对OLTP系统的测试模型,涵盖了数据库的增删改查等典型处理路径,以此来测试数据库的OLTP性能,最终性能以tpmC(每分钟订单创建数目)来衡量,TPC-C测试模型能够直观地评估出一个数据库的性能表现。


TPC-C基准测试中一个重要测试项为高可用测试。其通过模拟节点故障、网络中断等场景,验证数据库系统在故障切换中的事务处理能力、数据一致性和快速恢复能力。测试方法包括部署多节点集群,注入故障并监控关键指标(如吞吐量、延迟),确保服务连续性。其意义在于评估系统容灾能力,保障业务连续性,优化架构可靠性,提升用户信任。测试结果可量化RTO(恢复时间目标)和RPO(数据丢失量),为系统容错设计和运维提供依据。


本次TPC-C基准测试,我们所使用的是PolarDB for MySQL 8.0.2版。PolarDB for MySQL的高可用体系如图1所示。在同一个可用区内,通过VotingDisk实现计算节点秒级RTO、RPO=0的高可用探测和切换。同城跨可用区间,可选择使用内核集成优化的X-Paxos进行物理日志强同步容灾。跨城数据同步则可以使用全球数据库网络(GDN)高效同步数据。

image.png

图1:PolarDB for MySQL高可用体系

02、同可用区无感秒切

传统MySQL主备架构下,主备节点间通过Binlog复制回放生成一份容灾数据,用冗余的数据来实现高可用特性。得益于PolarDB for MySQL云原生共享存储的架构,在同可用区内,RW主节点和RO备节点间共享一份数据,高可用特性的存储成本为零。针对计算节点主机、网络故障场景,PolarDB通过云原生各组件的深度协调优化,实现了无感秒切能力。主要技术特点有:

  1. 通过共享存储原子读写语义,实现分布式计算节点VotingDisk快速探测机制;
  2. 热备只读节点通过全局预热,实现极速切换;
  3. 通过Proxy和计算节点全链路协调,内核事务续传创新技术,实现客户端连接零中断。

2.1 分布式租约锁:Voting Disk

基于PolarDB的云原生共享存储架构设计,计算节点通过共享存储PolarStore提供的原子读写接口,实现了一套分布式租约锁机制。原子读写数据块中记录了锁持有者和租约时间等元信息。PolarDB的主节点(VD Leader)通过续租接口不断更新元信息,证明锁持有者的健康状态。RO节点可以分为两种类型:热备RO和普通RO。热备RO(VD follower)通过trylock语义周期性尝试拿锁,完成故障探测和集群选主功能。普通RO(VD Observer)周期性获取集群拓扑信息,如果主节点发生变动,则自动连接新RW。同时,基于分布式共享存储的I/O FENCE接口,计算层节点根据锁的保护范围精确控制各种类型计算节点的写权限,保护数据安全性。整个方案我们称为Voting Disk。

image.png

图2:PolarDB for MySQL VotingDisk架构

PolarDB直接利用云原生架构中心化的共享存储实现一个计算层的分布式锁服务,而不需要依赖一个第三方的组件如ZooKeeper、Redis。也无需像Share Nothing的分布式系统依赖Paxos等一致性协议执行复杂的多数派判定。VotingDisk有以下几点优势:


  1. 故障检测准确:无需像传统主备数据库通过链接探测RW状态,避免由于假死、误判导致的错误切换。对IO hang或IO链路网络故障的场景可以有效覆盖。
  2. 秒级RTO:RO节点可以一次原子I/O快速获取所有分布式锁信息,1~5秒即可获取集群健康状态。文件锁属于中心化的节点,决策不存在双主的风险。
  3. RPO = 0:集群所有节点共享存储,RO切换为任一节点都可保证数据零丢失。


2.2 无感秒切

PolarDB通过多技术协同实现高可用与无缝切换。热备RO节点除提供读服务外,预留部分资源作为全局预热系统,通过Buffer Pool、Undo、Redo、Binlog四个模块实时同步主节点元数据至内存。当主备切换发生时,备节点可以直接从内存获取到相关信息而不用通过发起IO从存储获取信息。

image.png

图3:热备RO全局预热

2.3 连接保持和事务续传

传统主备切换常导致连接中断和事务回滚,针对空闲连接,PolarDB连接保持功能通过数据库代理(PolarProxy)在应用与数据库间桥接连接,切换时保留会话状态(如变量、字符集),保证连接不中断。

image.png

图4:连接保持

针对有活跃事务的会话,由于Proxy无法存储事务执行上下文,连接保持将失效。PolarDB创新性推出事务续传功能,实现事务上下文在RW节点和RO节点间同步。主备切换时,Proxy在新RW节点上查询对应链接的事务上下文信息,并将该信息恢复到新链接上后即可继续执行事务。最终,应用仅感知到操作延迟,无连接或事务错误。相比传统逻辑复制,PolarDB基于物理复制确保备节点与主节点数据完全一致,显著提升切换效率与可靠性。详情可见:无感秒切

image.png

图5:PolarDB for MySQL事务续传

2.4 多主集群高可用

PolarDB MySQL版支持多主集群(Limitless),客户通过加读写节点(RW)的方式即可从PolarDB MySQL一主多读变配为PolarDB MySQL版多主集群(Limitless)。多主集群的每个RW节点都可以分配一个Voting Disk分布式租约锁。每个RW也可以配置一个私有RO,作为其备节点。集群RO数量可以自定义。RO除了作为备库,在系统运行过程中也可以提供全局一致的读服务。最低可以配置零RO节点,让RW探测其余RW节点的状态而作为其余RW的备份节点。发现RW不可用以后,将故障RW的分库移到正常的RW即可。不过值得提醒的是,由于资源减少,在高压力负载下可能会影响集群整体性能。

2.5 高可用测试

通过sysbench read_write 32并发测试,验证主备切换的效果。如图6所示,可以看到在切换瞬间,只有1秒多慢查询影响,无断连报错。

image.png

图6:无感秒切

03、同城跨可用区容灾技术

当需要在同城不同可用区之间进行数据容灾时,PolarDB提供多层次的容灾体系以供选择。

image.png

图7:同城多可用区容灾方案

在同城多可用区下,PolarDB MySQL提供了四种容灾方案:


  1. 双可用区异步同步-存储对等:
  • 数据分布在两个可用区内,主可用区和备可用区各保存一份完整数据,备可用区异步复制主可用区数据。
  • 无计算节点,主备可用区切换时,需要在备可用区重新部署计算集群。
  1. 双可用区异步同步-计算、存储对等:
  • 数据分布在两个可用区内,主可用区和备可用区各保存一份完整数据,备可用区异步复制主可用区数据。
  • 主可用区、备可用区部署对等计算集群,主备可用区切换时,无需等待计算集群重新部署。
  1. 双可用区半同步:
  • 数据分布在两个可用区内,主可用区和备可用区各保存一份完整数据,备可用区同步复制主可用区数据。
  • 无计算节点,主备可用区切换时,需要在备可用区重新部署计算集群。
  1. 多可用区强同步: 
  • 多可用区数据强一致性。与半同步和异步方式相比,采用一主一备一日志的三节点架构,通过物理复制与X-Paxos协议相结合,同可用区之间强同步物理日志,在进行可用区切换时可保证零数据丢失。
  • 当主可用区集群发生故障时,X-Paxos自动选主并切换至备可用区,可确保恢复时间目标(RTO)小于15秒,提供金融级别的高可靠性。

04、跨城容灾

全球数据库网络(Global Database Network,简称GDN)是由分布在多个地域的多个PolarDB集群组成的网络。GDN网络中所有集群的数据保持同步,网络中每个集群均提供读服务(写服务会被转发到主集群处理),并且提供异地灾备能力,可满足如下应用场景:


▶︎ 异地多活

如果业务部署在多个地域,传统网络下,数据库在主地域,其它地域的应用需要跨地域访问主地域的数据库,网络延迟会导致数据库性能低下,带来不良的用户体验。通过全球数据库网络的跨地域低延迟同步、跨地域读写分离、本地就近读取等特性,可以确保各地域的应用访问数据库时的延迟小于2秒。


▶︎ 异地灾备

不论业务部署在一个或多个地域,都能通过全球数据库网络实现异地容灾。当主集群出现地域级别的故障时,您只需要手动将您的业务切换到从集群。

image.png

PolarDB GDN相对于其他数据库产品或者给予Binlog的中间件方案具有明显的优势:

  • 低延迟:PolarDB全球数据库网络是基于Redo Log来做的同步,相对于Binlog同步,Redo Log的产生不依赖事务提交,并且针对数据页修改的特征更方便做并发,同时PolarDB GDN通过流水线、多通道等复制优化极大的降低地域之间的复制延迟。
  • 低成本:目前全球数据库网络(GDN)跨地域传输流量可以免费使用,您只需要支付每个PolarDB集群自身的费用
  • 产品一体化:内核级别双向复制、读写控制、双活切换联动,消除第三方工具复杂链路带来的风险及复杂运维。


同时PolarDB GDN还提供了一些好用的附加功能来满足用户多样的跨地域数据库需求,例如:

  • 全局域名:全局域名功能给GDN提供一个统一的连接地址。通过全局域名,不但可以实现就近访问,还可以实现主集群切换后,域名保持不变。
  • GDN 2.0就近写:GDN 2.0提供库表/分区级别的多写能力;通过库表/分区的写权限控制来彻底规避危险的写冲突问题;提供Unit Sequence来支持不同地域自增键的交叉推进;并实现实例级、AZ级、地域级三级容灾一键切换能力。
相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
8天前
|
弹性计算 运维 关系型数据库
用 Patroni 搭建 PolarDB-PG 高可用集群
本文详细介绍了如何利用开源PolarDB-PG和Patroni搭建高可用集群。实验环境使用了三台ECS,内核版本为PolarDB-PG 15,Patroni版本为4.0.3,etcd版本为3.5.0。文章依次讲解了ETCD的安装与配置、PolarDB-PG 15的安装与初始化,以及Patroni的配置和启动过程。通过Patroni自动创建备库,实现高可用集群的搭建。最后总结指出,用户可根据需求调整配置,或选择线上PolarDB-PG产品以减少运维成本并提升稳定性。
|
1月前
|
Cloud Native 关系型数据库 分布式数据库
|
2天前
|
人工智能 Cloud Native 安全
云原生+AI 为企业出海提供全新技术引擎!明天见
5月22日 14:00「飞天发布时刻」,阿里云云原生应用平台产品负责人李国强将重磅揭晓面向 AI 场景的云原生产品体系升级,通过弹性智能的全球一体化架构、开箱即用的云原生 AI 工程化能力,为中国企业出海提供全新技术引擎。
|
1月前
|
Cloud Native 关系型数据库 分布式数据库
登顶TPC-C|云原生数据库PolarDB技术揭秘:弹性并行查询(ePQ)篇
阿里云PolarDB云原生数据库在TPC-C基准测试中刷新了性能和性价比的世界纪录,达到每分钟20.55亿笔交易(tpmC),单位成本仅0.8元人民币。PolarDB采用云原生架构,支持数千节点横向扩展,具备弹性并行查询(ePQ)功能,可显著加速复杂查询。此外,PolarDB还推出了国产轻量版,以软件形式部署,满足多样化需求。
|
1月前
|
运维 Cloud Native 测试技术
极氪汽车云原生架构落地实践
随着极氪数字业务的飞速发展,背后的 IT 技术也在不断更新迭代。极氪极为重视客户对服务的体验,并将系统稳定性、业务功能的迭代效率、问题的快速定位和解决视为构建核心竞争力的基石。
|
9天前
|
人工智能 Cloud Native 容灾
深圳农商银行三代核心系统全面投产 以云原生架构筑牢数字化转型基石
深圳农商银行完成第三代核心系统全面上云,日均交易超3000万笔,峰值处理效率提升2倍以上。扎根深圳70余年,与阿里云共建“两地三中心”分布式云平台,实现高可用体系及全栈护航。此次云原生转型为行业提供可复制样本,未来将深化云计算与AI合作,推动普惠金融服务升级。
141 18
|
2月前
|
存储 缓存 Cloud Native
云原生时代的架构革新,Apache Doris 存算分离如何实现弹性与性能双重提升
随着云基础设施的成熟,Apache Doris 3.0 正式支持了存算分离全新模式。基于这一架构,能够实现更低成本、极致弹性以及负载隔离。本文将介绍存算分离架构及其优势,并通过导入性能、查询性能、资源成本的测试,直观展现存算分离架构下的性能表现,为读者提供具体场景下的使用参考。
云原生时代的架构革新,Apache Doris 存算分离如何实现弹性与性能双重提升
|
5月前
|
运维 Cloud Native 持续交付
深入理解云原生架构及其在现代企业中的应用
随着数字化转型的浪潮席卷全球,企业正面临着前所未有的挑战与机遇。云计算技术的迅猛发展,特别是云原生架构的兴起,正在重塑企业的IT基础设施和软件开发模式。本文将深入探讨云原生的核心概念、关键技术以及如何在企业中实施云原生策略,以实现更高效的资源利用和更快的市场响应速度。通过分析云原生架构的优势和面临的挑战,我们将揭示它如何助力企业在激烈的市场竞争中保持领先地位。
146 13
|
5月前
|
Kubernetes Cloud Native 微服务
探索云原生技术:容器化与微服务架构的融合之旅
本文将带领读者深入了解云原生技术的核心概念,特别是容器化和微服务架构如何相辅相成,共同构建现代软件系统。我们将通过实际代码示例,探讨如何在云平台上部署和管理微服务,以及如何使用容器编排工具来自动化这一过程。文章旨在为开发者和技术决策者提供实用的指导,帮助他们在云原生时代中更好地设计、部署和维护应用。
|
1月前
|
Cloud Native Serverless 流计算
云原生时代的应用架构演进:从微服务到 Serverless 的阿里云实践
云原生技术正重塑企业数字化转型路径。阿里云作为亚太领先云服务商,提供完整云原生产品矩阵:容器服务ACK优化启动速度与镜像分发效率;MSE微服务引擎保障高可用性;ASM服务网格降低资源消耗;函数计算FC突破冷启动瓶颈;SAE重新定义PaaS边界;PolarDB数据库实现存储计算分离;DataWorks简化数据湖构建;Flink实时计算助力风控系统。这些技术已在多行业落地,推动效率提升与商业模式创新,助力企业在数字化浪潮中占据先机。
149 12

相关产品

  • 云原生数据库 PolarDB