别让你的CPU打盹儿:Apache Doris并行执行原理大揭秘!

别让你的CPU打盹儿:Apache Doris并行执行原理大揭秘!

是否遇到过忙碌餐厅里的场景?一群服务小哥哥和小姐姐来回奔波,却总有顾客等得不耐烦。其实数据库查询也是这样,如果不好好安排"工作流程",查询请求也会跟餐厅里的客人一样干着急。
Apache Doris的并行执行好比是餐厅里的总管家,它把大任务(Plan)分成几个区域(Fragment),每个区域都有专门的服务小组(Pipeline),每个小组又分配了具体的服务同学(Task),服务的同学再进行具体的服务行为(Operator)。
通过这种科学的分工方式,数据处理从"排队等待"变成了"多窗口并行"。这就是Doris中的Pipeline执行模型,一个让数据处理不再"望队兴叹"的方案!

在这里插入图片描述

背景介绍

Doris的并行执行模型是一种Pipeline 执行模型,主要参考了Hyper论文中Pipeline的实现方式:

https://db.in.tum.de/~leis/papers/morsels.pdf

Pipeline 执行模型能够充分释放多核 CPU 的计算能力,并对 Doris 的查询线程的数目进行限制,解决 Doris 的执行线程膨胀的问题。

它的具体设计、实现和效果可以参阅 [DSIP-027](DSIP-027: Support Pipeline Exec Engine - DORIS - Apache Software Foundation) 以及 [DSIP-035](DSIP-035: PipelineX Execution Engine - DORIS - Apache Software Foundation)。

Doris 3.0 之后,Pipeline 执行模型彻底替换了原有的火山模型,基于Pipeline 执行模型,Doris 实现了 Query、DDL、DML 语句的并行处理。

物理计划

为了更好的理解Pipeline 执行模型,首先需要介绍一下物理查询计划中两个重要的概念:PlanFragment和PlanNode。

我们使用下面这条SQL 作为例子:

SELECT k1, SUM(v1) FROM A,B 
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值