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

本文涉及的产品
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
云原生数据库 PolarDB MySQL 版,通用型 2核8GB 50GB
简介: PolarDB for PostgreSQL 开源必读手册-最佳场景实践与压测

接上篇:https://developer.aliyun.com/article/1223066?spm=a2c6h.13148508.setting.32.44ec4f0eNvAByn

PolarDB中有4类算子需要并行化,其中Seqscan的算子的并行化极具代表性。

 

为了最大限度地利用存储的大IO带宽,在顺序扫描时,按照4MB为单位做逻辑切分,尽量将IO打散到不同的盘上,达到所有盘同时提供读服务的效果。该方案还有一个优势在于每个只读节点只扫描部分表文件,最终能缓存的表大小是所有只读节点的BufferPool总和。

 

image.png

 

上图可见,通过增加只读节点,扫描性能线性提升30倍。

 

image.png

 

打开buffer后,扫描时间从37min降至3.75s,提升了600倍。这也是数据亲和性的优势所在。

 

倾斜是传统MPP固有的问题,主要包含两方面:一方面是存储的倾斜,大对象通过heap内部表关联toast表时,因为无法确切地知道实际存储的数据量有多大,无论怎么切分,数据存储都有可能不均衡;另一方面是执行时的倾斜。不同只读节点上的事务、buffer、网络等会抖动,因此也会存在执行计算倾斜。

 

image.png

 

为了解决倾斜问题,我们支持了动态扫描。将协调节点内部分成DataThread和ControlThread,其中DataThread负责收集汇总元组,ControlThread负责控制每个扫描算子的扫描进度。

 

每个算子控制每个节点上scan算子的扫描进度,每个节点上scan算子再扫描下一个块的数据时会向QC节点进行请求查询,从而获得下一个扫描的目标块,使得扫描快的工作进程能多扫描逻辑的数据切片。

 

此外,尽管是冬天分配,过程中我们也尽量考虑了buffer数据亲和性。另外,每个算子的上下文均存储在各个worker的私有内存中,协调节点不存储表的相关信息。

 

image.png

 

上图可见,出现大对象时,静态扫描会出现数据倾斜,而使用动态扫描并没有因为 RO节点增多导致数据倾斜严重。

 

我们利用数据共享的特点,还可支持云原生下极致弹性的要求将Coordinator全链路上各个模块所需要的外部依赖存在共享存储上,每个节点都可以看到相同的数据。同时worker全链路需要的运行时参数通过控制链路从Coordinator同步,使Coordinator和worker无状态化。任何节点都可以作为协调节点,确定了协调节点之后,控制节点再从协调节点获取相关的控制信息。

 

以上方式带来的好处在于:SQL的任何只读节点都可以称为协调节点,解决了协调节点单点的问题。其次,SQL可以在任何节点上起任意数量的worker,使算力达到SQL级别的弹性扩展,使得业务有更多的调度策略。

 

image.png

 

比如四个只读节点,可以让业务域1的SQL只利用只读节点1和只读节点2,业务域2的SQL利用节点3和节点4,为用户提供更多选择。

 

多个计算节点通过等待回放和globalsnapshot机制完成。等待回放能够保证所有需要的数据版本已经同步完成,globalsnapshot能够保证选取统一的可读版本。

 

主要流程如下:用户SQL发送后,生成计划并确定协调节点,协调节点会广播ReadLSN,每个worker节点等待回放到ReadLSN。结束之后获取各自的snapshot,通过序列化发送给协调节点。协调节点汇总所有worker,选出最小的snapshot并通过广播发给各个节点,再由广播执行计划树,从而可以保证每个worker能看到相同的数据、相同的快照和相同的plan,最终开始执行。

 

image.png

 

上图为使用1TB的TPCH进行的测试。

 

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

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
26天前
|
存储 Cloud Native 关系型数据库
PolarDB开源:云原生数据库的架构革命
本文围绕开源核心价值、社区运营实践和技术演进路线展开。首先解读存算分离架构的三大突破,包括基于RDMA的分布式存储、计算节点扩展及存储池扩容机制,并强调与MySQL的高兼容性。其次分享阿里巴巴开源治理模式,涵盖技术决策、版本发布和贡献者成长体系,同时展示企业应用案例。最后展望技术路线图,如3.0版本的多写多读架构、智能调优引擎等特性,以及开发者生态建设举措,推荐使用PolarDB-Operator实现高效部署。
122 3
|
1月前
|
SQL 关系型数据库 分布式数据库
PolarDB开源数据库入门教程
PolarDB是阿里云推出的云原生数据库,基于PostgreSQL、MySQL和Oracle引擎构建,具备高性能、高扩展性和高可用性。其开源版采用计算与存储分离架构,支持快速弹性扩展和100%兼容PostgreSQL/MySQL。本文介绍了PolarDB的安装方法(Docker部署或源码编译)、基本使用(连接数据库、创建表等)及高级特性(计算节点扩展、存储自动扩容、并行查询等)。同时提供了性能优化建议和监控维护方法,帮助用户在生产环境中高效使用PolarDB。
418 19
|
1月前
|
Cloud Native 关系型数据库 分布式数据库
PolarDB开源:云原生数据库的新篇章
阿里云自研的云原生数据库PolarDB于2023年5月正式开源,采用“存储计算分离”架构,具备高性能、高可用及全面兼容性。其开源版本提供企业级数据库解决方案,支持MySQL、PostgreSQL和Oracle语法,适用于高并发OLTP、核心业务系统等场景。PolarDB通过开放治理与开发者工具构建完整生态,并展望更丰富的插件功能与AI集成,为中国云原生数据库技术发展贡献重要力量。
230 17
|
1月前
|
存储 关系型数据库 分布式数据库
PolarDB开源进阶篇:深度解析与实战优化指南
PolarDB是阿里云开源的云原生数据库,采用计算-存储分离架构,结合高性能共享存储与Parallel Raft多副本一致性协议,实现微秒级延迟和卓越性能。本文深入解析其架构设计,涵盖智能调度层、性能优化技巧(如查询优化器调优和分布式事务提升)、高可用与容灾配置、扩展功能开发指南以及监控运维体系。同时,通过电商平台优化案例展示实际应用效果,并展望未来演进方向,包括AI结合、多模数据库支持及Serverless架构发展。作为云原生数据库代表,PolarDB为开发者提供了强大支持和广阔前景。
125 15
|
2月前
|
人工智能 运维 监控
阿里云携手神州灵云打造云内网络性能监测标杆 斩获中国信通院高质量数字化转型十大案例——金保信“云内网络可观测”方案树立云原生运维新范式
2025年,金保信社保卡有限公司联合阿里云与神州灵云申报的《云内网络性能可观测解决方案》入选高质量数字化转型典型案例。该方案基于阿里云飞天企业版,融合云原生引流技术和流量“染色”专利,解决云内运维难题,实现主动预警和精准观测,将故障排查时间从数小时缩短至15分钟,助力企业降本增效,形成可跨行业复制的数字化转型方法论。
|
3月前
|
运维 Kubernetes Cloud Native
云栖实录 | 智能运维:云原生大规模集群GitOps实践
云栖实录 | 智能运维:云原生大规模集群GitOps实践
125 1
|
4月前
|
关系型数据库 分布式数据库 数据库
喜报|PolarDB开源社区荣获“2024数据库国内活跃开源项目”奖
喜报|PolarDB开源社区荣获“2024数据库国内活跃开源项目”奖
|
4月前
|
存储 关系型数据库 分布式数据库
PolarDB开源数据库进阶课18 通过pg_bulkload适配pfs实现批量导入提速
本文介绍了如何修改 `pg_bulkload` 工具以适配 PolarDB 的 PFS(Polar File System),从而加速批量导入数据。实验环境依赖于 Docker 容器中的 loop 设备模拟共享存储。通过对 `writer_direct.c` 文件的修改,替换了一些标准文件操作接口为 PFS 对应接口,实现了对 PolarDB 15 版本的支持。测试结果显示,使用 `pg_bulkload` 导入 1000 万条数据的速度是 COPY 命令的三倍多。此外,文章还提供了详细的步骤和代码示例,帮助读者理解和实践这一过程。
136 1
|
4月前
|
人工智能 关系型数据库 分布式数据库
阿里云PolarDB重磅发布云原生与Data+AI新特性,打造智能时代数据引擎
阿里云PolarDB重磅发布云原生与Data+AI新特性,打造智能时代数据引擎
208 0
|
关系型数据库 分布式数据库 PolarDB
《阿里云产品手册2022-2023 版》——PolarDB for PostgreSQL
《阿里云产品手册2022-2023 版》——PolarDB for PostgreSQL
462 0

相关产品

  • 云原生数据库 PolarDB
  • 推荐镜像

    更多