adriangb commented on PR #25677:
URL: https://github.com/apache/datafusion/pull/25677#issuecomment-5809027081

   ## Benchmark summary, round 2 (635757407b, dedup + combined bounds)
   
   Base is the same merge-base (95bb0a0) used in [round 
1](https://github.com/apache/datafusion/pull/25677#issuecomment-5808006281). 
Times are the minimum of 5 iterations from the bot tables. Change = PR / base - 
1.
   
   ### Totals per suite/config
   
   | Suite | Config | Result | Base total | PR total | Change | Round 1 change |
   |---|---|---|---|---|---|---|
   | TPC-H SF1 | default | 
[link](https://github.com/apache/datafusion/pull/25677#issuecomment-5808913792) 
| 758.82 ms | 755.56 ms | -0.4% | +0.3% |
   | TPC-DS SF1 | default | 
[link](https://github.com/apache/datafusion/pull/25677#issuecomment-5808927818) 
| 9024.71 ms | 9173.95 ms | +1.7% | -0.8% / +1.5% (2 runs) |
   | TPC-H SF1 | `pushdown_filters=true` | 
[link](https://github.com/apache/datafusion/pull/25677#issuecomment-5808913850) 
| 868.47 ms | 833.14 ms | **-4.1%** | -3.6% |
   | TPC-H SF10 | `pushdown_filters=true` | 
[link](https://github.com/apache/datafusion/pull/25677#issuecomment-5808929931) 
| 7898.13 ms | 7641.47 ms | **-3.2%** | -3.4% |
   | TPC-DS SF1 | `pushdown_filters=true` | 
[link](https://github.com/apache/datafusion/pull/25677#issuecomment-5808928173) 
| 7851.85 ms | 7272.98 ms | **-7.4%** | -5.2% |
   
   ### Key queries, round 1 vs round 2 (where the collapse can fire)
   
   | Query | Config | Round 1 base → PR | Round 1 change | Round 2 base → PR | 
Round 2 change |
   |---|---|---|---|---|---|
   | TPC-DS Q2 | pushdown | 45.81 → 44.66 ms | no change | 47.02 → 44.04 ms | 
-6.3% |
   | TPC-DS Q18 | pushdown | 161.79 → 115.12 ms | -28.8% | 159.32 → 104.91 ms | 
**-34.2%** |
   | TPC-DS Q65 | pushdown | 158.71 → 147.12 ms | -7.3% | 159.10 → 86.93 ms | 
**-45.4%** |
   | TPC-DS Q65 | default | 128-133 → 126-130 ms (2 runs) | no change | 130.06 
→ 70.36 ms | **-45.9%** |
   | TPC-H SF1 Q17 | pushdown | 71.82 → 44.91 ms | -37.5% | 72.03 → 43.58 ms | 
-39.5% |
   | TPC-H SF1 Q18 | pushdown | 75.21 → 65.69 ms | -12.7% | 75.91 → 67.93 ms | 
-10.5% |
   | TPC-H SF10 Q18 | pushdown | 650.79 → 408.61 ms | -37.2% | 641.30 → 410.90 
ms | -35.9% |
   | TPC-H SF1 Q17 | default | 72.65 → 74.79 ms | no change | 77.04 → 69.94 ms 
| -9.2% |
   
   Q65 is the story of this round. Statistics pruning could not use the round-1 
list (54,000 entries, over `max_in_list_size`), so it only benefited from 
routing removal. With dedup and `col >= min AND col <= max` bounds it also gets 
row-group/file pruning, in both the pushdown and the default config, because 
bounds pruning does not need `pushdown_filters`. Q18 also improved further, 
consistent with a shorter, deduplicated list. Q2 stays flat in both rounds, 
within noise. Q17/Q18 in TPC-H and TPC-DS Q25/Q29/Q64/Q95 already improved in 
round 1 from the base collapse and move by about the same amount again here. 
That is likely the general partitioned-filter pushdown gain in this PR, not 
specifically the dedup/bounds change, since those query shapes are less likely 
to hit large duplicate-heavy union lists.
   
   ### Other queries beyond noise (>~7%) this round
   
   `pushdown_filters=true`, TPC-DS SF1 (single run):
   
   | Query | Base | PR | Change |
   |---|---|---|---|
   | Q1 | 5.72 ms | 5.17 ms | -9.6% |
   | Q4 | 378.01 ms | 343.29 ms | -9.2% |
   | Q11 | 238.47 ms | 209.50 ms | -12.1% |
   | Q25 | 115.79 ms | 72.09 ms | **-37.7%** |
   | Q29 | 145.78 ms | 88.03 ms | **-39.6%** |
   | Q64 | 505.96 ms | 338.27 ms | **-33.1%** |
   | Q88 | 67.78 ms | 62.92 ms | -7.2% |
   | Q95 | 92.43 ms | 54.16 ms | **-41.4%** |
   
   Default config, TPC-DS SF1 (single run):
   
   | Query | Base | PR | Change |
   |---|---|---|---|
   | Q1 | 5.49 ms | 6.13 ms | +11.7% |
   | Q4 | 416.61 ms | 464.06 ms | +11.4% |
   | Q11 | 254.37 ms | 292.31 ms | +14.9% |
   | Q15 | 52.17 ms | 55.92 ms | +7.2% |
   | Q16 | 6.33 ms | 6.93 ms | +9.5% |
   | Q22 | 62.44 ms | 67.99 ms | +8.9% |
   
   Q1/Q4/Q11 move in opposite directions between the default and pushdown runs 
(single run each, no repeat). That is consistent with the round-1 finding that 
default-config TPC-DS movements outside the collapse-eligible queries are noise 
or layout effects, not this change. Q25/Q29/Q64/Q95 are not new in this round. 
They already moved in round 1 and hold steady here.
   
   **Conclusion:** the dedup and combined-bounds commit is a clear net win on 
top of round 1, driven almost entirely by TPC-DS Q65 (-7% to -46%) and a 
further gain on Q18, which pulls the TPC-DS `pushdown_filters=true` suite total 
from -5.2% to **-7.4%**. TPC-H and default-config TPC-DS totals are unchanged 
within noise.
   
   🤖 Generated with [Claude Code](https://claude.com/claude-code)
   


-- 
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]

Reply via email to