当优化器说谎时:调试 Apache Cloudberry 中的跨 Slice 执行-Alena Rybakina

61
0
2026-08-30 18:00:34
1
投币
3
分享
在 Apache Cloudberry 中,优化器、规划器(planner)和执行器对同一条查询持有不同的抽象。当这些抽象之间出现分歧时,即使是简单的查询也可能引发严重的故障。 本次演讲分享一个涉及复制表(replicated table)上公共表表达式(CTE)共享扫描(Shared Scan)的真实 bug。当此类 CTE 被作为标量子查询多次引用时,查询可能无限期挂起,或报出"could not open existing temporary file"之类的错误。 根本原因在于逻辑执行与物理执行之间的错配:标量 SubPlan 向优化器隐藏了依赖关系,导致 slice 分配不正确,破坏了生产者—消费者的局部性。 在本次演讲中,我将梳理几种可选的修复方案,并解释每种方案是如何尝试解决这一问题的。我们会深入优化器内部,理解这个 bug 为何会产生、不同修复方案如何改变执行拓扑,以及为什么其中一些方案——尽管可行——却无法作为最终方案被接受。 有些修复会引入细微的回归、改变计划形态,或被迫回退到 Postgres 优化器,这凸显了在不破坏全局行为的前提下做局部改进的困难。 本次演讲展示了看似简单的查询模式如何暴露优化器与执行器之间深层的不一致——以及为什么修复这类问题往往需要在权衡中抉择,而非寻找一个唯一"正确"的答案。
Apache Local Community 北京本地社区
1371播放
简介
Apache Ozone:基于 S3 生命周期配置的文件自动过期、删除与存储类型转换-Chen Xi Sammi Chen
28:48
万法归 SQL:把 DataFusion 的优化迁移到另一个非通用计算系统-Ruihang Xia
32:14
Celeborn 如何让阿里云 Serverless Spark 的 Shuffle 省心、放心、无忧-Zhentao Shuai&Jiashu Xiong
24:55
从愿景到生产:Apache Fluss 如何定义实时数据湖仓的存储层-Yang Wang
25:39
小米 HBase 功能迭代与架构演进实践-Yuting sun&Yiming Gong
31:17
用智能超分(Overcommitment)优化 Apache YARN 集群-Sumit Puri&Wasif Khan
22:11
滴滴 Apache Ozone 规模化实践:生产环境运营 100PB+ 存储与数十亿文件-Shilun Fan&Ming Wei&Hongbing Wang
28:18
Apache Ratis 中的一致性模型 Tsz-Wo Nicholas Sze
28:56
跨越 EB 级规模: LY Corporation 的 Hadoop 集成与运营经验-Akira Ajisaka&Kai Hirayama
28:36
Paimon-cpp: 为 Apache 生态带来原生高性能的湖仓访问-Xinya Liu
28:47
用Gravitino 统一 Lance 的元数据管理-Qi Yu
29:54
释放原生性能:Apache Iceberg-cpp 的架构与路线图-Gang Wu&Junwang Zhao
30:51
Apache Auron(孵化中):研发进展与社区发展-Zhang Li
31:19
当优化器说谎时:调试 Apache Cloudberry 中的跨 Slice 执行-Alena Rybakina
27:10
客服
顶部
赛事库 课堂 2021拜年纪