博客/技术探讨

分布式里套单机?YMatrix HTAP “神技”搞定 10w+ TPS

2025-06-12 · YMatrix Team
#技术探讨

前言

在上一篇文章《YMatrix 的 HTAP 能力和其他数据库有何不同?》中,我们深入解析了 YMatrix HTAP 的技术路线。今天,我们聚焦分布式架构下 TP 性能瓶颈,聊聊 YMatrix 独特的部署架构是怎么解决这个难题的。

作为分布式数据库, YMatrix 天生具备极强的分析型(AP)能力,然而在交易型(TP)场景中,分布式架构反而容易成为瓶颈。

与用友集团一起服务客户的过程中,在保障分析场景性能表现的同时,怎么让 YMatrix 能够满足 ERP 场景,尤其是财务场景对数据库 TP 能力的要求,YMatrix 研发团队不止从存储引擎、计算引擎、执行流程方面进行了优化,更创造性的实现了独创的“非平衡部署”方案,从架构层面大大提升了 YMatrix 的 TP 性能表现。

01 什么是非平衡部署?

YMatrix 作为分布式数据库,是通过在多个数据节点上均匀分布多个实例,从而达成多个主机、多个实例并行计算,提升查询执行速度的效果的。

一般情况下,我们都会为每个数据节点配置同样个数的实例,来保障数据的存储均匀分布在每个数据节点上,在计算时尽可能保证计算负载均匀分布,从而避免某个特定节点承担大多数负载造成单点瓶颈。

而 YMatrix 6.0 中推出了非平衡部署的新模式。从下图中我们可以看到:

  1. 有 2 个数据节点,分别只部署 1 个主实例和它对应的镜像实例;

  2. 其他数据节点,则部署数目相同的多个实例。

由于每个数据节点上实例的数量不同,所以我们称之为“非平衡部署”。

02 分布式搞 TP 为什么比不过单机?

🏖️ 为什么要搞非平衡部署?为了更好的提升分布式数据库的 TP 性能表现。

在通常情况下,分布式数据库很难提供媲美单机数据库的 TP 性能

TP 型负载的典型特点有:

  1. 以执行时间短的小查询为主,涉及数据量小,但对延迟敏感;

  2. 广泛使用事务(Transcation),甚至是大事务,对一致性敏感;

  3. 经常存在负载峰值,比如财务日结、月结。

而分布式架构的代价本质上是用网络通信(不可靠、高延迟)替代本地内存/磁盘操作(高效、可靠),TP 场景对延迟和一致性高度敏感,因此这种权衡往往导致性能下降。

对于 YMatrix 来说,下图是一个典型的部署方案:

  1. 4 个数据节点,每个都运行 4 个主实例(P),一共 16 个主实例

  2. 一张表的数据,会均匀的分布至 16 个主实例中

  3. 查询时,计算会均匀发生在 16 个主实例上

在这样的部署方式下,相较单机数据库,不可避免的存在更多挑战:

网络通信开销

  • 分布式事务协调:在单机数据库中,事务通过本地锁和内存操作即可完成。而在分布式环境中,事务可能涉及多个节点,需要通过网络通信协调,增加了延迟。

  • 数据分片间的通信:即使简单查询也可能需要跨实例、跨节点访问数据,导致额外的实例间进程通信开销、网络开销。

🚄 一个小查询返回多条数据时,需要从所有节点中拉取数据;查询中当出现 JOIN 时,需要从其他节点拉取数据。

分布式事务的复杂性

  • 两阶段提交(2PC):为保证 ACID,分布式事务需要 2PC 等协议,涉及多轮协调和日志持久化,显著增加延迟。

  • 锁竞争放大:分布式锁需要跨节点同步,可能引发全局等待甚至死锁,降低并发吞吐量。

  • 事务回滚成本:分布式事务失败时,回滚需要跨节点协调,代价更高

🎁 如果事务涉及多个分片的数据(如银行转账的转出和转入账户位于不同节点),必须跨节点处理,性能显著低于单分片事务。

除此之外,分布式架构下为了保障数据的一致性,基础设施、调度过程等等都会引入额外的复杂度和开销。

03 非平衡部署 = 单机 TP + 分布式 AP

在与用友集团一起服务客户的过程中,我们发现对于 ERP 系统,特别是财务相关的领域中,提供与单机数据库等同的 TP 性能表现,是让分布式数据能够用起来的关键。

基于这种理解,我们结合了多种技术,创新地构建了“非平衡部署”方案。

如上图所示,在部署时,可以通过手工配置:

  1. TP 单机部署:在负责 TP 业务的数据节点上,仅部署 1 个实例,并再另一台主机上配置它的镜像实例,保障高可用性;

  2. AP 分布式部署:在其余节点,仍采取传统的分布式部署方案,每台主机运行多个主实例、镜像实例;

  3. 同时在 TP 业务相关的表创建的过程中,指定分布在 TP 区中的主机上。

这种“非平衡部署”模式下:

  1. TP 相关查询的仅会在单一实例上运行,避免了分布式架构中多节点通信、分布式事务协调的开销

  2. 当发生 JOIN 时,TP 相关的表都在同一实例中,无需和其他节点通信,本地单进程内即可执行查询

  3. 独占主机,硬件资源更充沛,有效应对 TP 业务峰值时的负载压力。

⛺️ YMatrix 独有的“非平衡部署”模式,通过 MatrixUI 进行手工配置即可实现,具体参考官方文档:https://ymatrix.cn/doc/6.3/install/asymmetric

04 零售业案例-月新增 3000 万+峰值 10 万 TPS

我们与战略合作伙伴——用友集团,通过先进的“非平衡部署”方案,以 HTAP 能力为亮点,为全国排名前 2 的医药连锁零售上市企业提供了领先的业财一体解决方案。在极具挑战的生产环境中,为客户提供了高效、稳定的数据服务,用一套数据满足客户 TP、AP 的需求,实现了 HTAP 在零售业的完美落地。

在该项目中,YMatrix 在 TP 方面已经支撑了月新增 3000 万交易凭证的业务流程稳定、高效运行,保障了多次月结业务的顺利进行,月结负载峰值 TPS 高达 10w+。同时,CPU、内存等资源始终处于安全水位,这充分证明了 YMatrix 在 TP 场景下的性能表现。

05 总结

单靠内核优化,撑不起企业级 HTAP。YMatrix 通过创新的“非平衡部署”方案,既保留了分布式的扩展性,又实现了单机级 TP 性能,为零售、制造等强业务负载场景打通了一条高效可控的新路径。

想知道你的业务是否适合这套方案?欢迎留言交流或点击下方阅读原文查看相关案例。