adriangb commented on PR #25752: URL: https://github.com/apache/datafusion/pull/25752#issuecomment-5835885985
## Sweep: optional filter floor, `pruning_only` and placement off Head 8084d3239b against merge-base 5719930. main uses the defaults (`pushdown_filters = false`). All branch configs use `pushdown_filters = true`. Times are the min of 5 iterations, in ms. Ratio = branch / main. **Bold** = more than 7% slower. ClickBench query numbers start at 0. | Config | Branch env (plus `PARQUET_PUSHDOWN_FILTERS: "true"`) | Trigger | |---|---|---| | X=20 | `OPTIONAL_FILTER_MIN_SAVING_NS_PER_ROW: "20"` | [5835267282](https://github.com/apache/datafusion/pull/25752#issuecomment-5835267282) | | X=10 | `OPTIONAL_FILTER_MIN_SAVING_NS_PER_ROW: "10"` | [5835312017](https://github.com/apache/datafusion/pull/25752#issuecomment-5835312017) | | X=5 | `OPTIONAL_FILTER_MIN_SAVING_NS_PER_ROW: "5"` | [5835325769](https://github.com/apache/datafusion/pull/25752#issuecomment-5835325769) | | X=0 | `OPTIONAL_FILTER_MIN_SAVING_NS_PER_ROW: "0"` | [5835339860](https://github.com/apache/datafusion/pull/25752#issuecomment-5835339860) | | pruning_only | `OPTIONAL_FILTER_MODE: "pruning_only"` | [5835668569](https://github.com/apache/datafusion/pull/25752#issuecomment-5835668569) | | placement off | `ADAPTIVE_FILTER_PLACEMENT: "false"` | [5835668816](https://github.com/apache/datafusion/pull/25752#issuecomment-5835668816) | ### Suite totals | Suite | Config | main | branch | ratio | slower > 7% | faster > 7% | worst 3 | |---|---|---|---|---|---|---|---| | [TPC-H SF1](https://github.com/apache/datafusion/pull/25752#issuecomment-5835372782) | X=20 | 760 | 753 | 0.99 | 10 | 5 | Q9 1.31, Q3 1.16, Q4 1.14 | | [TPC-H SF1](https://github.com/apache/datafusion/pull/25752#issuecomment-5835388568) | X=10 | 733 | 733 | 1.00 | 10 | 4 | Q9 1.32, Q5 1.16, Q3 1.14 | | [TPC-H SF1](https://github.com/apache/datafusion/pull/25752#issuecomment-5835453649) | X=5 | 735 | 754 | 1.03 | 10 | 3 | Q9 1.32, Q3 1.15, Q5 1.13 | | [TPC-H SF1](https://github.com/apache/datafusion/pull/25752#issuecomment-5835478850) | X=0 | 737 | 754 | 1.02 | 10 | 3 | Q9 1.30, Q3 1.16, Q5 1.15 | | [TPC-H SF1](https://github.com/apache/datafusion/pull/25752#issuecomment-5835743505) | pruning_only | 752 | 762 | 1.01 | 2 | 1 | Q15 1.09, Q11 1.07 | | [TPC-H SF1](https://github.com/apache/datafusion/pull/25752#issuecomment-5835752430) | placement off | 760 | 812 | 1.07 | 14 | 2 | Q12 1.62, Q4 1.48, Q6 1.36 | | [TPC-DS SF1](https://github.com/apache/datafusion/pull/25752#issuecomment-5835394494) | X=20 | 9,128 | 6,904 | 0.76 | 26 | 38 | Q37 1.27, Q38 1.27, Q87 1.25 | | [TPC-DS SF1](https://github.com/apache/datafusion/pull/25752#issuecomment-5835407734) | X=10 | 8,947 | 6,831 | 0.76 | 26 | 35 | Q37 1.29, Q87 1.26, Q38 1.26 | | [TPC-DS SF1](https://github.com/apache/datafusion/pull/25752#issuecomment-5835476308) | X=5 | 9,446 | 7,100 | 0.75 | 24 | 38 | Q10 1.40, Q69 1.26, Q38 1.26 | | [TPC-DS SF1](https://github.com/apache/datafusion/pull/25752#issuecomment-5835498469) | X=0 | 9,188 | 6,888 | 0.75 | 21 | 44 | Q10 1.44, Q69 1.39, Q67 1.22 | | [TPC-DS SF1](https://github.com/apache/datafusion/pull/25752#issuecomment-5835779113) | pruning_only | 8,978 | 9,106 | 1.01 | 10 | 3 | Q37 1.24, Q82 1.12, Q32 1.11 | | [TPC-DS SF1](https://github.com/apache/datafusion/pull/25752#issuecomment-5835771066) | placement off | 9,117 | 7,158 | 0.79 | 28 | 32 | Q9 2.19, Q82 1.90, Q48 1.33 | | [ClickBench partitioned](https://github.com/apache/datafusion/pull/25752#issuecomment-5835448990) | X=20 | 20,597 | 17,060 | 0.83 | 1 | 7 | Q25 1.28 | | [ClickBench partitioned](https://github.com/apache/datafusion/pull/25752#issuecomment-5835468560) | X=10 | 19,851 | 16,454 | 0.83 | 2 | 6 | Q25 1.21, Q40 1.07 | | [ClickBench partitioned](https://github.com/apache/datafusion/pull/25752#issuecomment-5835526409) | X=5 | 19,738 | 16,677 | 0.84 | 5 | 7 | Q15 1.23, Q16 1.17, Q14 1.13 | | [ClickBench partitioned](https://github.com/apache/datafusion/pull/25752#issuecomment-5835597636) | X=0 | 19,974 | 16,623 | 0.83 | 3 | 4 | Q25 1.19, Q36 1.08, Q40 1.08 | | [ClickBench partitioned](https://github.com/apache/datafusion/pull/25752#issuecomment-5835863718) | pruning_only | 20,158 | 17,050 | 0.85 | 0 | 4 | - | | [ClickBench partitioned](https://github.com/apache/datafusion/pull/25752#issuecomment-5835802026) | placement off | 19,370 | 16,205 | 0.84 | 15 | 7 | Q10 1.40, Q11 1.33, Q25 1.28 | ### Queries more than 7% slower at X=20, and the configs that fix them "Fixed by" lists the configs where the ratio is 1.07 or less. | Group | Query | X=20 | X=10 | X=5 | X=0 | pruning_only | placement off | Fixed by | |---|---|---|---|---|---|---|---|---| | G1 | DS Q10 | **1.20** | **1.20** | **1.40** | **1.44** | 1.04 | **1.19** | pruning_only | | G1 | DS Q21 | **1.16** | **1.12** | 1.06 | **1.12** | 1.06 | **1.12** | X=5, pruning_only | | G1 | DS Q38 | **1.27** | **1.26** | **1.26** | **1.20** | **1.10** | **1.25** | none | | G1 | DS Q69 | **1.24** | **1.26** | **1.26** | **1.39** | 1.04 | **1.27** | pruning_only | | G1 | DS Q87 | **1.25** | **1.26** | **1.26** | 1.02 | **1.10** | **1.25** | X=0 | | G1 | DS Q89 | **1.18** | **1.21** | **1.24** | **1.13** | 1.05 | **1.22** | pruning_only | | G2 | H Q3 | **1.16** | **1.14** | **1.15** | **1.16** | 1.01 | **1.11** | pruning_only | | G2 | H Q5 | **1.14** | **1.16** | **1.13** | **1.15** | 1.03 | **1.22** | pruning_only | | G2 | H Q9 | **1.31** | **1.32** | **1.32** | **1.30** | 1.03 | **1.23** | pruning_only | | G2 | DS Q17 | **1.17** | **1.17** | **1.16** | **1.13** | 1.05 | **1.16** | pruning_only | | G2 | DS Q29 | **1.17** | **1.10** | **1.09** | 1.06 | 1.04 | **1.09** | X=0, pruning_only | | G2 | DS Q50 | **1.16** | **1.22** | **1.20** | **1.19** | 0.99 | **1.19** | pruning_only | | G3 | H Q4 | **1.14** | **1.13** | **1.07** | **1.09** | 1.05 | **1.48** | pruning_only | | G3 | DS Q13 | **1.09** | **1.10** | **1.07** | **1.10** | 1.01 | 1.00 | pruning_only, placement off | | G4 | CB Q25 | **1.28** | **1.21** | **1.12** | **1.19** | 1.00 | **1.28** | pruning_only | | - | H Q7 | **1.11** | **1.12** | **1.13** | **1.11** | 1.02 | 1.03 | pruning_only, placement off | | - | H Q10 | **1.07** | **1.08** | **1.08** | **1.08** | 1.01 | **1.14** | pruning_only | | - | H Q11 | **1.11** | **1.13** | **1.12** | **1.14** | **1.07** | **1.10** | none | | - | H Q14 | **1.08** | **1.08** | **1.07** | **1.08** | 1.07 | **1.08** | pruning_only | | - | H Q15 | **1.08** | **1.10** | **1.09** | **1.08** | **1.09** | **1.31** | none | | - | H Q22 | **1.12** | **1.10** | **1.08** | **1.07** | 1.01 | **1.19** | pruning_only | | - | DS Q9 | **1.08** | **1.10** | **1.11** | **1.07** | **1.10** | **2.19** | none | | - | DS Q14 | **1.09** | 1.07 | 1.04 | 1.01 | 1.02 | **1.09** | X=10, X=5, X=0, pruning_only | | - | DS Q22 | **1.07** | 1.00 | 1.02 | 0.99 | 1.03 | 0.99 | X=10, X=5, X=0, pruning_only, placement off | | - | DS Q23 | **1.15** | **1.17** | **1.11** | **1.09** | 1.02 | **1.14** | pruning_only | | - | DS Q27 | **1.09** | 0.97 | 0.97 | 0.99 | 0.97 | 1.00 | X=10, X=5, X=0, pruning_only, placement off | | - | DS Q30 | **1.10** | 0.98 | 1.00 | 0.91 | 0.98 | 1.00 | X=10, X=5, X=0, pruning_only, placement off | | - | DS Q31 | **1.13** | **1.12** | **1.10** | 1.02 | 1.03 | **1.11** | X=0, pruning_only | | - | DS Q35 | **1.16** | **1.17** | 1.06 | 0.95 | 1.03 | **1.13** | X=5, X=0, pruning_only | | - | DS Q37 | **1.27** | **1.29** | **1.24** | **1.12** | **1.24** | 0.99 | placement off | | - | DS Q48 | **1.13** | **1.14** | 1.00 | 0.99 | 1.00 | **1.33** | X=5, X=0, pruning_only | | - | DS Q51 | **1.10** | **1.09** | **1.09** | 1.07 | 1.01 | **1.09** | X=0, pruning_only | | - | DS Q70 | **1.09** | **1.11** | **1.09** | **1.08** | 1.02 | **1.11** | pruning_only | | - | DS Q82 | **1.10** | **1.12** | **1.11** | **1.08** | **1.12** | **1.90** | none | | - | DS Q85 | **1.16** | **1.15** | **1.18** | **1.16** | 0.97 | **1.22** | pruning_only | | - | DS Q86 | **1.16** | **1.15** | **1.19** | 1.02 | 1.06 | **1.18** | X=0, pruning_only | | - | DS Q96 | **1.09** | **1.09** | **1.09** | **1.12** | 1.00 | **1.11** | pruning_only | Fixed count, of 37 queries: X=10 4, X=5 7, X=0 11, pruning_only 30, placement off 6. ### Wins to protect | Query | X=20 | X=10 | X=5 | X=0 | pruning_only | placement off | |---|---|---|---|---|---|---| | H Q6 | 0.93 | 0.92 | 0.94 | 0.95 | 0.94 | **1.36** | | H Q12 | 0.98 | 0.98 | 0.97 | 0.97 | 0.91 | **1.62** | | H Q17 | 0.55 | 0.59 | 0.90 | 0.89 | 0.97 | 0.57 | | H Q18 | 0.85 | 0.86 | 0.84 | 0.84 | 1.02 | 0.91 | | DS Q72 | 0.06 | 0.06 | 0.06 | 0.06 | 1.04 | 0.06 | | DS Q65 | 0.69 | 0.69 | 0.68 | 0.79 | 0.55 | 0.68 | | DS Q54 | 0.53 | 0.52 | 0.51 | 0.79 | 0.99 | 0.52 | | CB Q23 | 0.08 | 0.08 | 0.08 | 0.08 | 0.12 | 0.04 | | CB Q24 | 0.68 | 0.67 | 0.63 | 0.68 | 0.96 | **1.08** | H Q17, DS Q54 and CB Q24 are not in the triage list. They are included because a low floor or `pruning_only` removes their win. Conclusion: no floor value fixes the regressions (keep the default of 20; X=5 and X=0 also remove the H Q17 win), `pruning_only` fixes almost all of them but removes the join filter wins (TPC-DS total 1.01 against 0.76), and placement off makes more queries slower; thus the regressions come from the row-by-row evaluation of the optional filters, and the adaptive gate does not pause them. 🤖 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]
