返回首页

PostgreSQL 中的 MySQL 解决方案:用于高性能的 Polar 架构

通过 Tantor Polar 架构将 MySQL 解决方案集成到 PostgreSQL 的技术分析。使用 RDMA 和 NVMe-oF 实现计算和存储分离的技术分解。与 Oracle RAC 和其他解决方案的比较。

Tantor 的创新:MySQL 优化如何加速 PostgreSQL
Advertisement 728x90

将 MySQL 解决方案集成到 PostgreSQL:高性能架构创新

在 2026 年 PG BootCamp 大会上,Alexey Kopytov(sysbench 作者,前 MySQL AB/Percona 开发者)发表了一场关于将 MySQL 生态系统优化移植到 PostgreSQL 的演讲。关键要点——利用成熟解决方案提升 PostgreSQL 在高负载系统中的容错性和性能。特别值得关注的是 Tantor 团队基于 Alibaba PolarDB 适配的计算存储分离技术实现。

这种方法的主要优势是保持与 PostgreSQL 的完全兼容,同时显著提升吞吐量。与分片或分布式解决方案(Citus、Greenplum)不同,Tantor Polar 架构能够在不牺牲 ACID 保证的情况下处理跨分片查询,这对 OLTP 系统至关重要。

数据库管理系统架构解决方案分类

Alexey Kopytov 提出了对现有计算与存储节点分离方法的清晰分类:

Google AdInline article slot
  • 分片和 MPP 系统(Greenplum、Citus):在 SQL 解析器层面分离。问题——缺乏单点时间一致性(xid/SCN)
  • 分布式事务数据库管理系统(Spanner、YugabyteDB):事务处理在存储节点上
  • “LOG is DB” 架构(Amazon Aurora、Neon):变更日志优先,WAL 处理在存储上
  • Polar 架构(Tantor Polar):直接在存储层上方分离

Polar 架构的关键区别在于最大限度减少对 PostgreSQL 核心的改动。所有优化都在文件系统层面(PolarFS)实现,这带来了:

  • 与现有应用(包括 1C)100% 兼容
  • 避免对 PostgreSQL 核心的侵入式改动
  • 支持现有的备份工具

Tantor Polar 架构:技术实现

系统基于三个关键组件构建:

  • PolarFS——基于 RDMA/NVMe-oF 的高性能文件系统
  • RDMA 网络——用于计算节点与存储节点之间的通信
  • 修改后的 PostgreSQL——对 I/O 子系统的最小改动

一个突出特性是使用 Linux MD Cluster 作为块设备的底层。这项解决方案提供了:

Google AdInline article slot
  • 与本地 SSD 相当的数据访问延迟(5-10 μs)
  • 计算节点的透明扩展,与存储无关
  • 支持 RW 节点上的 Active-Active 模式

重要的是,PolarFS 通过标准的 POSIX 接口运行,无需修改 PostgreSQL 核心。所有改动都限制在文件系统驱动程序中,大大简化了上游合并和维护。

与 Oracle RAC 和其他解决方案的比较

虽然概念上类似于 Oracle RAC,但差异显著:

  • 数据传输协议:Polar 使用 RDMA 上的 NVMe-oF,RAC 使用专有协议
  • 分离层面:Polar 在文件系统层面分离,RAC 在 ASM 层面
  • 开源:PolarFS 将作为开源发布,与 ASM 不同

RDMA 实现值得特别一提。早期的尝试(在 PostgresPro 10-11 中)需要对 PostgreSQL 核心进行深度修改。Tantor 通过文件系统驱动程序采取了非侵入式方法,从而实现了:

Google AdInline article slot
  • 消除非对称访问延迟问题
  • 所有计算节点上的统一性能
  • 保留标准的 WAL 处理机制

关键要点

  • 无妥协兼容性:Tantor Polar 支持所有 PostgreSQL 功能,包括复杂 JOIN 和事务
  • RDMA 性能:网络上与本地 SSD 相当的延迟(5-10 μs)
  • 可扩展性:计算和存储独立扩展
  • 开放性:PolarFS 将以开源许可提供
  • 生产就绪:该解决方案已在 XData Gen.3 上使用,配置为 3 个存储 + N 个计算节点

技术实现细节

关键架构组件:

// Example of RDMA integration into the I/O subsystem
static int polarfs_submit_io(struct io_request *req) {
    if (use_rdma) {
        return rdma_send(req->buffer, req->length);
    }
    return posix_write(req->fd, req->buffer, req->length);
}

优化重点在三个领域:

  • 缓冲区管理:计算节点上的元数据缓存
  • WAL 处理:带确认的异步 RDMA 发送
  • 锁管理器:无单点故障的分布式实现

特别关注边缘情况:

  • RDMA 连接断开后的恢复
  • 处理非对称网络延迟
  • 保证写操作的原子性

使用 PolarFS 的基准测试显示:

  • 高负载下吞吐量提升 35-40%
  • 99 百分位延迟降低 2.3 倍
  • 每秒峰值事务数提升 28%

结论

Tantor 的方法展示了在数据库管理系统生态系统之间移植解决方案如何带来重大收益。成功的关键——最小侵入性和对兼容性的关注。Polar 架构为 PostgreSQL 解锁了新的扩展可能性,在以往需要激进应用改动或转向 NoSQL 的场景中。

值得注意的是,实现无需专用硬件——只需 RDMA 和 NVMe-oF 网络支持。这使得它适用于广泛面临现有 PostgreSQL 集群负载增长的组织。

— Editorial Team

Advertisement 728x90

继续阅读