devanbenz opened a new pull request, #26249: URL: https://github.com/apache/datafusion/pull/26249
Work in progress/experiment, attempting to resolve a few performance issues with large CASE statements during dynamic filter scans. This commit reduces the amount of copies required during a predicate lookup. Specifically this was seen as a bottleneck on Q17 of TPC-H: https://github.com/apache/datafusion/issues/26169#issuecomment-6125269091 | query | polars | main (pushdown) | this branch (pushdown) | this branch / main | this branch / polars | |---|---:|---:|---:|---:|---:| | q01 | 2.00 | 2.59 | 2.82 | 1.09x | 1.42x | | q02 | 0.17 | 0.95 | 0.64 | 0.67x | 3.74x | | q03 | 1.50 | 2.65 | 2.09 | 0.79x | 1.40x | | q04 | 0.77 | 2.25 | 1.60 | 0.71x | 2.08x | | q05 | 1.71 | 3.25 | 2.41 | 0.74x | 1.41x | | q06 | 0.62 | 1.61 | 1.68 | 1.04x | 2.71x | | q07 | 1.95 | 3.43 | 2.38 | 0.69x | 1.22x | | q08 | 2.80 | 5.64 | 5.14 | 0.91x | 1.84x | | q09 | 4.92 | 9.14 | 7.95 | 0.87x | 1.61x | | q10 | 2.47 | 2.88 | 2.86 | 0.99x | 1.16x | | q11 | 0.16 | 0.90 | 0.49 | 0.54x | 2.96x | | q12 | 0.65 | 2.44 | 2.02 | 0.83x | 3.11x | | q13 | 2.41 | 3.16 | 2.83 | 0.90x | 1.17x | | q14 | 1.03 | 1.32 | 1.31 | 0.99x | 1.27x | | q15 | 0.98 | 3.24 | 3.13 | 0.97x | 3.19x | | q16 | 0.44 | 0.55 | 0.43 | 0.79x | 0.99x | | q17 | 1.41 | 5.57 | 2.20 | 0.39x | 1.55x | | q18 | 2.59 | 5.86 | 6.18 | 1.06x | 2.39x | | q19 | 1.09 | 1.73 | 1.76 | 1.02x | 1.61x | | q20 | 1.15 | 2.10 | 1.74 | 0.83x | 1.52x | | q21 | 3.62 | 12.76 | 11.12 | 0.87x | 3.07x | | q22 | 0.43 | 0.96 | 0.53 | 0.56x | 1.23x | | **total** | **34.9** | **75.0** | **63.3** | **0.84x** | **1.82x** | -- 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]
