GaussDB技术解读高性能——SMP并行执行

GaussDB Kernel的SMP并行技术是一种利用计算机多核CPU架构来实现多线程并行计算,以充分利用CPU资源来提高查询性能的技术。在复杂查询场景中,单个查询的执行较长,系统并发度低,通过SMP并行执行技术实现算子级的并行,能够有效减少查询执行时间,提升查询性能及资源利用率。

SMP并行技术的整体实现思想是对于能够并行的查询算子,将数据分片,启动若干个工作线程分别计算,最后将结果汇总,返回前端。SMP并行执行增加数据交互算子(Stream),实现多个工作线程之间的数据交互,确保查询的正确性,完成整体的查询。并行技术是提升数据库处理能力的有效手段,关于并行技术GaussDB总体升分成了两个大类:

(1)提升单节点ScaleUp:决定整体系统的理论性能上限,充分发挥单节点CPU、内存资源的对业务输出的贡献程度。

(2)提升分布式ScaleOut:决定整体系统的实际性能上限,分布式实现的好坏决定了横向的线性扩展比。

在这里插入图片描述
SMP对称多处理的实现过程:

(1)SMP计划生成:一阶段计划生成:在路径生成阶段,加入并行路径,最终根据代价,决定所选择的计划两阶段计划生成:第一步生成原有的串行计划,第二步在将串行计划改造成适应并行的计划。

(2)SMP执行过程:为并行执行线程之间进行数据分配、交换和汇总(Scan类:磁盘;stream:网络)。

在这里插入图片描述

SMP对称多处理自适应选择

SMP优化执行对当前执行的资源环境因素相关,因此 不同的硬件环境、不同系统负载的情况下可用的计算资源存在差异,不同时刻特定查询复杂度需要的计算资源也存在不同;自适应SMP目标在于基于当前系统可用资源以及可生成SMP计划的情况,综合判定查询的执行计划。

SMP自适应分为两个阶段,第一阶段确定初始dop,第二阶段对基于初始dop生成的计划进行优化。在第一阶段考虑CPU资源、串行还是并发。在第二阶段考虑计划复杂程度。
(1)资源情况:CPU core:服务器CPU core 数量 / 服务器部署DN数量;串行/并发:可用CPU core * (1 – CPU usage)。

(2)查询复杂度:执行计划被stream算子拆分成多个片段,每个片段由一个线程执行。该计划中,有多少stream可以无阻塞的运行,决定了整个计划的最大并行线程数。采用特征匹配来识别查询复杂度。

在这里插入图片描述

posted @ 2025-01-22 10:40  喜酱喜酱  阅读(1)  评论(0)    收藏  举报