DAG vs. MPP

本文探讨了DAG和MPP两种架构在Native Design、Task Schedule、OLAP Speed、Shared Storage以及Core Aspects等方面的区别。MPP以其优秀的Compiler和Optimizer、对称的Segment设计展现了在OLAP速度上的优势,而DAG则以共享存储和灵活的Task调度展现出易用性和灵活性。现代系统往往采用两者的混合实现,以实现更好的性能和功能。
摘要由CSDN通过智能技术生成

DAG vs. MPP

Native Design

MPP每个Segment高度对称(symmetric),狭义MPP storage各个Segment自己管理,自己备份,涉及某数据相关的query必定会落到某个Segment上,有concurrency和straggler的问题存在。

MPP天然有很优秀的Compiler和Optimizer,包括local runtime环境是数据库,解析、优化、codegen、执行一气呵成。Segment内有良好的二级资源管理和Task调度,足够细粒度且对query敏感(query隔离、内存使用监控等)。

DAG天然share storage,master能感知全局meta,所以才能单点schedule好task sets,并协调Executor之间的上下游数据shuffle、任务起停等过程。DAG每个task从设计上有简单、幂等等性质,可做task speculation的工作,甚至动态替换某个Node、更新其并发度。

DAG容易对不同存储介质的数据做IO,目前场景的是在输入和输出节点,理论上各个计算节点可挂载不同存储执行引擎,只要meta共享。

Task Schedule

MPP竖切,直通通完成Task的构造,每个Segment收到的是较为完整的sub-query。

DAG横切,节点合并(包括Spark的窄依赖和Stage)是优化手段,理论上不同Node的tasks要分散到不同计算进程上。最优的条件下,如Spark 2.0 whole-stage-codegen,是理论上把SQL优化到MPP那样的极致。

OLAP Speed

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值