阿里云 AnalyticDB for PostgreSQL(简称 ADB PG), 为基于 PostgreSQL 内核构建的分布式数据库, 兼容部分 Oracle 语法, 其可以水平扩展, 即支持高吞吐的分布式事务处理, 也支持高性能的复杂查询分析, 是业内最具竞争里的分布式 HTAP 集群数据库. 本文将介绍 ADB PG 的关键架构, 以及 HTAP 场景下的性能指标.
ADB PG 的架构
ADB PG 基于 PostgreSQL 内核, 分为 Master 接入节点和 Segment 数据节点. Master 负责 SQL 的解析 h 和优化, 并生成分布式执行计划, 发送给 segment 节点执行.
协调节点 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 性能比较.
综述
ADB PG 采用水平架构, 具备完备的数据库 SQL 功能支持, 同时基于 GTM 分布式事务管理框架, 实现了分布式下的强一致性, 支持 SI/RC 隔离级别. OLTP Benchmark TPC-C 为 TiDB 两倍, OLAP benchmark 为开源 MPP 数据库 Greenplum 两倍, 在一套架构上, 实现了高性能的分布式 HTAP 能力.
来源: https://yq.aliyun.com/articles/749801