PolarDB for PostgreSQL 开源必读手册-云原生HTAP(上)

本文涉及的产品
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
云原生数据库 PolarDB MySQL 版,通用型 2核4GB 50GB
简介: PolarDB for PostgreSQL 开源必读手册-

 

image.png

 

PolarDB-PG是云原生数据库,具有存储计算分离的架构。可以根据用户需要弹性扩充存储节点,也可以根据用户的计算需求弹性扩充用户的计算节点。但是如果使用原生的PolarDB-PG处理HTAP场景,在处理AP场景时会遇到两个挑战。

 

第一,单机的PG只支持单机的串行与单机的并行,不支持多机查询和跨机查询,无法发挥多个计算节点的特性,CPU和memory无法横向的scale out,只能单机scale up,即必须增加CPU和memory的实例规格。

 

第二,原生的PG直接套用到PolarDB上,无法充分发挥共享存储池的大吞吐能力,因为只能利用单机计算节点上的RO能力。

 

而根据TP和AP在存储和计算上是否共享与分离的维度,可以分为三种:

 

第一,TP和AP在存储计算上都分离,即分为TP与AP两套独立的系统。TP的数据需要导入到AP系统中,存在延迟、时效性不高的问题。同时两份存储也增加了冗余、存储成本以及运维难度。

 

第二,TP和AP在存储和计算上都共享。该模式对TP和AP查询时或多或少都会造成一些影响。同时,受限于TP查询,AP比重增大时,无法弹性scale out,同样也只能在单机上调整自己的CPU与memory。

 

第三,TP和AP在存储上共享,在计算上分离,即PolarDB云原生HTAP的方案。

 

image.png

 

PolarDB云原生HTAP的整体架构如上图所示。底层为共享存储池,上层为多个计算节点,每个计算节点内包含了一个读写节点和多个RO节点。

 

由于TP和AP共享一套存储,减少了存储成本,可以提高查询的时效性,能提供秒毫秒级的数据新鲜度。

 

其次,TP查询受限于RO节点与RW节点,而AP查询仅受限于部分RO节点,因此可以实现TP与AP的物理隔离,并杜绝了CPU与memory的相互影响。

 

另外,该架构具备Serverless的弹性扩展能力,可以在任何RO级联上发起分布式MPP查询,可以弹性调整MPP执行节点的范围,可以弹性调整单机MPP的单机并行度。

 

最后,该架构消除了数据的存储倾斜和计算倾斜,在执行过程中也可充分考虑到PG Buffer Pool的亲和性。

 

由于PolarDB底层存储在不同节点上是共享的,因此不能像传统MPP一样扫表。我们在原先的单机执行引擎上支持了MPP分布式执行引擎(跨机执行引擎)。同时对Shared-Storage做了优化,基于Shared-Storage的MPP是业界首创。其基本原理为借助Shuffle算子屏蔽数据的分布,借助ParallelScan算子屏蔽共享存储。

 

image.png

 

上图是典型的火山模型,扫描A表,再扫描B表进行HashJoin,最后做聚合输出。

 

而PolarDB的MPP场景下,对A表和B表进行了虚拟分区。两个只读节点上默配置了一个worker。左侧只读节点上的worker会扫描A表的Virtual Partition-1,右侧节点上的worker会扫描A表的Virtual Partition-2。B表同理。

 

通过对Virtual Partition-1和Virtual Partition-2虚拟表的共同扫描,屏蔽了共享存储。通过Shuffle算子的分发之后,分发到上层进行HashJoin的时,已经屏蔽了数据的分布。

 

而上述执行计划必然需要有优化器的支持。我们基于社区的ORCA优化器扩展了能感知共享存储特性的Transformation Rules。使得能够探索共享存储下特有的Plan空间,比如一张表在PolarDB中既可以全量扫描,也可以分区域扫描,这是与传统MPP的本质区别。

 

上图中的A表按照分片扫描,但是如果B是小表,则可以做全表扫描。每个子节点都会扫描B的全量数据,构建一张哈希表。扫描B表的数据不需要下发到各个节点上。

 

image.png

 

上图灰色部分是PolarDB内核PORCA优化器的适配部分。下半部分是ORCA内核,灰色模块是我们在ORCA内核中对共享存储特性所做的扩展。

 


接下篇:https://developer.aliyun.com/article/1223065?groupCode=polardbforpg

 

 

 


 

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
11天前
|
边缘计算 运维 Kubernetes
云原生时代的运维转型之路
【8月更文挑战第29天】 在数字化转型的浪潮中,企业IT部门正面临前所未有的挑战。本文将探讨如何通过拥抱云原生技术,实现运维工作的现代化,提升系统稳定性和效率,同时降低运营成本。我们将分享实际案例,揭示成功转型的关键因素,并展望未来运维的发展趋势。
|
10天前
|
运维 监控 Cloud Native
自动化运维的魔法书云原生之旅:从容器化到微服务架构的演变
【8月更文挑战第29天】本文将带你领略自动化运维的魅力,从脚本编写到工具应用,我们将一起探索如何通过技术提升效率和稳定性。你将学会如何让服务器自主完成更新、监控和故障修复,仿佛拥有了一本能够自动翻页的魔法书。
|
5天前
|
关系型数据库 分布式数据库 数据库
开源云原生数据库PolarDB PostgreSQL 15兼容版本正式发布
PolarDB进行了深度的内核优化,从而实现以更低的成本提供商业数据库的性能。
|
3天前
|
运维 Kubernetes Cloud Native
云原生时代的运维转型之路
在云原生技术日益成熟的今天,传统的运维模式正面临着前所未有的挑战与机遇。本文旨在探讨如何在云原生大潮中实现运维的平滑转型,通过分析当前运维面临的困境、介绍云原生的基本概念及其对运维的影响,以及提供转型实践的策略和案例,为运维人员指明方向,帮助他们拥抱变化,乘风破浪。
|
15天前
|
Cloud Native 关系型数据库 分布式数据库
云原生数据库2.0问题之PolarDB利用云计算技术红利如何解决
云原生数据库2.0问题之PolarDB利用云计算技术红利如何解决
|
18天前
|
Cloud Native 关系型数据库 分布式数据库
云原生关系型数据库PolarDB问题之PolarDB相比传统商用数据库的优势如何解决
云原生关系型数据库PolarDB问题之PolarDB相比传统商用数据库的优势如何解决
21 1
|
8天前
|
运维 Kubernetes 监控
自动化运维:使用Python脚本实现系统监控云原生技术实践:Kubernetes在现代应用部署中的角色
【8月更文挑战第31天】在现代IT运维管理中,自动化已成为提高效率和准确性的关键。本文将通过一个Python脚本示例,展示如何实现对服务器的自动监控,包括CPU使用率、内存占用以及磁盘空间的实时监测。这不仅帮助运维人员快速定位问题,也减轻了日常监控工作的负担。文章以通俗易懂的语言,逐步引导读者理解并实践自动化监控的设置过程。 【8月更文挑战第31天】本文旨在探索云原生技术的核心—Kubernetes,如何革新现代应用的开发与部署。通过浅显易懂的语言和实例,我们将一窥Kubernetes的强大功能及其对DevOps文化的影响。你将学会如何利用Kubernetes进行容器编排,以及它如何帮助你的
|
10天前
|
运维 Cloud Native Devops
云原生时代下的运维新思维
本文将探索在云计算和容器化技术日益成熟的今天,运维(Operations)领域的变革之路。我们将从传统运维的痛点出发,逐步引入云原生的概念,并详细讨论DevOps、持续集成/持续部署(CI/CD)、微服务架构等现代运维实践如何重塑IT运维工作。最后,通过案例分析,展示这些理念和技术在实际业务中如何落地,以及它们对运维团队技能要求的影响。
|
14天前
|
运维 Cloud Native 容灾
核心系统转型问题之云原生分布式核心运维成本如何降低
核心系统转型问题之云原生分布式核心运维成本如何降低
|
13天前
|
关系型数据库 MySQL 分布式数据库
PolarDB 与传统数据库的性能对比分析
【8月更文第27天】随着云计算技术的发展,越来越多的企业开始将数据管理和存储迁移到云端。阿里云的 PolarDB 作为一款兼容 MySQL 和 PostgreSQL 的关系型数据库服务,提供了高性能、高可用和弹性伸缩的能力。本文将从不同角度对比 PolarDB 与本地部署的传统数据库(如 MySQL、PostgreSQL)在性能上的差异。
48 1

相关产品

  • 云原生数据库 PolarDB