You are viewing a plain text version of this content. The canonical link for it is here.
Posted to github@datafusion.apache.org by "alamb (via GitHub)" <gi...@apache.org> on 2025/12/16 21:16:08 UTC
[PR] Optimize muti-column grouping with StringView/ByteView [datafusion]
alamb opened a new pull request, #19364:
URL: https://github.com/apache/datafusion/pull/19364
## Which issue does this PR close?
<!--
We generally require a GitHub issue to be filed for all bug fixes and enhancements and this helps us generate change logs for our releases. You can link an issue to this PR using the GitHub syntax. For example `Closes #123` indicates that this PR will close issue #123.
-->
- Part of https://github.com/apache/datafusion/issues/18411
- Closes https://github.com/apache/datafusion/pull/19344
## Rationale for this change
@camuel found a query where DuckDB's raw grouping is is faster.
I looked into it and much of the difference can be explained by better vectorization in the comparisons and short string optimizations
## What changes are included in this PR?
Optimize (will comment inline)
## Are these changes tested?
By CI. See also benchmark results below. I tested manually as well
Create Data:
```shell
nice tpchgen-cli --tables=lineitem --format=parquet --scale-factor 100
```
Run query:
```shell
time datafusion-cli -c "select l_returnflag,l_linestatus, count(*) as count_order from 'lineitem.parquet' group by l_returnflag, l_linestatus;"
```
Before (main)
```shell
TODO
```
After (this PR)
```shell
TODO
```
## Are there any user-facing changes?
Faster performance
--
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: github-unsubscribe@datafusion.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: github-unsubscribe@datafusion.apache.org
For additional commands, e-mail: github-help@datafusion.apache.org
Re: [PR] Optimize muti-column grouping with StringView/ByteView [datafusion]
Posted by "alamb (via GitHub)" <gi...@apache.org>.
alamb commented on PR #19364:
URL: https://github.com/apache/datafusion/pull/19364#issuecomment-3665139381
> My runner script keeps dying when there is a problem with the scripts. I am working on a way to keep it going (make it more resilent to failures)
I added some error checking here: https://github.com/alamb/datafusion-benchmarking/commit/64ebd3a6ff5e3a4609e2a5a7a8983cc76e8b2031
--
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: github-unsubscribe@datafusion.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: github-unsubscribe@datafusion.apache.org
For additional commands, e-mail: github-help@datafusion.apache.org
Re: [PR] Optimize muti-column grouping with StringView/ByteView [datafusion]
Posted by "alamb-ghbot (via GitHub)" <gi...@apache.org>.
alamb-ghbot commented on PR #19364:
URL: https://github.com/apache/datafusion/pull/19364#issuecomment-3668628695
๐ค: Benchmark completed
<details><summary>Details</summary>
<p>
```
Comparing HEAD and alamb_multi_byte_view_comparison
--------------------
Benchmark tpcds_sf1.json
--------------------
โโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโ
โ Query โ HEAD โ alamb_multi_byte_view_comparison โ Change โ
โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ
โ QQuery 1 โ 61.79 ms โ 61.64 ms โ no change โ
โ QQuery 2 โ 203.56 ms โ 200.17 ms โ no change โ
โ QQuery 3 โ 153.87 ms โ 159.01 ms โ no change โ
โ QQuery 4 โ 2033.58 ms โ 1931.14 ms โ +1.05x faster โ
โ QQuery 5 โ 267.11 ms โ 262.78 ms โ no change โ
โ QQuery 6 โ 1550.81 ms โ 1531.81 ms โ no change โ
โ QQuery 7 โ 502.46 ms โ 495.18 ms โ no change โ
โ QQuery 8 โ 168.22 ms โ 169.04 ms โ no change โ
โ QQuery 9 โ 267.41 ms โ 268.63 ms โ no change โ
โ QQuery 10 โ 165.27 ms โ 165.74 ms โ no change โ
โ QQuery 11 โ 1380.34 ms โ 1378.82 ms โ no change โ
โ QQuery 12 โ 70.46 ms โ 73.32 ms โ no change โ
โ QQuery 13 โ 555.03 ms โ 555.82 ms โ no change โ
โ QQuery 14 โ 1991.64 ms โ 2017.76 ms โ no change โ
โ QQuery 15 โ 27.90 ms โ 28.44 ms โ no change โ
โ QQuery 16 โ 59.48 ms โ 59.13 ms โ no change โ
โ QQuery 17 โ 351.16 ms โ 346.88 ms โ no change โ
โ QQuery 18 โ 189.18 ms โ 193.45 ms โ no change โ
โ QQuery 19 โ 227.42 ms โ 232.14 ms โ no change โ
โ QQuery 20 โ 22.62 ms โ 23.24 ms โ no change โ
โ QQuery 21 โ 34.71 ms โ 34.96 ms โ no change โ
โ QQuery 22 โ 971.80 ms โ 902.51 ms โ +1.08x faster โ
โ QQuery 23 โ 1812.07 ms โ 1801.98 ms โ no change โ
โ QQuery 24 โ 633.93 ms โ 632.98 ms โ no change โ
โ QQuery 25 โ 506.75 ms โ 512.24 ms โ no change โ
โ QQuery 26 โ 122.62 ms โ 128.65 ms โ no change โ
โ QQuery 27 โ 488.57 ms โ 494.95 ms โ no change โ
โ QQuery 28 โ 302.27 ms โ 302.85 ms โ no change โ
โ QQuery 29 โ 440.73 ms โ 436.42 ms โ no change โ
โ QQuery 30 โ 63.60 ms โ 65.63 ms โ no change โ
โ QQuery 31 โ 297.01 ms โ 302.12 ms โ no change โ
โ QQuery 32 โ 76.73 ms โ 80.40 ms โ no change โ
โ QQuery 33 โ 192.92 ms โ 189.27 ms โ no change โ
โ QQuery 34 โ 158.22 ms โ 162.63 ms โ no change โ
โ QQuery 35 โ 169.30 ms โ 165.74 ms โ no change โ
โ QQuery 36 โ 289.25 ms โ 292.32 ms โ no change โ
โ QQuery 37 โ 257.86 ms โ 260.83 ms โ no change โ
โ QQuery 38 โ 146.98 ms โ 145.08 ms โ no change โ
โ QQuery 39 โ 213.20 ms โ 216.10 ms โ no change โ
โ QQuery 40 โ 188.79 ms โ 188.73 ms โ no change โ
โ QQuery 41 โ 16.29 ms โ 16.25 ms โ no change โ
โ QQuery 42 โ 140.42 ms โ 141.79 ms โ no change โ
โ QQuery 43 โ 124.25 ms โ 124.67 ms โ no change โ
โ QQuery 44 โ 15.84 ms โ 15.85 ms โ no change โ
โ QQuery 45 โ 82.22 ms โ 84.98 ms โ no change โ
โ QQuery 46 โ 325.38 ms โ 328.71 ms โ no change โ
โ QQuery 47 โ 1314.45 ms โ 1272.21 ms โ no change โ
โ QQuery 48 โ 416.60 ms โ 417.76 ms โ no change โ
โ QQuery 49 โ 352.27 ms โ 356.68 ms โ no change โ
โ QQuery 50 โ 335.37 ms โ 338.14 ms โ no change โ
โ QQuery 51 โ 295.39 ms โ 299.23 ms โ no change โ
โ QQuery 52 โ 142.53 ms โ 142.80 ms โ no change โ
โ QQuery 53 โ 149.14 ms โ 149.82 ms โ no change โ
โ QQuery 54 โ 207.33 ms โ 213.63 ms โ no change โ
โ QQuery 55 โ 143.22 ms โ 143.18 ms โ no change โ
โ QQuery 56 โ 192.50 ms โ 195.91 ms โ no change โ
โ QQuery 57 โ 315.98 ms โ 316.97 ms โ no change โ
โ QQuery 58 โ 513.48 ms โ 520.51 ms โ no change โ
โ QQuery 59 โ 282.42 ms โ 281.60 ms โ no change โ
โ QQuery 60 โ 198.26 ms โ 196.24 ms โ no change โ
โ QQuery 61 โ 233.36 ms โ 237.64 ms โ no change โ
โ QQuery 62 โ 1350.10 ms โ 1342.62 ms โ no change โ
โ QQuery 63 โ 147.61 ms โ 149.77 ms โ no change โ
โ QQuery 64 โ 1155.50 ms โ 1162.17 ms โ no change โ
โ QQuery 65 โ 352.19 ms โ 362.20 ms โ no change โ
โ QQuery 66 โ 380.25 ms โ 370.56 ms โ no change โ
โ QQuery 67 โ 630.71 ms โ 610.62 ms โ no change โ
โ QQuery 68 โ 388.26 ms โ 383.19 ms โ no change โ
โ QQuery 69 โ 167.36 ms โ 163.01 ms โ no change โ
โ QQuery 70 โ 511.00 ms โ 496.85 ms โ no change โ
โ QQuery 71 โ 183.38 ms โ 181.99 ms โ no change โ
โ QQuery 72 โ 2533.36 ms โ 2500.78 ms โ no change โ
โ QQuery 73 โ 154.52 ms โ 153.24 ms โ no change โ
โ QQuery 74 โ 874.07 ms โ 852.25 ms โ no change โ
โ QQuery 75 โ 394.61 ms โ 400.61 ms โ no change โ
โ QQuery 76 โ 186.05 ms โ 186.17 ms โ no change โ
โ QQuery 77 โ 261.26 ms โ 263.80 ms โ no change โ
โ QQuery 78 โ 937.04 ms โ 930.09 ms โ no change โ
โ QQuery 79 โ 338.60 ms โ 337.28 ms โ no change โ
โ QQuery 80 โ 500.89 ms โ 494.00 ms โ no change โ
โ QQuery 81 โ 42.96 ms โ 41.36 ms โ no change โ
โ QQuery 82 โ 294.18 ms โ 296.19 ms โ no change โ
โ QQuery 83 โ 68.78 ms โ 65.59 ms โ no change โ
โ QQuery 84 โ 64.69 ms โ 63.12 ms โ no change โ
โ QQuery 85 โ 218.62 ms โ 222.75 ms โ no change โ
โ QQuery 86 โ 58.20 ms โ 57.96 ms โ no change โ
โ QQuery 87 โ 151.80 ms โ 144.76 ms โ no change โ
โ QQuery 88 โ 240.58 ms โ 243.38 ms โ no change โ
โ QQuery 89 โ 167.52 ms โ 167.34 ms โ no change โ
โ QQuery 90 โ 36.75 ms โ 34.93 ms โ no change โ
โ QQuery 91 โ 99.56 ms โ 94.41 ms โ +1.05x faster โ
โ QQuery 92 โ 77.48 ms โ 78.27 ms โ no change โ
โ QQuery 93 โ 267.09 ms โ 264.30 ms โ no change โ
โ QQuery 94 โ 86.23 ms โ 83.12 ms โ no change โ
โ QQuery 95 โ 261.23 ms โ 261.66 ms โ no change โ
โ QQuery 96 โ 109.22 ms โ 113.19 ms โ no change โ
โ QQuery 97 โ 190.34 ms โ 182.64 ms โ no change โ
โ QQuery 98 โ 239.16 ms โ 233.03 ms โ no change โ
โ QQuery 99 โ 14834.27 ms โ 14821.76 ms โ no change โ
โโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโ
โ Benchmark Summary โ โ
โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ
โ Total Time (HEAD) โ 52368.73ms โ
โ Total Time (alamb_multi_byte_view_comparison) โ 52076.04ms โ
โ Average Time (HEAD) โ 528.98ms โ
โ Average Time (alamb_multi_byte_view_comparison) โ 526.02ms โ
โ Queries Faster โ 3 โ
โ Queries Slower โ 0 โ
โ Queries with No Change โ 96 โ
โ Queries with Failure โ 0 โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโ
```
</p>
</details>
--
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: github-unsubscribe@datafusion.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: github-unsubscribe@datafusion.apache.org
For additional commands, e-mail: github-help@datafusion.apache.org
Re: [PR] Optimize muti-column grouping with StringView/ByteView [datafusion]
Posted by "Dandandan (via GitHub)" <gi...@apache.org>.
Dandandan commented on PR #19364:
URL: https://github.com/apache/datafusion/pull/19364#issuecomment-3668564153
run benchmark tpcds
--
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: github-unsubscribe@datafusion.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: github-unsubscribe@datafusion.apache.org
For additional commands, e-mail: github-help@datafusion.apache.org
Re: [PR] Optimize muti-column grouping with StringView/ByteView [datafusion]
Posted by "alamb (via GitHub)" <gi...@apache.org>.
alamb commented on PR #19364:
URL: https://github.com/apache/datafusion/pull/19364#issuecomment-3670114568
I benchmarked with/without the no buffers optimization and it seems to be worth around 1% (10ms out of 990ms)
```shell
hyperfine --warmup 3 " ./datafusion-cli-starting -c \"select l_returnflag,l_linestatus, count(*) as count_order from 'lineitem.parquet' group by l_returnflag, l_linestatus;\" "
```
Starting (before https://github.com/apache/datafusion/pull/19364/commits/da34c4cd52033ad04bb2da93133636f019f62eeb)
```
andrewlamb@Andrews-MacBook-Pro-3:~/Downloads$ hyperfine --warmup 3 " ./datafusion-cli-starting -c \"select l_returnflag,l_linestatus, count(*) as count_order from 'lineitem.parquet' group by l_returnflag, l_linestatus;\" "
Benchmark 1: ./datafusion-cli-starting -c "select l_returnflag,l_linestatus, count(*) as count_order from 'lineitem.parquet' group by l_returnflag, l_linestatus;"
Time (mean ยฑ ฯ): 989.4 ms ยฑ 9.2 ms [User: 11962.4 ms, System: 620.9 ms]
Range (min โฆ max): 980.0 ms โฆ 1007.0 ms 10 runs
```
After https://github.com/apache/datafusion/pull/19364/commits/da34c4cd52033ad04bb2da93133636f019f62eeb
```
Benchmark 1: ./datafusion-cli-no-buffers-opt -c "select l_returnflag,l_linestatus, count(*) as count_order from 'lineitem.parquet' group by l_returnflag, l_linestatus;"
Time (mean ยฑ ฯ): 982.1 ms ยฑ 10.0 ms [User: 11962.7 ms, System: 607.3 ms]
Range (min โฆ max): 968.4 ms โฆ 996.9 ms 10 runs
```
It seems reproducable:
```
andrewlamb@Andrews-MacBook-Pro-3:~/Downloads$ hyperfine --warmup 3 " ./datafusion-cli-starting -c \"select l_returnflag,l_linestatus, count(*) as count_order from 'lineitem.parquet' group by l_returnflag, l_linestatus;\" "
Benchmark 1: ./datafusion-cli-starting -c "select l_returnflag,l_linestatus, count(*) as count_order from 'lineitem.parquet' group by l_returnflag, l_linestatus;"
Time (mean ยฑ ฯ): 985.9 ms ยฑ 11.2 ms [User: 11979.8 ms, System: 621.6 ms]
Range (min โฆ max): 970.4 ms โฆ 1002.0 ms 10 runs
andrewlamb@Andrews-MacBook-Pro-3:~/Downloads$ hyperfine --warmup 3 " ./datafusion-cli-no-buffers-opt -c \"select l_returnflag,l_linestatus, count(*) as count_order from 'lineitem.parquet' group by l_returnflag, l_linestatus;\" "
Benchmark 1: ./datafusion-cli-no-buffers-opt -c "select l_returnflag,l_linestatus, count(*) as count_order from 'lineitem.parquet' group by l_returnflag, l_linestatus;"
Time (mean ยฑ ฯ): 995.5 ms ยฑ 17.8 ms [User: 12140.3 ms, System: 627.2 ms]
Range (min โฆ max): 964.1 ms โฆ 1023.3 ms 10 runs
```
--
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: github-unsubscribe@datafusion.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: github-unsubscribe@datafusion.apache.org
For additional commands, e-mail: github-help@datafusion.apache.org
Re: [PR] Optimize muti-column grouping with StringView/ByteView [datafusion]
Posted by "alamb-ghbot (via GitHub)" <gi...@apache.org>.
alamb-ghbot commented on PR #19364:
URL: https://github.com/apache/datafusion/pull/19364#issuecomment-3664932467
๐ค `./gh_compare_branch.sh` [gh_compare_branch.sh](https://github.com/alamb/datafusion-benchmarking/blob/main/scripts/gh_compare_branch.sh) Running
Linux aal-dev 6.14.0-1018-gcp #19~24.04.1-Ubuntu SMP Wed Sep 24 23:23:09 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
Comparing alamb/multi_byte_view_comparison (39690eb4be07220a033e7940a25d3f27bddb0c29) to 50d20dd553e2974166821e3be9c962472062b250 [diff](https://github.com/apache/datafusion/compare/50d20dd553e2974166821e3be9c962472062b250..39690eb4be07220a033e7940a25d3f27bddb0c29) using: tpch_mem clickbench_partitioned clickbench_extended
Results will be posted here when complete
--
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: github-unsubscribe@datafusion.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: github-unsubscribe@datafusion.apache.org
For additional commands, e-mail: github-help@datafusion.apache.org
Re: [PR] Optimize muti-column grouping with StringView/ByteView [datafusion]
Posted by "alamb-ghbot (via GitHub)" <gi...@apache.org>.
alamb-ghbot commented on PR #19364:
URL: https://github.com/apache/datafusion/pull/19364#issuecomment-3665159810
๐ค: Benchmark completed
<details><summary>Details</summary>
<p>
```
Comparing HEAD and alamb_multi_byte_view_comparison
--------------------
Benchmark clickbench_extended.json
--------------------
โโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโ
โ Query โ HEAD โ alamb_multi_byte_view_comparison โ Change โ
โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ
โ QQuery 0 โ 2654.93 ms โ 2698.13 ms โ no change โ
โ QQuery 1 โ 1318.69 ms โ 1258.88 ms โ no change โ
โ QQuery 2 โ 2438.94 ms โ 2526.07 ms โ no change โ
โ QQuery 3 โ 1132.09 ms โ 1130.33 ms โ no change โ
โ QQuery 4 โ 2250.77 ms โ 2241.25 ms โ no change โ
โ QQuery 5 โ 28459.49 ms โ 28764.05 ms โ no change โ
โ QQuery 6 โ 3966.94 ms โ 3978.11 ms โ no change โ
โ QQuery 7 โ 3455.76 ms โ 3546.16 ms โ no change โ
โโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโ
โ Benchmark Summary โ โ
โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ
โ Total Time (HEAD) โ 45677.61ms โ
โ Total Time (alamb_multi_byte_view_comparison) โ 46142.98ms โ
โ Average Time (HEAD) โ 5709.70ms โ
โ Average Time (alamb_multi_byte_view_comparison) โ 5767.87ms โ
โ Queries Faster โ 0 โ
โ Queries Slower โ 0 โ
โ Queries with No Change โ 8 โ
โ Queries with Failure โ 0 โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโ
--------------------
Benchmark clickbench_partitioned.json
--------------------
โโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโ
โ Query โ HEAD โ alamb_multi_byte_view_comparison โ Change โ
โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ
โ QQuery 0 โ 2.45 ms โ 2.24 ms โ +1.09x faster โ
โ QQuery 1 โ 52.67 ms โ 51.50 ms โ no change โ
โ QQuery 2 โ 134.23 ms โ 134.41 ms โ no change โ
โ QQuery 3 โ 151.39 ms โ 154.17 ms โ no change โ
โ QQuery 4 โ 1069.20 ms โ 1251.10 ms โ 1.17x slower โ
โ QQuery 5 โ 1457.17 ms โ 1737.72 ms โ 1.19x slower โ
โ QQuery 6 โ 2.20 ms โ 2.12 ms โ no change โ
โ QQuery 7 โ 57.10 ms โ 55.54 ms โ no change โ
โ QQuery 8 โ 1418.06 ms โ 1568.71 ms โ 1.11x slower โ
โ QQuery 9 โ 1820.46 ms โ 1982.91 ms โ 1.09x slower โ
โ QQuery 10 โ 383.95 ms โ 381.85 ms โ no change โ
โ QQuery 11 โ 436.87 ms โ 429.02 ms โ no change โ
โ QQuery 12 โ 1364.82 ms โ 1644.13 ms โ 1.20x slower โ
โ QQuery 13 โ 2030.01 ms โ 2213.73 ms โ 1.09x slower โ
โ QQuery 14 โ 1245.92 ms โ 1399.10 ms โ 1.12x slower โ
โ QQuery 15 โ 1220.64 ms โ 1433.16 ms โ 1.17x slower โ
โ QQuery 16 โ 2610.27 ms โ 2731.04 ms โ no change โ
โ QQuery 17 โ 2593.14 ms โ 2730.75 ms โ 1.05x slower โ
โ QQuery 18 โ 5201.98 ms โ 5053.13 ms โ no change โ
โ QQuery 19 โ 123.45 ms โ 124.49 ms โ no change โ
โ QQuery 20 โ 1942.33 ms โ 1904.46 ms โ no change โ
โ QQuery 21 โ 2212.15 ms โ 2192.22 ms โ no change โ
โ QQuery 22 โ 3829.95 ms โ 3806.20 ms โ no change โ
โ QQuery 23 โ 16774.03 ms โ 12620.76 ms โ +1.33x faster โ
โ QQuery 24 โ 214.67 ms โ 222.76 ms โ no change โ
โ QQuery 25 โ 469.39 ms โ 488.55 ms โ no change โ
โ QQuery 26 โ 238.30 ms โ 210.19 ms โ +1.13x faster โ
โ QQuery 27 โ 2733.25 ms โ 2671.62 ms โ no change โ
โ QQuery 28 โ 24468.41 ms โ 24083.89 ms โ no change โ
โ QQuery 29 โ 953.81 ms โ 970.17 ms โ no change โ
โ QQuery 30 โ 1358.21 ms โ 1374.33 ms โ no change โ
โ QQuery 31 โ 1386.23 ms โ 1382.56 ms โ no change โ
โ QQuery 32 โ 5287.29 ms โ 4855.42 ms โ +1.09x faster โ
โ QQuery 33 โ 5831.31 ms โ 5784.91 ms โ no change โ
โ QQuery 34 โ 6047.35 ms โ 5824.61 ms โ no change โ
โ QQuery 35 โ 1929.25 ms โ 2081.71 ms โ 1.08x slower โ
โ QQuery 36 โ 70.23 ms โ 68.42 ms โ no change โ
โ QQuery 37 โ 46.23 ms โ 47.32 ms โ no change โ
โ QQuery 38 โ 67.06 ms โ 68.95 ms โ no change โ
โ QQuery 39 โ 104.26 ms โ 107.45 ms โ no change โ
โ QQuery 40 โ 27.77 ms โ 26.43 ms โ no change โ
โ QQuery 41 โ 23.46 ms โ 24.41 ms โ no change โ
โ QQuery 42 โ 20.52 ms โ 20.13 ms โ no change โ
โโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโ
โ Benchmark Summary โ โ
โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ
โ Total Time (HEAD) โ 99411.41ms โ
โ Total Time (alamb_multi_byte_view_comparison) โ 95918.30ms โ
โ Average Time (HEAD) โ 2311.89ms โ
โ Average Time (alamb_multi_byte_view_comparison) โ 2230.66ms โ
โ Queries Faster โ 4 โ
โ Queries Slower โ 10 โ
โ Queries with No Change โ 29 โ
โ Queries with Failure โ 0 โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโ
--------------------
Benchmark tpch_mem_sf1.json
--------------------
โโโโโโโโโโโโโโโโณโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโ
โ Query โ HEAD โ alamb_multi_byte_view_comparison โ Change โ
โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ
โ QQuery 1 โ 131.95 ms โ 118.14 ms โ +1.12x faster โ
โ QQuery 2 โ 28.62 ms โ 28.00 ms โ no change โ
โ QQuery 3 โ 38.36 ms โ 37.47 ms โ no change โ
โ QQuery 4 โ 29.07 ms โ 28.98 ms โ no change โ
โ QQuery 5 โ 87.08 ms โ 88.72 ms โ no change โ
โ QQuery 6 โ 19.72 ms โ 19.91 ms โ no change โ
โ QQuery 7 โ 230.33 ms โ 228.48 ms โ no change โ
โ QQuery 8 โ 35.99 ms โ 38.56 ms โ 1.07x slower โ
โ QQuery 9 โ 109.87 ms โ 113.87 ms โ no change โ
โ QQuery 10 โ 64.34 ms โ 64.48 ms โ no change โ
โ QQuery 11 โ 17.76 ms โ 19.00 ms โ 1.07x slower โ
โ QQuery 12 โ 51.67 ms โ 51.38 ms โ no change โ
โ QQuery 13 โ 48.76 ms โ 52.19 ms โ 1.07x slower โ
โ QQuery 14 โ 14.23 ms โ 14.00 ms โ no change โ
โ QQuery 15 โ 24.49 ms โ 26.71 ms โ 1.09x slower โ
โ QQuery 16 โ 26.54 ms โ 24.76 ms โ +1.07x faster โ
โ QQuery 17 โ 151.67 ms โ 154.51 ms โ no change โ
โ QQuery 18 โ 280.64 ms โ 283.08 ms โ no change โ
โ QQuery 19 โ 37.06 ms โ 37.22 ms โ no change โ
โ QQuery 20 โ 50.88 ms โ 48.96 ms โ no change โ
โ QQuery 21 โ 318.31 ms โ 316.90 ms โ no change โ
โ QQuery 22 โ 17.58 ms โ 17.90 ms โ no change โ
โโโโโโโโโโโโโโโโดโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโ
โ Benchmark Summary โ โ
โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ
โ Total Time (HEAD) โ 1814.93ms โ
โ Total Time (alamb_multi_byte_view_comparison) โ 1813.21ms โ
โ Average Time (HEAD) โ 82.50ms โ
โ Average Time (alamb_multi_byte_view_comparison) โ 82.42ms โ
โ Queries Faster โ 2 โ
โ Queries Slower โ 4 โ
โ Queries with No Change โ 16 โ
โ Queries with Failure โ 0 โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโ
```
</p>
</details>
--
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: github-unsubscribe@datafusion.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: github-unsubscribe@datafusion.apache.org
For additional commands, e-mail: github-help@datafusion.apache.org
Re: [PR] Optimize muti-column grouping with StringView/ByteView [datafusion]
Posted by "alamb (via GitHub)" <gi...@apache.org>.
alamb commented on PR #19364:
URL: https://github.com/apache/datafusion/pull/19364#issuecomment-3662417949
run benchmarks
--
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: github-unsubscribe@datafusion.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: github-unsubscribe@datafusion.apache.org
For additional commands, e-mail: github-help@datafusion.apache.org
Re: [PR] Optimize muti-column grouping with StringView/ByteView [datafusion]
Posted by "alamb-ghbot (via GitHub)" <gi...@apache.org>.
alamb-ghbot commented on PR #19364:
URL: https://github.com/apache/datafusion/pull/19364#issuecomment-3665065864
๐ค `./gh_compare_branch.sh` [gh_compare_branch.sh](https://github.com/alamb/datafusion-benchmarking/blob/main/scripts/gh_compare_branch.sh) Running
Linux aal-dev 6.14.0-1018-gcp #19~24.04.1-Ubuntu SMP Wed Sep 24 23:23:09 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
Comparing alamb/multi_byte_view_comparison (39690eb4be07220a033e7940a25d3f27bddb0c29) to 50d20dd553e2974166821e3be9c962472062b250 [diff](https://github.com/apache/datafusion/compare/50d20dd553e2974166821e3be9c962472062b250..39690eb4be07220a033e7940a25d3f27bddb0c29) using: tpch_mem clickbench_partitioned clickbench_extended
Results will be posted here when complete
--
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: github-unsubscribe@datafusion.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: github-unsubscribe@datafusion.apache.org
For additional commands, e-mail: github-help@datafusion.apache.org
Re: [PR] Optimize muti-column grouping with StringView/ByteView [datafusion]
Posted by "alamb-ghbot (via GitHub)" <gi...@apache.org>.
alamb-ghbot commented on PR #19364:
URL: https://github.com/apache/datafusion/pull/19364#issuecomment-3668564475
๐ค `./gh_compare_branch.sh` [gh_compare_branch.sh](https://github.com/alamb/datafusion-benchmarking/blob/main/scripts/gh_compare_branch.sh) Running
Linux aal-dev 6.14.0-1018-gcp #19~24.04.1-Ubuntu SMP Wed Sep 24 23:23:09 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
Comparing alamb/multi_byte_view_comparison (da34c4cd52033ad04bb2da93133636f019f62eeb) to 14cd71eaba76ea43aa0adb2d88a86b36495ee0cc [diff](https://github.com/apache/datafusion/compare/14cd71eaba76ea43aa0adb2d88a86b36495ee0cc..da34c4cd52033ad04bb2da93133636f019f62eeb) using: tpcds
Results will be posted here when complete
--
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: github-unsubscribe@datafusion.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: github-unsubscribe@datafusion.apache.org
For additional commands, e-mail: github-help@datafusion.apache.org
Re: [PR] Optimize muti-column grouping with StringView/ByteView [datafusion]
Posted by "alamb-ghbot (via GitHub)" <gi...@apache.org>.
alamb-ghbot commented on PR #19364:
URL: https://github.com/apache/datafusion/pull/19364#issuecomment-3665062842
๐ค: Benchmark completed
<details><summary>Details</summary>
<p>
```
Comparing HEAD and alamb_multi_byte_view_comparison
--------------------
Benchmark clickbench_extended.json
--------------------
โโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโ
โ Query โ HEAD โ alamb_multi_byte_view_comparison โ Change โ
โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ
โ QQuery 0 โ 2660.36 ms โ 2601.22 ms โ no change โ
โ QQuery 1 โ 1286.95 ms โ 1310.89 ms โ no change โ
โ QQuery 2 โ 2550.99 ms โ 2486.51 ms โ no change โ
โ QQuery 3 โ 1154.27 ms โ 1105.38 ms โ no change โ
โ QQuery 4 โ 2233.04 ms โ 2244.30 ms โ no change โ
โ QQuery 5 โ 28548.05 ms โ 28375.50 ms โ no change โ
โ QQuery 6 โ 3979.59 ms โ 3939.18 ms โ no change โ
โ QQuery 7 โ 3379.67 ms โ 3441.10 ms โ no change โ
โโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโ
โ Benchmark Summary โ โ
โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ
โ Total Time (HEAD) โ 45792.92ms โ
โ Total Time (alamb_multi_byte_view_comparison) โ 45504.08ms โ
โ Average Time (HEAD) โ 5724.11ms โ
โ Average Time (alamb_multi_byte_view_comparison) โ 5688.01ms โ
โ Queries Faster โ 0 โ
โ Queries Slower โ 0 โ
โ Queries with No Change โ 8 โ
โ Queries with Failure โ 0 โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโ
--------------------
Benchmark clickbench_partitioned.json
--------------------
โโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโ
โ Query โ HEAD โ alamb_multi_byte_view_comparison โ Change โ
โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ
โ QQuery 0 โ 2.46 ms โ 2.25 ms โ +1.10x faster โ
โ QQuery 1 โ 49.63 ms โ 50.76 ms โ no change โ
โ QQuery 2 โ 130.55 ms โ 134.38 ms โ no change โ
โ QQuery 3 โ 155.21 ms โ 154.41 ms โ no change โ
โ QQuery 4 โ 1058.23 ms โ 1044.99 ms โ no change โ
โ QQuery 5 โ 1427.87 ms โ 1458.75 ms โ no change โ
โ QQuery 6 โ 2.08 ms โ 2.13 ms โ no change โ
โ QQuery 7 โ 57.50 ms โ 57.19 ms โ no change โ
โ QQuery 8 โ 1364.42 ms โ 1357.62 ms โ no change โ
โ QQuery 9 โ 1763.00 ms โ 1810.69 ms โ no change โ
โ QQuery 10 โ 386.07 ms โ 379.89 ms โ no change โ
โ QQuery 11 โ 433.70 ms โ 419.83 ms โ no change โ
โ QQuery 12 โ 1325.84 ms โ 1333.81 ms โ no change โ
โ QQuery 13 โ 2025.58 ms โ 2010.85 ms โ no change โ
โ QQuery 14 โ 1265.55 ms โ 1216.11 ms โ no change โ
โ QQuery 15 โ 1187.30 ms โ 1182.08 ms โ no change โ
โ QQuery 16 โ 2590.85 ms โ 2521.91 ms โ no change โ
โ QQuery 17 โ 2566.20 ms โ 2490.35 ms โ no change โ
โ QQuery 18 โ 4892.63 ms โ 4738.91 ms โ no change โ
โ QQuery 19 โ 119.61 ms โ 121.86 ms โ no change โ
โ QQuery 20 โ 1875.55 ms โ 1837.59 ms โ no change โ
โ QQuery 21 โ 2175.43 ms โ 2173.27 ms โ no change โ
โ QQuery 22 โ 3739.74 ms โ 3703.37 ms โ no change โ
โ QQuery 23 โ 12492.36 ms โ 12431.98 ms โ no change โ
โ QQuery 24 โ 216.07 ms โ 209.73 ms โ no change โ
โ QQuery 25 โ 474.88 ms โ 481.87 ms โ no change โ
โ QQuery 26 โ 216.52 ms โ 221.48 ms โ no change โ
โ QQuery 27 โ 2699.74 ms โ 2686.46 ms โ no change โ
โ QQuery 28 โ 24092.13 ms โ 23987.16 ms โ no change โ
โ QQuery 29 โ 978.97 ms โ 953.06 ms โ no change โ
โ QQuery 30 โ 1296.55 ms โ 1318.28 ms โ no change โ
โ QQuery 31 โ 1297.85 ms โ 1338.78 ms โ no change โ
โ QQuery 32 โ 4919.38 ms โ 4499.39 ms โ +1.09x faster โ
โ QQuery 33 โ 5814.56 ms โ 5724.61 ms โ no change โ
โ QQuery 34 โ 5769.92 ms โ 5726.25 ms โ no change โ
โ QQuery 35 โ 1884.52 ms โ 1873.58 ms โ no change โ
โ QQuery 36 โ 66.11 ms โ 68.66 ms โ no change โ
โ QQuery 37 โ 45.93 ms โ 44.88 ms โ no change โ
โ QQuery 38 โ 63.87 ms โ 70.53 ms โ 1.10x slower โ
โ QQuery 39 โ 98.66 ms โ 103.01 ms โ no change โ
โ QQuery 40 โ 27.37 ms โ 26.79 ms โ no change โ
โ QQuery 41 โ 23.14 ms โ 23.49 ms โ no change โ
โ QQuery 42 โ 19.29 ms โ 19.89 ms โ no change โ
โโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโ
โ Benchmark Summary โ โ
โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ
โ Total Time (HEAD) โ 93092.83ms โ
โ Total Time (alamb_multi_byte_view_comparison) โ 92012.89ms โ
โ Average Time (HEAD) โ 2164.95ms โ
โ Average Time (alamb_multi_byte_view_comparison) โ 2139.83ms โ
โ Queries Faster โ 2 โ
โ Queries Slower โ 1 โ
โ Queries with No Change โ 40 โ
โ Queries with Failure โ 0 โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโ
--------------------
Benchmark tpch_mem_sf1.json
--------------------
โโโโโโโโโโโโโโโโณโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโ
โ Query โ HEAD โ alamb_multi_byte_view_comparison โ Change โ
โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ
โ QQuery 1 โ 143.22 ms โ 118.24 ms โ +1.21x faster โ
โ QQuery 2 โ 29.31 ms โ 29.34 ms โ no change โ
โ QQuery 3 โ 36.72 ms โ 38.94 ms โ 1.06x slower โ
โ QQuery 4 โ 29.68 ms โ 28.68 ms โ no change โ
โ QQuery 5 โ 90.00 ms โ 87.45 ms โ no change โ
โ QQuery 6 โ 24.32 ms โ 19.99 ms โ +1.22x faster โ
โ QQuery 7 โ 273.16 ms โ 226.90 ms โ +1.20x faster โ
โ QQuery 8 โ 43.96 ms โ 34.12 ms โ +1.29x faster โ
โ QQuery 9 โ 116.15 ms โ 106.64 ms โ +1.09x faster โ
โ QQuery 10 โ 75.61 ms โ 62.61 ms โ +1.21x faster โ
โ QQuery 11 โ 19.65 ms โ 19.71 ms โ no change โ
โ QQuery 12 โ 63.90 ms โ 51.38 ms โ +1.24x faster โ
โ QQuery 13 โ 56.73 ms โ 48.39 ms โ +1.17x faster โ
โ QQuery 14 โ 16.31 ms โ 14.01 ms โ +1.16x faster โ
โ QQuery 15 โ 27.79 ms โ 24.65 ms โ +1.13x faster โ
โ QQuery 16 โ 26.23 ms โ 24.79 ms โ +1.06x faster โ
โ QQuery 17 โ 179.65 ms โ 149.04 ms โ +1.21x faster โ
โ QQuery 18 โ 294.61 ms โ 276.83 ms โ +1.06x faster โ
โ QQuery 19 โ 45.16 ms โ 37.14 ms โ +1.22x faster โ
โ QQuery 20 โ 49.01 ms โ 50.20 ms โ no change โ
โ QQuery 21 โ 327.96 ms โ 301.84 ms โ +1.09x faster โ
โ QQuery 22 โ 17.25 ms โ 17.67 ms โ no change โ
โโโโโโโโโโโโโโโโดโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโ
โ Benchmark Summary โ โ
โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ
โ Total Time (HEAD) โ 1986.39ms โ
โ Total Time (alamb_multi_byte_view_comparison) โ 1768.54ms โ
โ Average Time (HEAD) โ 90.29ms โ
โ Average Time (alamb_multi_byte_view_comparison) โ 80.39ms โ
โ Queries Faster โ 15 โ
โ Queries Slower โ 1 โ
โ Queries with No Change โ 6 โ
โ Queries with Failure โ 0 โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโ
```
</p>
</details>
--
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: github-unsubscribe@datafusion.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: github-unsubscribe@datafusion.apache.org
For additional commands, e-mail: github-help@datafusion.apache.org
Re: [PR] Optimize muti-column grouping with StringView/ByteView [datafusion]
Posted by "alamb-ghbot (via GitHub)" <gi...@apache.org>.
alamb-ghbot commented on PR #19364:
URL: https://github.com/apache/datafusion/pull/19364#issuecomment-3665063070
๐ค `./gh_compare_branch.sh` [gh_compare_branch.sh](https://github.com/alamb/datafusion-benchmarking/blob/main/scripts/gh_compare_branch.sh) Running
Linux aal-dev 6.14.0-1018-gcp #19~24.04.1-Ubuntu SMP Wed Sep 24 23:23:09 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
Comparing alamb/multi_byte_view_comparison (39690eb4be07220a033e7940a25d3f27bddb0c29) to 50d20dd553e2974166821e3be9c962472062b250 [diff](https://github.com/apache/datafusion/compare/50d20dd553e2974166821e3be9c962472062b250..39690eb4be07220a033e7940a25d3f27bddb0c29) using: tpch
Results will be posted here when complete
--
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: github-unsubscribe@datafusion.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: github-unsubscribe@datafusion.apache.org
For additional commands, e-mail: github-help@datafusion.apache.org
Re: [PR] Optimize muti-column grouping with StringView/ByteView [datafusion]
Posted by "alamb (via GitHub)" <gi...@apache.org>.
alamb commented on PR #19364:
URL: https://github.com/apache/datafusion/pull/19364#issuecomment-3667520550
Marking back to draft as I try out some other ideas from @Dandandan
--
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: github-unsubscribe@datafusion.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: github-unsubscribe@datafusion.apache.org
For additional commands, e-mail: github-help@datafusion.apache.org
Re: [PR] Optimize muti-column grouping with StringView/ByteView [datafusion]
Posted by "alamb (via GitHub)" <gi...@apache.org>.
alamb commented on code in PR #19364:
URL: https://github.com/apache/datafusion/pull/19364#discussion_r2624769536
##########
datafusion/physical-plan/src/aggregates/group_values/multi_group_by/bytes_view.rs:
##########
@@ -246,19 +279,9 @@ impl<B: ByteViewType> ByteViewGroupValueBuilder<B> {
}
if exist_view_len <= 12 {
- let exist_inline = unsafe {
- GenericByteViewArray::<B>::inline_value(
- &exist_view,
- exist_view_len as usize,
- )
- };
- let input_inline = unsafe {
- GenericByteViewArray::<B>::inline_value(
- &input_view,
- input_view_len as usize,
- )
- };
- exist_inline == input_inline
+ // the views are inlined and the lengths are equal, so just
Review Comment:
Optimization 3: just compare the view directly rather than breaking it into parts first
##########
datafusion/physical-plan/src/aggregates/group_values/multi_group_by/bytes_view.rs:
##########
@@ -228,12 +251,22 @@ impl<B: ByteViewType> ByteViewGroupValueBuilder<B> {
if let Some(result) = nulls_equal_to(exist_null, input_null) {
return result;
}
+ self.do_equal_to_inner_values_only(lhs_row, array, rhs_row)
+ }
- // Otherwise, we need to check their values
- let exist_view = self.views[lhs_row];
+ /// Checks only the values for equality
+ #[inline(always)]
+ fn do_equal_to_inner_values_only(
+ &self,
+ lhs_row: usize,
+ array: &GenericByteViewArray<B>,
+ rhs_row: usize,
+ ) -> bool {
+ // SAFETY: the row indexes passed to vectorized_equal are in bounds
Review Comment:
Optimization 2: skip bounds check on data access
##########
datafusion/physical-plan/src/aggregates/group_values/multi_group_by/bytes_view.rs:
##########
@@ -117,25 +117,47 @@ impl<B: ByteViewType> ByteViewGroupValueBuilder<B> {
self.do_append_val_inner(arr, row);
}
- fn vectorized_equal_to_inner(
+ /// Comparison when there are no nulls in array
+ fn vectorized_equal_to_no_nulls(
Review Comment:
Change 1 is to create a second copy of the loop when there are no nulls (to avoid the null check and give LLVM a better chance to optimize)
--
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: github-unsubscribe@datafusion.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: github-unsubscribe@datafusion.apache.org
For additional commands, e-mail: github-help@datafusion.apache.org
Re: [PR] Optimize muti-column grouping with StringView/ByteView [datafusion]
Posted by "Dandandan (via GitHub)" <gi...@apache.org>.
Dandandan commented on PR #19364:
URL: https://github.com/apache/datafusion/pull/19364#issuecomment-3664020397
run benchmarks
--
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: github-unsubscribe@datafusion.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: github-unsubscribe@datafusion.apache.org
For additional commands, e-mail: github-help@datafusion.apache.org
Re: [PR] Optimize muti-column grouping with StringView/ByteView [datafusion]
Posted by "alamb (via GitHub)" <gi...@apache.org>.
alamb closed pull request #19364: Optimize muti-column grouping with StringView/ByteView
URL: https://github.com/apache/datafusion/pull/19364
--
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: github-unsubscribe@datafusion.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: github-unsubscribe@datafusion.apache.org
For additional commands, e-mail: github-help@datafusion.apache.org
Re: [PR] Optimize muti-column grouping with StringView/ByteView [datafusion]
Posted by "alamb (via GitHub)" <gi...@apache.org>.
alamb commented on PR #19364:
URL: https://github.com/apache/datafusion/pull/19364#issuecomment-3664994249
My runner script keeps dying when there is a problem with the scripts. I am working on a way to keep it going
--
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: github-unsubscribe@datafusion.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: github-unsubscribe@datafusion.apache.org
For additional commands, e-mail: github-help@datafusion.apache.org
Re: [PR] Optimize muti-column grouping with StringView/ByteView [datafusion]
Posted by "alamb (via GitHub)" <gi...@apache.org>.
alamb commented on PR #19364:
URL: https://github.com/apache/datafusion/pull/19364#issuecomment-3665085060
TPCH Q1 does have the pattern that is optimized in this PR (multiple group by columns) so it is plausible that the benefits are measured there
https://github.com/apache/datafusion/blob/32951c3c1c62e0ceef5aca200e81d2ea9ea124a7/benchmarks/queries/q1.sql#L1-L21
--
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: github-unsubscribe@datafusion.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: github-unsubscribe@datafusion.apache.org
For additional commands, e-mail: github-help@datafusion.apache.org
Re: [PR] Optimize muti-column grouping with StringView/ByteView [datafusion]
Posted by "alamb-ghbot (via GitHub)" <gi...@apache.org>.
alamb-ghbot commented on PR #19364:
URL: https://github.com/apache/datafusion/pull/19364#issuecomment-3665065739
๐ค: Benchmark completed
<details><summary>Details</summary>
<p>
```
Comparing HEAD and alamb_multi_byte_view_comparison
--------------------
Benchmark tpch_sf1.json
--------------------
โโโโโโโโโโโโโโโโณโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโ
โ Query โ HEAD โ alamb_multi_byte_view_comparison โ Change โ
โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ
โ QQuery 1 โ 212.24 ms โ 197.29 ms โ +1.08x faster โ
โ QQuery 2 โ 97.69 ms โ 94.62 ms โ no change โ
โ QQuery 3 โ 120.75 ms โ 123.57 ms โ no change โ
โ QQuery 4 โ 75.88 ms โ 76.94 ms โ no change โ
โ QQuery 5 โ 175.33 ms โ 175.18 ms โ no change โ
โ QQuery 6 โ 67.79 ms โ 67.88 ms โ no change โ
โ QQuery 7 โ 207.70 ms โ 209.71 ms โ no change โ
โ QQuery 8 โ 165.65 ms โ 165.16 ms โ no change โ
โ QQuery 9 โ 223.06 ms โ 224.60 ms โ no change โ
โ QQuery 10 โ 183.75 ms โ 183.52 ms โ no change โ
โ QQuery 11 โ 74.98 ms โ 73.93 ms โ no change โ
โ QQuery 12 โ 119.37 ms โ 118.45 ms โ no change โ
โ QQuery 13 โ 215.24 ms โ 213.45 ms โ no change โ
โ QQuery 14 โ 93.30 ms โ 88.17 ms โ +1.06x faster โ
โ QQuery 15 โ 122.27 ms โ 123.95 ms โ no change โ
โ QQuery 16 โ 58.69 ms โ 58.23 ms โ no change โ
โ QQuery 17 โ 269.21 ms โ 273.34 ms โ no change โ
โ QQuery 18 โ 307.57 ms โ 310.35 ms โ no change โ
โ QQuery 19 โ 136.22 ms โ 134.94 ms โ no change โ
โ QQuery 20 โ 124.35 ms โ 123.55 ms โ no change โ
โ QQuery 21 โ 266.98 ms โ 265.49 ms โ no change โ
โ QQuery 22 โ 43.72 ms โ 42.24 ms โ no change โ
โโโโโโโโโโโโโโโโดโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโ
โ Benchmark Summary โ โ
โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ
โ Total Time (HEAD) โ 3361.73ms โ
โ Total Time (alamb_multi_byte_view_comparison) โ 3344.56ms โ
โ Average Time (HEAD) โ 152.81ms โ
โ Average Time (alamb_multi_byte_view_comparison) โ 152.03ms โ
โ Queries Faster โ 2 โ
โ Queries Slower โ 0 โ
โ Queries with No Change โ 20 โ
โ Queries with Failure โ 0 โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโ
```
</p>
</details>
--
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: github-unsubscribe@datafusion.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: github-unsubscribe@datafusion.apache.org
For additional commands, e-mail: github-help@datafusion.apache.org
Re: [PR] Optimize muti-column grouping with StringView/ByteView [datafusion]
Posted by "alamb (via GitHub)" <gi...@apache.org>.
alamb commented on PR #19364:
URL: https://github.com/apache/datafusion/pull/19364#issuecomment-3675796844
I have a better version here:
- https://github.com/apache/datafusion/pull/19413
--
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: github-unsubscribe@datafusion.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: github-unsubscribe@datafusion.apache.org
For additional commands, e-mail: github-help@datafusion.apache.org
Re: [PR] Optimize muti-column grouping with StringView/ByteView [datafusion]
Posted by "alamb (via GitHub)" <gi...@apache.org>.
alamb commented on PR #19364:
URL: https://github.com/apache/datafusion/pull/19364#issuecomment-3662419194
run benchmark tpch
--
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: github-unsubscribe@datafusion.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: github-unsubscribe@datafusion.apache.org
For additional commands, e-mail: github-help@datafusion.apache.org