分布式 HTAP 数据库 AnalyticDB for PG 架构解析

阿里云AnalyticDB for PostgreSQL(简称 ADB PG),为基于PostgreSQL内核构建的分布式数据库,兼容部分Oracle语法,其可以水平扩展,即支持高吞吐的分布式事务处理,也支持高性能的复杂查询分析,是业内最具竞争里的分布式HTAP集群数据库。本文将介绍ADB PG的关键架构,以及HTAP场景下的性能指标。

ADB PG的架构

ADB PG基于PostgreSQL内核,分为Master接入节点和Segment数据节点。Master 负责SQL的解析h和优化,并生成分布式执行计划,发送给segment节点执行。
分布式 HTAP 数据库 AnalyticDB for PG 架构解析

  • 协调节点Master:分为Main Master和Secondary Master,其接受客户端请求,并进行SQL的解析和优化。同时Main Master构建了GTM全局事务管理模块,维护全局统一的Global XID和Snapshot,从而实现严格的分布式隔离级别 SI和RC。Master节点采用Cascade架构优化器,将RBO和CBO统一结合,同时可以自动化的解关联子查询,保证大部分查询的最优执行计划生成。
  • 计算节点 Segment:Segment支持多副本数据存储,支持表按行或者按列存储,当面向纯分析场景时,行存储提供高性能的聚合分析,当面向TP等交易场景时,列存储及多种二级索引,包括BTree等,提供高性能的事务吞吐处理。同时ADB PG在既有PostgreSQL的计算引擎基础上,开发了全自研的高性能向量化计算引擎Odyssey,TPC-H分析性能比原生PG引擎快3倍

OLTP 分布式事务场景与TiDB的比较分析

ADB PG在保证分布式强一致,提供标准RC隔离级别下,通过Segmen 和 Master 的水平扩展,可以提供很好的分布式事务吞吐。ADB PG支持标准的TPC-C benchmark支持。如下分析对比ADBPG和TiDB的TPC-C Benchmark性能,两者的测试指标可以参见官方文档:

  • ADBPG 6.0 的TPC-C 的评测:在总计 64 Core,512GB 内存上101231.3 tpmC,细节可以参见 https://help.aliyun.com/document_detail/155810.html
  • TiDB 3.0 的TPC-C 的评测:在总计 120 Core,384GB 内存上44068 tpmC ,细节可以参见 https://pingcap.com/docs-cn/stable/benchmark/tpcc/

上述配置上,因为均为全内存计算,内存差异对性能影响可以忽略,同时在TiDB具备更多CPU资源下,ADB PG为TiDB的2倍以上。

ADB PG TiDB
101231.3 tpmC 44068 tpmC

OLAP 复杂分析场景与Greenplum的比较分析

ADB PG自研了向量化计算引擎,同时构筑具备优势的列存储,在2019年11月份的信通院分析型数据库大规模性能测试中,构筑了信通院该测试最大集群规模 640个MPP节点,验证通过支持 TPC-DS 100TB 分析性能。

ADB PG自研了 向量化计算引擎Odyssey,较开源MPP数据库Greenplum原生的PG计算引擎,性能快接近两倍。如下是同等规格下的1TB TPC-H性能比较。

分布式 HTAP 数据库 AnalyticDB for PG 架构解析

综述

ADB PG采用水平架构,具备完备的数据库SQL功能支持,同时基于GTM分布式事务管理框架,实现了分布式下的强一致性,支持SI/RC隔离级别。OLTP Benchmark TPC-C 为TiDB两倍,OLAP benchmark 为开源MPP数据库 Greenplum两倍,在一套架构上,实现了高性能的分布式HTAP能力。