登顶TPC-C|云原生数据库PolarDB技术揭秘:Limitless集群和分布式扩展篇

本文涉及的产品
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
云原生数据库 PolarDB 分布式版,标准版 2核8GB
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
简介: 阿里云PolarDB云原生数据库在TPC-C基准测试中以20.55亿tpmC的成绩刷新世界纪录,展现卓越性能与性价比。其轻量版满足国产化需求,兼具高性能与低成本,适用于多种场景,推动数据库技术革新与发展。

日前,阿里云PolarDB云原生数据库以超越原记录2.5倍的性能一举登顶TPC-C基准测试排行榜,以每分钟20.55亿笔交易(tpmC)和单位成本0.8元人民币(price/tpmC)的成绩刷新TPC-C性能和性价比双榜的世界纪录每一个看似简单的数字背后,都蕴含着无数技术人对数据库性能、性价比和稳定性的极致追求,PolarDB的创新步伐从未止步。

一、概述

image.png

本次TPC-C基准测试,我们所使用的是PolarDB for MySQL 8.0.2版。PolarDB MySQL版支持多主集群(Limitless),客户通过加读写节点(RW)的方式即可从PolarDB MySQL一主多读变配为PolarDB MySQL版多主集群(Limitless)


PolarDB MySQL版多主集群(Limitless)支持多主多写、内存融合、分布式存储、秒级横向扩展,支持单表读写透明的跨机扩展到海量节点。本次TPC-C基准测试中 PolarDB 以2340个读写节点的形态(规格为48核512GB),支持了每分钟20.55亿笔交易(tpmC)。从tmpC和price/tpmC刷新TPC-C性能和性价比双榜的世界纪录。


早期的云原生关系型数据库主要形态是基于存储和计算分离的一写多读形态,虽然其可以很好地替换原生或者托管的MySQL/PG数据库,但是因其单写架构限制了其写能力的扩展。随着云原生数据库技术的不断演进,支持大规模部署和横向读写扩展的云原生数据库PolarDB MySQL版多主集群(Limitless)功能就此诞生。其核心优势是可弹性扩缩计算节点且每个节点都可处理读写请求,可在多个节点上实现并发写入。此外,其在保留单机高性能,高弹性的同时,利用RDMA/CXL等技术,对节点间的事务和数据进行高效融合,在保证事务一致性的前提下,实现高效的透明秒级横向跨机读写线性扩展。


本篇文章将详细介绍PolarDB MySQL版多主集群(Limitless)的整体架构,以及支撑其成功登顶TPC-C的核心技术创新点。


二、技术深入解读

(一)PolarDB MySQL版多主集群(Limitless)整体架构

image.png

图1: PolarDB MySQL版多主集群(Limitless)架构图

PolarDB MySQL版集群包含多个RW计算节点、多个RO计算节点、可选的Cache Coordinator节点组成,其底层基于分布式共享存储。每个RW节点均可读可写,并通过RDMA/CXL高速网络和Cache Coordinators通信,Cache Coordinators 负责集群元数据管理和事务信息协调,同时支持CDC功能,负责输出统一的全局Binlog。


此外,该架构支持将单一分区表的不同分区动态分布到不同RW节点上,并通过分区裁剪模块判断执行计划应该路由到哪个RW节点。因此,可支持不同分区在各RW节点并发写入,实现写能力的横向扩展,能够极大提升集群整体的并发读写性能。并且,集群还支持跨节点的分布式查询、分布式DML、分布式DDL,并通过RDMA内存融合的方式保证跨节点事务的一致性和原子性。此外,设计了全局RO节点来支持全局查询/多表联合查询/列存查询加速。


PolarDB的集群中多个RW计算节点采用对称架构,即其单个RW节点包含了传统分布式数据库的CN(协调节点)和DN(数据节点)节点的功能,不再需要客户去单独配置CN节点和DN节点的数量。对称节点的设计有显著的优势:

  • 可充分提升资源利用率,避免因在不同负载下CN/DN某一个打满而另一个闲置的资源浪费;
  • 可降低CN/DN分离带来的额外的通信成本,提升性能;
  • 计算节点采用MySQL原始的语法解析/优化/执行器带来了100%的MySQL兼容性。


(二)高性能横向跨机读写扩展

1.PolarTrans云原生事务系统

InnoDB原生事务系统是基于活跃事务列表实现的,但维护活跃事务列表需要全局大锁保护,成本开销较大,在高并发场景下容易成为整个系统的性能瓶颈点。另外,考虑到分布式事务一致性方案大多基于提交时间戳方案(TSO/TrueTime/HLC等),因此,PolarTrans通过提交时间戳技术(CTS)优化原生事务系统,核心数据结构为CTS log,由一段ring buffer组成,事务ID trx_id通过取模映射到其对应的slot,每个slot存储trx指针和cts值(事务提交时间戳)。其优化的核心思想是移除对复杂数据结构的维护,事务状态迭代、可见性判断等核心事务逻辑, 都是通过CTS log来完成,更加轻量级;同时PolarTrans将大部分的逻辑进行无锁优化,因此,PolarTrans事务系统对于读写混合场景、纯写场景都有较大的性能提升。

image.png

图2:CTS Log 结构图


2.分布式快照一致性

InnoDB原生快照一致性读依赖活跃事务列表维护事务状态,提供事务可见性判断,该机制在分布式多写场景中暴露严重缺陷:维护集群跨节点的全局活跃事务列表,引发高频全局锁竞争,扩展性随节点数增长而急剧下降。PolarDB基于PolarTrans以及RDMA来构建分布式事务系统,提供分布式快照一致性能力:


(1)集群中所有节点通过RDMA进行点对点互连,跨机共享RDMA注册的内存CTS Log来实现全局事务状态信息同步和跨物理机直接更新,避免通过中心节点维护全局活跃事务列表,同时CTS Log提供了事务远程提交,状态查询等能力。


(2)通过TSO或HLC两种时间戳管理方案,生成事务提交时间戳,分布式写事务的所有子事务通过相同的时间戳进行原子提交,分布式读通过统一的时间戳结合CTS Log判断数据可见性,保证分布式读一致性。


3.多机事务一致性:云原生分布式事务

我们设计实现了一种软硬件协同的云原生分布式事务方案,可实现良好的多机写扩展性。核心思想是利用RDMA等新型硬件低延迟优势,加速提交流程中Prepare阶段和Commit阶段的执行。相对于传统或现有的数据库分布式事务方案来说,我们所设计的软硬件协同的云原生分布式事务方案的核心优化点有:


(1)通过利用RDMA新型硬件低延迟的优势和LSN机制,优化了分布式事务Prepare阶段的执行流程,仅需执行远端RDMA读操作就可确定事务的Prepared状态,避免了Prepare阶段协调节点与参与节点之间的SQL交互开销。


(2)设计了CTS Log记录事务提交时间戳,协调节点CN通过RDMA将事务提交时间戳cts,以微秒级延迟写入参与节点PN的CTS Log,优化了Commit阶段的执行逻辑,使得Commit阶段可以异步执行。


4.多机并行DDL


PolarDB全局共用全量dd信息的同时将表进行拆分,不同RW节点负责读写不同分表,以提升单表的吞吐和数据承载能力。在实际业务中对表拆分后,如何控制所有分表的DDL流程,协调与逻辑表的关系,防止表的元信息不一致,是分布式DDL设计需要考虑的难题。


(1)DDL并发控制:在分布式表场景下,为了防止同一张表出现并发DDL,我们复用库/表锁的思想和管理逻辑,为全局库/表增加一个XB锁类型,执行DDL时首先拿XB锁,从而避免并发DDL。


(2)分布式DDL原子性保证:设计一种基于多阶段提交协议的机制,在Commit阶段之前的任何时间点,如果DDL执行过程发生异常,会立即报告给协调节点CN;CN向所有DN发送指令,回滚DN节点上执行的DDL操作,从而保证分布式DDL操作的原子性。


(三)高可用机制

为了实现数据库系统的高可用,传统OLTP数据库的做法是为每个主节点(Primary)维护一个或多个备节点(Standby)。为了降低成本且保证系统的高可用,我们提供了可供用户选择的多样化高可用方案。


首先,基于私有RO节点的高可用方案,用户可选择为每个RW节点配置私有RO节点,私有RO节点和RW共享同一份数据,无需额外存储数据。当一个RW节点发生故障时,可将其私有RO节点秒级切换为RW,接管流量请求,集群整体性能不会受到影响。另一方面,如果用户没有为RW节点配置私有RO,当RW节点发生故障时,我们还提供RW节点间互为备节点的机制来保证高可用。当一个RW节点发生故障时,可选择另外一个低负载的RW节点来快速接管故障节点上的流量,只需将故障节点上的库表重映射到低负载的RW即可,但由于资源限制在高压力负载下可能会影响集群整体性能。


(四)全局RO节点

为了支持跨表/库的全局查询/多表联合查询,我们设计了全局只读(RO)节点。考虑到集群中的每个RW节点都可以看到共享存储中的所有数据,因此将全局只读节点设计为多个RW节点的聚合库。全局只读节点可以直接查询所有RW节点写入的数据,避免了从多个RW节点查询数据并聚合它们。同时,不需要为全局RO节点存储额外的数据副本,节省了聚合库的额外存储开销。对于跨多个RW节点的全局查询,数据库集群提供透明路由,通过PolarProxy将全局查询自动路由到全局只读节点上。


(五)极致的性能和扩展性

使用TPC-C基准测试程序对PolarDB MySQL版Limitless超大规模集群(2340个读写节点,节点规格48核512GB)进行了性能测试,TPC-C被认为是数据库领域的“奥林匹克”,它是OLTP(联机交易处理系统)数据库性能测试唯一的国际权威榜单。

1.超大规模集群下稳定的性能

image.png

图3:摘自阿里云 PolarDB TPCC 报告

在8小时持续压测过程中,集群整体tpmC的波动率一直处于0.16%以内(标准要求2%以内),实现了8小时持续、无任何错误、稳定的压测,且集群整体tpmC高达20.55亿,刷新TPC-C世界纪录,登顶世界第一。

2.超大规模集群下高可用和容灾能力

image.png

图4:PolarDB TPCC 容灾场景性能数据

在容灾场景测试中,执行了不同组件的故障测试,真实的物理机器断电,验证了集群在物理机器故障的突发情况下,能在10 秒内完成故障容灾切换,2分钟内完成整体性能的恢复,容灾测试过程中对集群整体性能的影响控制在2%以内(标准要求10%以内),并且可以保证数据不丢失,分布式事务一致性等。

3.秒级水平扩容能力

image.png

图5:秒级水平扩容测试结果

在横向水平扩容测试时,创建的4个DB最开始都在RW1上,压测过程中,逐渐增加RW节点个数,并将DB2-DB4依次绑定到新增的RW节点。图中展示了扩容过程中集群整体的性能变化,表明集群可以实现秒级的水平扩容。


三、整体总结

PolarDB是第一个深度融合RDMA/CXL等新硬件的云原生关系型数据库,支持大规模高性能的横向跨机读写扩展,最高可扩展至数千个计算节点。该架构支持高性能的跨节点事务一致性,深度融合RDMA技术的云原生事务系统PolarTrans,弹性并行查询ePQ,其分布式能力实现性能近线性扩展。


此外,通过索引结构、I/O路径等90多种优化技术,集群中每个节点都实现了极致的单机性能。值得强调的是,PolarDB MySQL版多主集群(Limitless)成功刷新TPC-C世界纪录,表明PolarDB创新的可横向跨机读写扩展的多主多写云原生架构,不仅突破了单集群的扩展性瓶颈,还成功扛住了全球最大规模的并发交易峰值,在性能、可扩展性等多个维度均处于全球领跑者位置。


PolarDB MySQL 版国产轻量版正式售卖点此咨询 https://survey.aliyun.com/apps/zhiliao/blKbuny7U


国产轻量版介绍:

随着技术的不断进步和国产市场需求的变化,PolarDB推出了满足国产市场需要且更具性价比的轻量化版本。与公有云在线化版本不同,轻量化版本采用软件输出的方式,可以部署在客户自主环境中。更为关键的是,该产品仍保留并承载了PolarDB技术团队深入的内核优化成果,使其既能保持高性能,又能大幅降低成本。


相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
13天前
|
Cloud Native 关系型数据库 分布式数据库
|
20天前
|
存储 NoSQL 数据库
Redis 逻辑数据库与集群模式详解
Redis 是高性能内存键值数据库,广泛用于缓存与实时数据处理。本文深入解析 Redis 逻辑数据库与集群模式:逻辑数据库提供16个独立存储空间,适合小规模隔离;集群模式通过分布式架构支持高并发和大数据量,但仅支持 database 0。文章对比两者特性,讲解配置与实践注意事项,并探讨持久化及性能优化策略,助你根据需求选择最佳方案。
50 5
|
13天前
|
存储 关系型数据库 分布式数据库
|
6天前
|
负载均衡 算法 关系型数据库
大数据新视界--大数据大厂之MySQL数据库课程设计:MySQL集群架构负载均衡故障排除与解决方案
本文深入探讨 MySQL 集群架构负载均衡的常见故障及排除方法。涵盖请求分配不均、节点无法响应、负载均衡器故障等现象,介绍多种负载均衡算法及故障排除步骤,包括检查负载均衡器状态、调整算法、诊断修复节点故障等。还阐述了预防措施与确保系统稳定性的方法,如定期监控维护、备份恢复策略、团队协作与知识管理等。为确保 MySQL 数据库系统高可用性提供全面指导。
|
13天前
|
Cloud Native 关系型数据库 分布式数据库
登顶TPC-C|云原生数据库PolarDB技术揭秘:弹性并行查询(ePQ)篇
阿里云PolarDB云原生数据库在TPC-C基准测试中刷新了性能和性价比的世界纪录,达到每分钟20.55亿笔交易(tpmC),单位成本仅0.8元人民币。PolarDB采用云原生架构,支持数千节点横向扩展,具备弹性并行查询(ePQ)功能,可显著加速复杂查询。此外,PolarDB还推出了国产轻量版,以软件形式部署,满足多样化需求。
|
19天前
|
存储 关系型数据库 分布式数据库
登顶TPC-C|云原生数据库PolarDB技术揭秘:高可用-无感切换篇
阿里云PolarDB云原生数据库在TPC-C基准测试中以20.55亿tpmC的成绩刷新世界纪录,单位成本仅0.8元人民币。PolarDB通过VotingDisk实现秒级故障切换,RPO=0,提供高可用性。PolarDB还推出国产轻量版,兼具高性能与低成本,满足多样化需求。
|
22天前
|
运维 Cloud Native 测试技术
极氪汽车云原生架构落地实践
随着极氪数字业务的飞速发展,背后的 IT 技术也在不断更新迭代。极氪极为重视客户对服务的体验,并将系统稳定性、业务功能的迭代效率、问题的快速定位和解决视为构建核心竞争力的基石。
|
1月前
|
存储 缓存 Cloud Native
云原生时代的架构革新,Apache Doris 存算分离如何实现弹性与性能双重提升
随着云基础设施的成熟,Apache Doris 3.0 正式支持了存算分离全新模式。基于这一架构,能够实现更低成本、极致弹性以及负载隔离。本文将介绍存算分离架构及其优势,并通过导入性能、查询性能、资源成本的测试,直观展现存算分离架构下的性能表现,为读者提供具体场景下的使用参考。
云原生时代的架构革新,Apache Doris 存算分离如何实现弹性与性能双重提升
|
4月前
|
运维 Cloud Native 持续交付
深入理解云原生架构及其在现代企业中的应用
随着数字化转型的浪潮席卷全球,企业正面临着前所未有的挑战与机遇。云计算技术的迅猛发展,特别是云原生架构的兴起,正在重塑企业的IT基础设施和软件开发模式。本文将深入探讨云原生的核心概念、关键技术以及如何在企业中实施云原生策略,以实现更高效的资源利用和更快的市场响应速度。通过分析云原生架构的优势和面临的挑战,我们将揭示它如何助力企业在激烈的市场竞争中保持领先地位。
120 13
|
21天前
|
Cloud Native Serverless 流计算
云原生时代的应用架构演进:从微服务到 Serverless 的阿里云实践
云原生技术正重塑企业数字化转型路径。阿里云作为亚太领先云服务商,提供完整云原生产品矩阵:容器服务ACK优化启动速度与镜像分发效率;MSE微服务引擎保障高可用性;ASM服务网格降低资源消耗;函数计算FC突破冷启动瓶颈;SAE重新定义PaaS边界;PolarDB数据库实现存储计算分离;DataWorks简化数据湖构建;Flink实时计算助力风控系统。这些技术已在多行业落地,推动效率提升与商业模式创新,助力企业在数字化浪潮中占据先机。
105 12

相关产品

  • 云原生数据库 PolarDB
  • 下一篇
    oss创建bucket