主要观点总结
本文介绍了云原生架构推动数据库发展的相关内容,以阿里云PolarDB云原生数据库为例,详细阐述了其整体架构、技术特点以及创新点。文章从概述、技术深入解读、整体总结三个方面进行了详细介绍,包括PolarDB MySQL版多主集群的架构、高性能横向跨机读写扩展、高可用机制、全局RO节点等方面的内容。
关键观点总结
关键观点1: 云原生架构的优势
云原生架构能够突破单机性能瓶颈,实现海量数据与高并发场景的支撑,通过多节点协同保障高可用与容灾能力,降低资源成本,推动数据库从封闭系统向灵活、智能的分布式架构演进。
关键观点2: PolarDB数据库的特点
PolarDB数据库采用云原生架构,支持多主集群(Limitless),客户可以通过加读写节点的方式实现多主多写,内存融合,分布式存储,秒级横向扩展。其创新点包括高性能横向跨机读写扩展、云原生分布式事务方案等。
关键观点3: PolarDB的技术创新
PolarDB的技术创新包括利用RDMA等新型硬件低延迟优势加速事务流程,设计实现了基于多阶段提交协议的分布式事务方案,实现了良好的多机写扩展性。同时,还提供了多样化高可用方案、全局RO节点等特性。
关键观点4: PolarDB的性能表现
PolarDB在TPC-C基准测试中刷新了世界纪录,展现了其出色的性能、稳定性和可扩展性。此外,其与MySQL高度兼容,交易和分析性能大幅提升,TCO低于自建数据库。
正文
(一)PolarDB MySQL版多主集群(Limitless)整体架构
图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事务系统对于读写混合场景、纯写场景都有较大的性能提升。