PieCloudDB Database 并行计算加速功能:线性提升单个查询效率
云原生虚拟数仓 PieCloudDB Database,采用存算分离架构,打造了全新的 eMPP(elastic MPP)架构,具备高弹性、高安全、高在线,赋能企业的数字化转型。PieCloudDB 打造了向量化执行引擎、全新的存储引擎 JANM、元数据管理系统 MUNDO 等组件,通过聚集下推、数据裁剪等功能来进一步提升查询效率。本文将介绍 PieCloudDB 如何打造并行计算加速技术来提升查询性能。
在部署集群的过程中,PieCloudDB 在每个物理节点会配置一定数量的执行器(Executor)。这种配置策略确保了在面对高并发需求时,集群依然能够保持高度的可用性。然而,单个查询在执行过程中可能会受到执行器数量的限制,会对 CPU 的充分利用、磁盘 I/O 的性能以及网络带宽的利用效率造成一定影响。
为了解决这一性能瓶颈,进一步提高单个查询下的 CPU、磁盘和网络利用率,PieCloudDB 打造并启用了基于执行器的并行计算加速功能。这项技术不仅与 PostgreSQL 的并行工作器(parallel worker)机制相得益彰,还扩展了其功能,支持并行扫描(parallel scan)、并行连接(parallel join)和并行聚合(parallel agg)。由于并行连接和并行聚合的技术细节已经在众多文献中被广泛讨论,本文将不再赘述这些内容。本文将围绕如何通过 PieCloudDB 元数据管理系统 MUNDO 的缓存预取技术,优化存储引擎 JANM 的统一存储架构,显著提升并行扫描的性能,来提高磁盘 I/O 和网络带宽的利用率。
1 并行计算加速整体架构
作为一款分布式数据库,PieCloudDB 的每个计算集群由一个协调器(Coordinator)和多个执行器(Executor)构成。其整体架构如下图所示:
PieCloudDB 计算集群架构
对于一个普通查询,每个 Executor 节点会启动一个(不启动并行计算)或者多个(启动并行计算)扫描进程来对需要的文件进行扫描。同时,主节点中的元数据管理系统 MUNDO 会下发需要扫描的文件信息到每个物理节点上的 MUNDO 服务进程中。然后扫描进程会通过 MUNDO 服务进程获取该进程需要扫描的文件具体信息,之后,扫描进程通过存储引擎简墨(JANM)来对需要的数据文件进行扫描和处理。
2 并行计算加速原理
下面将为大家详细介绍 PieCloudDB 并行计算加速原理。PieCloudDB 并行计算加速过程可以根据执行过程被分为三个步骤:
2.1 文件列表的分批处理与推送
由于 PieCloudDB 采取元数据-计算-存储分离的架构,用户数据通过透明加密,被统一存储在外部对象存储中(S3、HDFS 等)。当一个查询被发起时,元数据管理系统 MUNDO 将扫描该查询计划,从 存储引擎 JANM 智能地识别出所需的文件列表,分析列表的文件特征,对文件列表进行高效分批处理,并将第一批文件推送到物理节点上的 MUNDO 服务进程。
2.2 MUNDO 的预取与文件分配
MUNDO 服务进程再接受到第一批文件列表后,会立即进入预取模式。预取数量根据物理节点上每个扫描进程的预取需求以及缓存大小和数据文件大小计算得出。当获取到预取列表,MUNDO 服务便向存储引擎 JANM 发起下载请求,同时,parallel scan 扫描进程也向 MUNDO 服务发起文件获取请求。由于这是扫描进程的首次启动,MUNDO 服务会根据预取列表进行文件分配。随后,扫描进程读取文件,获取用户数据,进入查询阶段。
2.3 查询阶段
在当前文件扫描完成后,扫描进程会向 MUNDO 服务发出获取下一个文件的请求。MUNDO 服务在收到请求后,会根据该进程之前扫描过的文件特征,向其发送亲和性更高的文件进行扫描。因为 PieCloudDB 是基于火山模型的 PULL 模型,数据需要在不同的算子中迁移,这种策略的目的是减少数据在不同算子(非本地算子,即其他计算节点中的算子进程)间的迁移。
当并行度提高,例如在并行连接(parallel join)和并行聚合(parallel agg)操作中,数据迁移率会相应增加,这可能会限制并行度,甚至导致性能下降。因此,通过向扫描进程分配亲和性更高的数据文件,PieCloudDB 能够有效减少数据迁移,优化性能。
同样,在预取过程中,MUNDO 服务进程在通过 JANM 统一存储拉取远端数据文件时,也会考虑一并将文件的亲和性特征发送给 JANM,以进一步优化数据访问。
对于并行计算,PieCloudDB 利用 GUC 参数 pdb_parallel_factor 来控制并发度。目前,由于受到达奇优化器的技术限制,这个并发度必须以执行器的数量为倍数进行配置。未来,PieCloudDB 将支持不依赖达奇优化器的更灵活通用的并发度配置方式,以进一步提升系统的性能和灵活性。
3 并行计算加速技术——实现线性性能提升
启用并发度控制后,PieCloudDB 在单个查询性能方面取得了显著的飞跃。在 32 倍并发度的范围内,PieCloudDB 实现了接近线性的性能增长。如下图所示,PieCloudDB 在启用 6 倍并发度时,在 TPC-H 基准测试中所取得的性能提升效果,充分证明了 PieCloudDB 在高并发环境下的强大处理能力。
PieCloudDB 实现性能线性提升
未来,我们将在 PieCloudDB 并行计算功能上进行继续深度优化,并引入更多现代并行技术,确保 PieCloudDB 在各种复杂场景下都能展现出卓越的性能,无论是在数据密集型的查询操作,还是在需要高并发处理的实时应用中,为用户提供更加可靠、高效的数据计算体验。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
议程出炉!GOTC 2024 深度解码云原生与微服务架构未来趋势
2024 年 8 月 15 日至 16 日,全球开源技术峰会 GOTC 2024 将于上海张江科学会堂盛大开启。 GOTC 2024 与上海浦东软件园联合举办,结合了 “GOTC(全球开源技术峰会)” 与 “GOGC(全球开源极客嘉年华)” 两大活动品牌。 大会由一个主论坛领航,两大高峰论坛以及六大专题论坛并行,全面深入探讨 AI、数据库、云原生等前沿技术领域,届时将集结全球范围内对开源技术充满热情的开发者、社区成员、创业者、企业领袖、媒体人,以及各开源项目应用场景的产业精英、跨界才俊与年轻力量。 通过主题演讲、圆桌讨论、创新集市、人才集市、黑客松、技术展示和互动工作坊等形式,与会者将有机会交流实践经验、探索前沿技术,一起激发创新活力、展示开源魅力、促进跨领域合作。 其中,云原生与微服务架构论坛由 Kong Senior Software Engineer、Kubernetes ingress-nginx maintainer 张晋涛担任出品人,将于 8 月 16 日上午举行。论坛专注于云原生技术与微服务架构深度融合,我们精心策划了一系列技术深度分享,涵盖从容器化、服务网格到持续集成与...
- 下一篇
调查了全球 4000 名开发者后,我们对 Django 的认知又多了这些…… | Django 开发者调查
Django 开发现状如何?PyCharm 与 Django Foundation 合作,调查采访了全球 4,000 多名 Django 开发者,并根据回复分析了框架的使用趋势。 在这篇博文中,我们将与您分享以下主要发现: 每三名 Django 开发者中有一名也使用 Flask 或 FastAPI。 大多数开发者使用 Django 进行全栈和 API 开发。 61% 的 Django 开发者使用异步技术。 还有更多洞察! 详细了解这些发现,探索 Django 开发中的其他趋势,并从图解信息图中受益。 后端: 每三名 Django 开发者中 有一名也使用 Flask 或 FastAPI Django 仍然是 74% 开发者的首选框架,尽管这一数字与去年的 83% 相比略有下降。FastAPI 人气不减,有 25% 的受访者表示正在使用。与此同时,Flask 的使用率略有下降(2022 年为 29%,2023 年为 26%)。 33% 主要使用 Django 的 Web 开发者也使用 Flask 或 FastAPI,表现出多样化的后端技能。 鉴于大多数全职开发者 (49%) 表示同时在多个...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS关闭SELinux安全模块
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS8安装Docker,最新的服务器搭配容器使用
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Windows10,CentOS7,CentOS8安装Nodejs环境
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS7安装Docker,走上虚拟化容器引擎之路
- SpringBoot2整合Redis,开启缓存,提高访问速度
- MySQL8.0.19开启GTID主从同步CentOS8