zhuqi-lucas commented on PR #22612: URL: https://github.com/apache/datafusion/pull/22612#issuecomment-4586744137
@neilconway Good push for more precision — looking at the bot output again, the picture splits cleanly along the join/no-join axis the PR was designed around: **ClickBench (mostly single-table aggregations, no joins) — the target case:** | Benchmark | HEAD | This PR | Change | |---|---|---|---| | `physical_plan_clickbench_all` | 123.4 ms | **121.7 ms** | **−1.4 %** | | `physical_plan_clickbench_q10` | 1955 µs | 1909 µs | −2.3 % | | `physical_plan_clickbench_q11` | 2.14 ms | 2.10 ms | −2.0 % | | `physical_plan_clickbench_q12` | 2.16 ms | 2.10 ms | −2.8 % | | `physical_plan_clickbench_q13` | 1958 µs | 1930 µs | −1.4 % | | `physical_plan_clickbench_q14` | 2.14 ms | 2.10 ms | −2.0 % | Wins are small per-query but consistent across the 20+ join-free clickbench queries. **TPCH (every query joins) — the "worst case" for this PR:** | Benchmark | HEAD | This PR | Change | |---|---|---|---| | `optimizer_tpch_all` | 14.3 ms | 14.7 ms | +2.8 % | | `physical_plan_tpch_q22` | 1519 µs | 1556 µs | +2.4 % | Small regression on average — exactly what the design predicts: the `plan_has_joins` scan runs but never finds the bail-out condition (every TPCH plan has a join), so it's pure overhead. The scan is read-only and early-stops on the first join match, so the overhead is bounded. So: target workload (join-free, OLTP-shape) consistently improves; the worst-case workload (every plan has a join) takes a small hit. Net depends on the workload mix. The deeper fix to flip that trade-off — generic in-place mutable rewrite, so the cost paid by join-heavy workloads disappears — is tracked in #22616. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
