目录标题
以下是对 PolarDB-X 与 PolarDB-M 技术架构与特性 的整理与扩展,仅聚焦 技术相关内容:
PolarDB-X & PolarDB-M 技术架构与关键特性分析
一、产品定位与架构总览
| 产品 | PolarDB-X | PolarDB-M |
|---|---|---|
| 类型 | 分布式数据库 | 云原生数据库(MySQL 兼容) |
| 架构 | 中间件 + 分片 | 存算分离,存储层日志驱动同步 |
| 兼容性 | MySQL 协议兼容 | 完全兼容 MySQL |
| 部署形态 | 云上 / 本地 DBStack / 纯软 | 云上为主,线下待推进(因架构限制) |
| 信创兼容性 | 已过信创认证 | 正在测试阶段 |
二、PolarDB-X 技术细节
1. 架构设计
-
中间件 + 分片数据库架构:
- 类似 ShardingSphere/TDDL 的架构,前端为 SQL Router & Optimizer,后端接分库分表后的数据节点。
- 分布式事务、分布式执行计划、多分片 Join 等逻辑在中间层完成。
-
支持集中式形态部署:
- 可将多个 shard 合并部署在一个物理实例上,供单机性能下的轻量使用,降低复杂性。
2. 数据一致性
-
Binlog 增强:Raft 改造:
- 传统 MySQL Binlog 为异步复制,PolarDB-X 对 Binlog 做一致性增强,引入 Raft 协议 机制,确保强一致性,做到 RPO = 0。
- 保证在高可用场景下 Binlog 不丢、不重、不乱。
3. 分布式事务与透明化
-
TSO(Timestamp Oracle):
- 全局时钟服务,用于提供分布式事务的版本控制与顺序保证。
-
分布式事务:
- 支持跨分区的分布式事务,基于两阶段提交协议(2PC)+ TSO 时间戳,保证全局一致性。
-
自动分区、重平衡:
- 动态识别热点与负载,进行自动化分区拆分与迁移,实现数据分布优化。
-
全局二级索引(GSI):
- 解决传统分片系统中跨分片二级索引查询问题,提升业务透明度。
- 全局索引与主表数据异步维护,具备最终一致性保障。
4. 主备复制机制限制
-
主备切换/同步颗粒度问题:
- 由于中间件架构的先天性,主备同步和切换是在逻辑层和物理层之间完成,颗粒度较粗。
- 部分控制平面或管理功能难以细粒度感知或介入事务状态,影响实时性和灵活性。
5. 查询卸载机制
-
计算卸载设计:
- 中间件支持将复杂查询分发到多个存储节点并行处理(MPP 类似设计),并合并结果返回。
- 查询编排、Join 下推、Predicate 下推是关键优化点。
三、PolarDB-M 技术细节
1. 架构设计
-
完全云原生设计(存算分离):
- 与 AWS Aurora 类似,但有自己的改进路径。
- 写节点负责刷脏页(dirty page)。
- 只读节点通过存储层日志(Redo Log)回放保持同步。
-
强一致性实现机制:
- 所有节点通过访问 共享分布式存储(例如 Pangu) 实现数据共享。
- 写节点将日志同步写入存储层,读节点通过日志拉取和回放完成数据一致性同步。
-
一写多读模型:
- 支持多个只读节点同时服务于查询,自动负载均衡。
- 延迟较低,写入不阻塞查询,适合高读场景。
2. 数据一致性与容错能力
-
刷脏机制:
- 所有写入操作先记录日志(WAL),然后异步将脏页刷入底层共享存储。
- 增强数据恢复与故障容忍能力。
-
日志拉取同步机制:
- 读节点通过拉取主节点日志或直接从共享存储回放日志实现数据同步,具有较强的并发查询能力。
3. 与 Aurora 的差异点
| 项目 | PolarDB-M | Aurora |
|---|---|---|
| 日志传输机制 | 依赖共享存储日志读取 | 多副本日志链路复制 |
| 数据一致性同步 | 日志+刷脏 | 日志流 |
| 架构透明度 | 更强的 I/O 分层自治 | 更强的服务统一性 |
4. 当前限制
-
暂不支持线下部署:
- 存算分离与共享存储模型对底层设施要求高,需依赖阿里云基础设施。
- 若通过信创认证后落地线下,需解决裸金属、软件定义存储兼容问题。
四、两者对比分析(技术向)
| 项目 | PolarDB-X | PolarDB-M |
|---|---|---|
| 数据架构 | 分片中间件+多实例 | 存算分离+共享存储 |
| 分布式事务 | 支持,基于TSO+2PC | 不涉及跨分区事务(MySQL 单库模型) |
| 一致性协议 | Binlog基于 Raft 改造 | WAL + 刷脏 + 读节点日志回放 |
| 自动化能力 | 自动分区、重平衡、GSI、TSO | 自动只读节点同步 |
| 主备机制 | 粒度较粗,中间件主备 | 一写多读,读从日志同步 |
| OLAP/查询并发 | 查询下推优化,逐步引入 MPP 特性 | 多读节点查询分担 |
| 应用场景 | 分库分表、海量业务拆分 | 云上通用事务型场景,写少读多 |
| 部署灵活性 | 支持线下部署(DBStack) | 目前仅限云上(公有云基础设施依赖) |
如需进一步探讨:
- PolarDB-X 的 全局索引底层设计
- PolarDB-M 的 日志回放原理
- 二者在 高并发 OLTP 场景下的性能对比
可以继续深入技术实现或代码层结构分析。是否需要进一步展开某一块?
2063

被折叠的 条评论
为什么被折叠?



