paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Optimal Predicate Pushdown Synthesis

最优谓词下推合成
PLDI 10(PLDI)2026匹配度 4/10 · 论文属于程序合成与形式语义/数据流优化,具有理论形式化与工业评估,但与用户核心关注的 LLM/Agent 静态分析、浮点程序分析、贝叶斯程序分析无直接交集,仅泛泛属于 PL/程序优化相邻方向。引用 1 inbox
Robert Zhang, Eric Hayden Campbell, Dixin Tang, Işıl Dillig
crossref: 2026-09-10

AI 速览

一句话:提出有状态 fold 计算的最优谓词下推合成框架,自动生成正确且最优的过滤分解。

谓词下推是数据流水线的关键优化,但过滤提前到通用语言 UDF 前需要语义推理。本文为有状态、基于 fold 的计算建立谓词下推语义基础,把下推视为两个处理不同输入子集程序之间的对应,并用互模拟不变式刻画内部状态关系。基于此,作者提出可靠且相对完备的验证框架,以及自动构造最优下推分解的合成算法,通过寻找最强可允许前置过滤器和最弱残余后置过滤器实现最优性。工具 Pusharoo 在 150 个真实 pandas 与 Spark 流水线上评估,表达力优于已有工作,合成中位时间 1.6 秒,端到端平均加速 2.4 倍,最高达两个数量级。

问题
在含 UDF 的现代数据流水线中,谓词下推能显著提升性能,但要把过滤器安全地移到有状态 UDF 之前,需要语义推理,现有方法表达力不足。
方法
论文为有状态 fold 计算建立下推语义基础,以互模拟不变式证明正确性,并给出可靠且相对完备的验证框架与合成算法,自动构造最优的前置/残余后置过滤器分解。
评估
实现工具 Pusharoo,在 150 个真实 pandas 与 Spark 流水线上评估;合成中位时间 1.6 秒,端到端平均加速 2.4 倍,最高两个数量级。
原文摘要(Abstract)

Predicate pushdown is a long-standing performance optimization that filters data as early as possible in a computational workflow. In modern data pipelines, this transformation is especially important because much of the computation occurs inside user-defined functions (UDFs) written in general-purpose languages such as Python and Scala. These UDFs capture rich domain logic and complex aggregations and are among the most expensive operations in a pipeline. Moving filters ahead of such UDFs can yield substantial performance gains, but doing so requires semantic reasoning. This paper introduces a general semantic foundation for predicate pushdown over stateful fold-based computations. We view pushdown as a correspondence between two programs that process different subsets of input data, with correctness witnessed by a bisimulation invariant relating their internal states. Building on this foundation, we develop a sound and relatively complete framework for verification, alongside a synthesis algorithm that automatically constructs optimal pushdown decompositions by finding the strongest admissible pre-filters and weakest residual post-filters. We implement this approach in a tool called Pusharoo and evaluate it on 150 real-world pandas and Spark data-processing pipelines. Our evaluation shows that Pusharoo is significantly more expressive than prior work, producing optimal pushdown transformations with a median synthesis time of 1.6 seconds per benchmark. Furthermore, our experiments demonstrate that the discovered pushdown optimizations speed up end-to-end execution by an average of 2.4× and up to two orders of magnitude.

链接与引用

DOI 原文 · arXiv · PDF(开放获取) · DBLP

BibTeX
@article{abs-2604-13351,
  title = {Optimal Predicate Pushdown Synthesis},
  author = {Robert Zhang and Eric Hayden Campbell and Dixin Tang and Işıl Dillig},
  journal = {Proceedings of the ACM on Programming Languages},
  volume = {10},
  number = {PLDI},
  year = {2026},
  doi = {10.1145/3808312}
}