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

本文涉及的产品
云数据库 RDS PostgreSQL,高可用版 2核4GB 50GB
阿里云百炼推荐规格 ADB PostgreSQL,4核16GB 100GB 1个月
RDS PostgreSQL Serverless,0.5-4RCU 50GB 3个月
推荐场景:
对影评进行热评分析
简介: 阿里云ADB PG,为基于PostgreSQL内核构建的分布式数据库,兼容部分Oracle语法,其可以水平扩展,即支持高吞吐的分布式事务处理,也支持高性能的复杂查询分析,是业内最具竞争里的分布式HTAP数据库。

阿里云AnalyticDB for PostgreSQL(简称 ADB PG),为基于PostgreSQL内核构建的分布式数据库,支持ANSI SQL , 兼容部分Oracle语法,支持存储过程、触发器、用户自定义函数UDF等丰富语法功能,同时其为水平扩展架构,即支持高吞吐的分布式事务处理,也支持高性能的复杂查询分析,是阿里云提供的高性能分布式HTAP数据库。ADB PG分别通过了信通院组织的分布式分析型数据库和分布式事务数据库功能和性能认证,是国内唯一一家同时通过这两项认证的数据库产品。同时 ADB PG通过了严格的世界标准TPC组织的TPC-H 30TB 认证,性能第一,为国内第一个通过国际 TPC-H 认证的产品。

本文将介绍ADB PG的关键架构,以及同开源分布式数据库TiDB比较了OLTP指标TPC-C,及同开源分析型数据库Greenplum比较了OLAP指标TPC-H。OLTP Benchmark TPC-C 为TiDB两倍,OLAP benchmark 为开源MPP数据库 Greenplum两倍,在一套架构上,实现了高性能的分布式HTAP能力。

ADB PG 技术架构

ADB PG基于PostgreSQL内核,分为Master协调节点和Segment数据节点。Master 负责SQL的解析和优化,并生成分布式执行计划,发送给segment节点并行执行。

arch01

  • 协调节点Master:分为一个Main Master和多个Secondary Master,其接受客户端请求,并进行SQL的解析和优化。同时Main Master构建了GTM全局事务管理模块,维护全局统一的事务ID (Global XID)和当前活跃事务列表(Snapshot),从而实现严格的SERIALIZABLE、READ COMMITTED 隔离级别 ,保证各个节点间事务的强一致性。Master节点含有采用Cascade架构SQL优化器,将RBO和CBO统一结合,同时可以自动的优化改写关联子查询等复杂SQL语句,实现计算按最优的分布式计划执行,规避复杂SQL的手工调优改写。
  • 计算节点 Segment:Segment节点可水平扩展,节点支持多副本存储,表支持按行或者按列进行数据存储。当面向交易场景时,行存储提供高吞吐的事务处理能力,面向分析场景时,列存储及多种索引机制等,提供高性能的聚合分析,以及数据高压缩比。同时ADB PG在既有PostgreSQL的计算引擎基础上,开发了全新的高性能向量化计算引擎Odyssey,实现TPC-H分析性能比原生PG引擎快两倍

分布式事务

PostgreSQL 单机内核,其数据存储采用多版本机制MVCC,支持高并发的读写操作,以及通过事务ID(XID)和维护活跃事务列表(snapshot),实现SI/RR/RC隔离级别,具备良好的事务吞吐能力。在分布式场景下,ADB PG引入了全局事务管理器 (GTM),其在 Main Master节点维护全局统一的事务ID (Global XID)和全局活跃事务列表(Global Snapshot),从而实现分布式下的节点间事务强一致性。
PostgreSQL内核中,在事务启动时,会得到一个全局事务ID。对于SI隔离级别,启动同时会得到当时的活跃事务列表(snapshot )来实现事务过程中的数据可见性判断,并会对过程中访问的对象加锁(悲观锁模式);对于RC隔离级别,事务过程中的每次SQL查询会先取得当时的活跃事务列表,但不会对访问对象加锁,来实现事务过程中的可见性判断,并具备更优的并发支持效果。ADB PG支持SI和RC隔离级别,在全局级别实现了上述的可见性控制,从而实现节点间的事务强一致性。

dtxn

ADBPG在分布式场景下,采用两阶段提交 2PC,但针对单分区事务,会自动优化为一阶段提交 1PC,同时在 Master 节点实现 plan cache等机制,实现高吞吐的事务处理能力。

MPP全并行分析

对于分布式数据库,具备高性能分析的基础是支持全并行计算架构(Massive Parallel Processing),核心是可以依据数据在节点间的分布特征,提供节点间运行时数据 Shuffle 能力(motion 算子),从而实现关联JOIN操作在节点间并行执行。ADB PG支持数据在节点间按 HASH,RANDOM,REPLICATED三种模式分布。对于大表建议为HASH分布,数据可以均匀打散在节点间,对于维度表等小表,可以采用REPLICATED复制分布,每个节点都保存一份全量数据,从而规避关联时的数据重分布操作。

数据在节点间基于分布列的 HASH 值分布示意


hash

针对OLAP中的复杂关联,ADB PG实现三种分布式关联计算,local join、redistributed join、broadcast join,实现复杂关联分析在节点间的全并行执行。

节点本地关联(Local Join)的实现

localjoin

重分布关联(Redistributed Join)的实现

rjoin

广播关联(Broadcast Join)的实现

bjoin

向量化计算引擎

PostgreSQL采用传统数据库执行引擎实现方式,ADB PG 构筑了新一代的计算引擎Odyssey,其通过算法设计,消除了传统引擎火山模型、碎片化内存分配、冗余逻辑等带来的性能问题,将CPU资源用于核心计算;同时采用LLVM进行自动代码生成(CodeGen),提升表达式计算性能、精简计算逻辑,实现逻辑计算完美“瘦身”;同时充分利用新硬件特性,采用了CPU的SIMD等新技术,最大提升计算性能。Odyssey计算引擎与PostgreSQL原生引擎并置,对于偏向复杂分析计算的SQL执行任务,将采用Odyssey引擎,提升计算性能,对于简单事务处理,依然基于PG原生引擎。

odyssey

多副本高可用

ADB PG的每个Master和Segment节点都保存一份全量元信息,节点间元信息保持强同步。Segment数据节点支持多副本存储,保证数据可靠性。在一主一备配置下,主备之间基于PostgreSQL的 xlog replication,主备间保持强同步。在一主多备模式下,支持异步的quorum commit复制,保持高性能和数据可靠性。

ha


DDL 元信息处理:每个节点(Master/Segment)为一个独立PG实例,完整的Catalog元信息。Master 发DDL stmt 语句 和 2PC提交 给各个Secondary Master/Segments。
DML 数据处理: Master 向 Segment 下发执行计划 Plan。当Segment采用一主一备时,主备采用xlog的强同步;采用一主两备的三副本,采用异步 quorum commit。

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

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

项目 ADB PG TiDB
Cores/Mem 64 Core/512GB Mem 120 Core/384GB Mem
TPC-C Conf 1000 warehouse 1000 warehouse
Performance 101231 tpmC 44068 tpmC

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

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

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

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

TPC-H ADB PG Greenplum
Q1 171.05 399.38
Q2 12.24 25.32
Q3 38.26 56.91
Q4 20.2 54.26
Q5 118.72 145.64
Q6 21.19 30.61
Q7 63.79 71.43
Q8 37.84 73.58
Q9 169.28 174.09
Q10 36.96 51.56
Q11 4.56 11.63
Q12 27.74 44.25
Q13 40 59.13
Q14 15.18 27.9
Q15 26.27 48.62
Q16 13.02 19.15
Q17 178.73 294.83
Q18 98.39 293.15
Q19 48.15 41.84
Q20 32.22 61.87
Q21 58.85 151.44
Q22 25.6 43.26
Total 1258.24 2179.85

综述

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

目录
相关文章
|
8天前
|
存储 关系型数据库 MySQL
MySQL数据库进阶第六篇(InnoDB引擎架构,事务原理,MVCC)
MySQL数据库进阶第六篇(InnoDB引擎架构,事务原理,MVCC)
|
1天前
|
消息中间件 传感器 Cloud Native
事件驱动作为分布式异步服务架构
【6月更文挑战第25天】本文介绍事件驱动架构(EDA)是异步分布式设计的关键模式,适用于高扩展性需求。EDA提升服务韧性,支持CQRS、数据通知、开放式接口和事件流处理。然而,其脆弱性包括组件控制、数据交换、逻辑关系复杂性、潜在死循环和高并发挑战。EDA在云原生环境,如Serverless,中尤其适用。
20 2
事件驱动作为分布式异步服务架构
|
4天前
|
前端开发 JavaScript 测试技术
安卓应用开发中的架构模式解析
【6月更文挑战第21天】在软件开发领域,架构模式是设计优雅、高效、可维护应用程序的基石。本文深入探讨了安卓应用开发中常见的架构模式,包括MVC、MVP、MVVM和Clean Architecture,旨在为开发者提供一个清晰的指导,帮助他们选择最适合自己项目的架构风格。通过对比分析这些架构模式的特点、优势以及适用场景,文章揭示了如何根据项目需求和团队能力来采用恰当的架构模式,以实现代码的可维护性、可扩展性和可测试性。
25 7
|
3天前
|
传感器 边缘计算 监控
边缘云作为一种分布式云计算架构,正在为多个行业和应用场景带来革命性的变化
边缘云应用于智能城市、工业物联网、零售、农业、AI、5G优化、制造、物流、医疗、交通和家居等领域,实现低延迟的数据处理、实时分析与优化。例如,智能交通利用边缘计算优化信号灯,减少拥堵;工业场景中,设备监控与预测性维护提升效率;在医疗中,实时监测患者数据支持远程诊断。此外,边缘云还助力零售业的个性化推荐、农业的精准作业和云游戏的高性能体验。
|
2天前
|
SQL 关系型数据库 MySQL
MySQL高可用架构设计:从主从复制到分布式集群
MySQL高可用性涉及主从复制、半同步复制和Group/InnoDB Cluster。主从复制通过二进制日志同步数据,保证故障时可切换。半同步复制确保事务在至少一个从服务器确认后才提交。Group Replication是多主复制,支持自动故障切换。InnoDB Cluster是8.0的集成解决方案,简化集群管理。使用这些技术能提升数据库的稳定性和可靠性。
90 2
|
6天前
|
人工智能 NoSQL 关系型数据库
主从模式(Master-Slave Architecture)在传统的计算机科学中指的是一种分布式系统架构
主从模式(Master-Slave Architecture)在传统的计算机科学中指的是一种分布式系统架构
23 5
|
6天前
|
弹性计算 负载均衡 API
微服务架构下的API网关模式解析
在现代软件工程中,微服务架构因其灵活性和可维护性而受到青睐。本文将探讨API网关模式在微服务架构中的关键角色,分析其设计原则、实现方式及面临的挑战,并结合实际案例阐述如何有效整合API网关以提升系统整体性能和安全性。
|
5天前
|
分布式计算 资源调度 Hadoop
分布式系统详解--架构(Hadoop-克隆服务器)
分布式系统详解--架构(Hadoop-克隆服务器)
15 1
|
5天前
|
存储 弹性计算 安全
构建高效企业应用架构:阿里云产品组合实践深度解析
该方案展现了阿里云产品组合的强大能力和灵活性,不仅满足了当前业务需求,也为未来的扩展打下了坚实的基础。希望本文的分享能为读者在设计自己的IT解决方案时提供一定的参考和启发。
68 1
|
1天前
|
NoSQL Java 数据库
优化基于阿里云的微服务架构下的数据库访问性能
在应对大型电商项目中数据库访问性能瓶颈问题时,团队通过阿里云工具分析发现高QPS、慢查询和不合理数据交互是关键。优化措施包括:1) 索引优化,针对慢查询添加或调整索引;2) 开启读写分离,使用RDS读写分离功能和DRDS进行水平拆分;3) 引入Redis缓存热点数据,减少直接数据库访问;4) 服务化数据访问,降低跨服务数据库调用;5) 使用Sentinel进行限流和熔断,保护数据库资源。这些改进显著提升了系统响应速度和用户体验。

相关产品

  • 云原生数据仓库 AnalyticDB PostgreSQL版