You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pinot.apache.org by GitBox <gi...@apache.org> on 2022/02/15 11:00:01 UTC
[GitHub] [pinot] richardstartin commented on pull request #8195: No dictionary group by perf
richardstartin commented on pull request #8195:
URL: https://github.com/apache/pinot/pull/8195#issuecomment-1040135103
Added another benchmark with a group by on a raw string column. The effect is mostly drowned out by excessive String allocation (no interning 馃槩), but this branch still offers a significant improvement. Note that the majority of the branches are pruned by tiered compilation and are entirely predictable.
Before
```
Benchmark (_numRows) (_query) (_scenario) Mode Cnt Score Error Units
BenchmarkQueries.query 1500000 SELECT RAW_STRING_COL,RAW_INT_COL,INT_COL,COUNT(*) FROM MyTable GROUP BY RAW_STRING_COL,RAW_INT_COL,INT_COL EXP(0.001) avgt 5 401.449 卤 40.560 ms/op
BenchmarkQueries.query:路gc.alloc.rate 1500000 SELECT RAW_STRING_COL,RAW_INT_COL,INT_COL,COUNT(*) FROM MyTable GROUP BY RAW_STRING_COL,RAW_INT_COL,INT_COL EXP(0.001) avgt 5 594.902 卤 1280.361 MB/sec
BenchmarkQueries.query:路gc.alloc.rate.norm 1500000 SELECT RAW_STRING_COL,RAW_INT_COL,INT_COL,COUNT(*) FROM MyTable GROUP BY RAW_STRING_COL,RAW_INT_COL,INT_COL EXP(0.001) avgt 5 352657742.400 卤 758730386.850 B/op
BenchmarkQueries.query:路gc.churn.G1_Eden_Space 1500000 SELECT RAW_STRING_COL,RAW_INT_COL,INT_COL,COUNT(*) FROM MyTable GROUP BY RAW_STRING_COL,RAW_INT_COL,INT_COL EXP(0.001) avgt 5 816.002 卤 1783.388 MB/sec
BenchmarkQueries.query:路gc.churn.G1_Eden_Space.norm 1500000 SELECT RAW_STRING_COL,RAW_INT_COL,INT_COL,COUNT(*) FROM MyTable GROUP BY RAW_STRING_COL,RAW_INT_COL,INT_COL EXP(0.001) avgt 5 490244232.533 卤 1075546345.417 B/op
BenchmarkQueries.query:路gc.churn.G1_Old_Gen 1500000 SELECT RAW_STRING_COL,RAW_INT_COL,INT_COL,COUNT(*) FROM MyTable GROUP BY RAW_STRING_COL,RAW_INT_COL,INT_COL EXP(0.001) avgt 5 13.856 卤 50.128 MB/sec
BenchmarkQueries.query:路gc.churn.G1_Old_Gen.norm 1500000 SELECT RAW_STRING_COL,RAW_INT_COL,INT_COL,COUNT(*) FROM MyTable GROUP BY RAW_STRING_COL,RAW_INT_COL,INT_COL EXP(0.001) avgt 5 8247320.000 卤 29878654.316 B/op
BenchmarkQueries.query:路gc.churn.G1_Survivor_Space 1500000 SELECT RAW_STRING_COL,RAW_INT_COL,INT_COL,COUNT(*) FROM MyTable GROUP BY RAW_STRING_COL,RAW_INT_COL,INT_COL EXP(0.001) avgt 5 1.813 卤 15.611 MB/sec
BenchmarkQueries.query:路gc.churn.G1_Survivor_Space.norm 1500000 SELECT RAW_STRING_COL,RAW_INT_COL,INT_COL,COUNT(*) FROM MyTable GROUP BY RAW_STRING_COL,RAW_INT_COL,INT_COL EXP(0.001) avgt 5 1118481.067 卤 9630459.297 B/op
BenchmarkQueries.query:路gc.count 1500000 SELECT RAW_STRING_COL,RAW_INT_COL,INT_COL,COUNT(*) FROM MyTable GROUP BY RAW_STRING_COL,RAW_INT_COL,INT_COL EXP(0.001) avgt 5 4.000 counts
BenchmarkQueries.query:路gc.time 1500000 SELECT RAW_STRING_COL,RAW_INT_COL,INT_COL,COUNT(*) FROM MyTable GROUP BY RAW_STRING_COL,RAW_INT_COL,INT_COL EXP(0.001) avgt 5 259.000 ms
BenchmarkQueries.query 1500000 SELECT RAW_STRING_COL,RAW_INT_COL,INT_COL,COUNT(*) FROM MyTable GROUP BY RAW_STRING_COL,RAW_INT_COL,INT_COL EXP(0.5) avgt 5 219.553 卤 2.789 ms/op
BenchmarkQueries.query:路gc.alloc.rate 1500000 SELECT RAW_STRING_COL,RAW_INT_COL,INT_COL,COUNT(*) FROM MyTable GROUP BY RAW_STRING_COL,RAW_INT_COL,INT_COL EXP(0.5) avgt 5 947.525 卤 2038.543 MB/sec
BenchmarkQueries.query:路gc.alloc.rate.norm 1500000 SELECT RAW_STRING_COL,RAW_INT_COL,INT_COL,COUNT(*) FROM MyTable GROUP BY RAW_STRING_COL,RAW_INT_COL,INT_COL EXP(0.5) avgt 5 318633695.680 卤 685512352.413 B/op
BenchmarkQueries.query:路gc.churn.G1_Eden_Space 1500000 SELECT RAW_STRING_COL,RAW_INT_COL,INT_COL,COUNT(*) FROM MyTable GROUP BY RAW_STRING_COL,RAW_INT_COL,INT_COL EXP(0.5) avgt 5 1342.334 卤 1944.947 MB/sec
BenchmarkQueries.query:路gc.churn.G1_Eden_Space.norm 1500000 SELECT RAW_STRING_COL,RAW_INT_COL,INT_COL,COUNT(*) FROM MyTable GROUP BY RAW_STRING_COL,RAW_INT_COL,INT_COL EXP(0.5) avgt 5 451726540.800 卤 656852332.622 B/op
BenchmarkQueries.query:路gc.churn.G1_Old_Gen 1500000 SELECT RAW_STRING_COL,RAW_INT_COL,INT_COL,COUNT(*) FROM MyTable GROUP BY RAW_STRING_COL,RAW_INT_COL,INT_COL EXP(0.5) avgt 5 0.056 卤 0.383 MB/sec
BenchmarkQueries.query:路gc.churn.G1_Old_Gen.norm 1500000 SELECT RAW_STRING_COL,RAW_INT_COL,INT_COL,COUNT(*) FROM MyTable GROUP BY RAW_STRING_COL,RAW_INT_COL,INT_COL EXP(0.5) avgt 5 18864.320 卤 128684.949 B/op
BenchmarkQueries.query:路gc.count 1500000 SELECT RAW_STRING_COL,RAW_INT_COL,INT_COL,COUNT(*) FROM MyTable GROUP BY RAW_STRING_COL,RAW_INT_COL,INT_COL EXP(0.5) avgt 5 6.000 counts
BenchmarkQueries.query:路gc.time 1500000 SELECT RAW_STRING_COL,RAW_INT_COL,INT_COL,COUNT(*) FROM MyTable GROUP BY RAW_STRING_COL,RAW_INT_COL,INT_COL EXP(0.5) avgt 5 20.000 ms
BenchmarkQueries.query 1500000 SELECT RAW_STRING_COL,RAW_INT_COL,INT_COL,COUNT(*) FROM MyTable GROUP BY RAW_STRING_COL,RAW_INT_COL,INT_COL EXP(0.999) avgt 5 211.974 卤 4.234 ms/op
BenchmarkQueries.query:路gc.alloc.rate 1500000 SELECT RAW_STRING_COL,RAW_INT_COL,INT_COL,COUNT(*) FROM MyTable GROUP BY RAW_STRING_COL,RAW_INT_COL,INT_COL EXP(0.999) avgt 5 970.031 卤 2086.994 MB/sec
BenchmarkQueries.query:路gc.alloc.rate.norm 1500000 SELECT RAW_STRING_COL,RAW_INT_COL,INT_COL,COUNT(*) FROM MyTable GROUP BY RAW_STRING_COL,RAW_INT_COL,INT_COL EXP(0.999) avgt 5 318102240.640 卤 684372243.782 B/op
BenchmarkQueries.query:路gc.churn.G1_Eden_Space 1500000 SELECT RAW_STRING_COL,RAW_INT_COL,INT_COL,COUNT(*) FROM MyTable GROUP BY RAW_STRING_COL,RAW_INT_COL,INT_COL EXP(0.999) avgt 5 1127.183 卤 696.552 MB/sec
BenchmarkQueries.query:路gc.churn.G1_Eden_Space.norm 1500000 SELECT RAW_STRING_COL,RAW_INT_COL,INT_COL,COUNT(*) FROM MyTable GROUP BY RAW_STRING_COL,RAW_INT_COL,INT_COL EXP(0.999) avgt 5 370147328.000 卤 229406341.423 B/op
BenchmarkQueries.query:路gc.churn.G1_Old_Gen 1500000 SELECT RAW_STRING_COL,RAW_INT_COL,INT_COL,COUNT(*) FROM MyTable GROUP BY RAW_STRING_COL,RAW_INT_COL,INT_COL EXP(0.999) avgt 5 0.175 卤 0.974 MB/sec
BenchmarkQueries.query:路gc.churn.G1_Old_Gen.norm 1500000 SELECT RAW_STRING_COL,RAW_INT_COL,INT_COL,COUNT(*) FROM MyTable GROUP BY RAW_STRING_COL,RAW_INT_COL,INT_COL EXP(0.999) avgt 5 57655.680 卤 321478.066 B/op
BenchmarkQueries.query:路gc.churn.G1_Survivor_Space 1500000 SELECT RAW_STRING_COL,RAW_INT_COL,INT_COL,COUNT(*) FROM MyTable GROUP BY RAW_STRING_COL,RAW_INT_COL,INT_COL EXP(0.999) avgt 5 0.255 卤 2.194 MB/sec
BenchmarkQueries.query:路gc.churn.G1_Survivor_Space.norm 1500000 SELECT RAW_STRING_COL,RAW_INT_COL,INT_COL,COUNT(*) FROM MyTable GROUP BY RAW_STRING_COL,RAW_INT_COL,INT_COL EXP(0.999) avgt 5 83886.080 卤 722284.447 B/op
BenchmarkQueries.query:路gc.count 1500000 SELECT RAW_STRING_COL,RAW_INT_COL,INT_COL,COUNT(*) FROM MyTable GROUP BY RAW_STRING_COL,RAW_INT_COL,INT_COL EXP(0.999) avgt 5 6.000 counts
BenchmarkQueries.query:路gc.time 1500000 SELECT RAW_STRING_COL,RAW_INT_COL,INT_COL,COUNT(*) FROM MyTable GROUP BY RAW_STRING_COL,RAW_INT_COL,INT_COL EXP(0.999) avgt 5 14.000 ms
```
After
```
Benchmark (_numRows) (_query) (_scenario) Mode Cnt Score Error Units
BenchmarkQueries.query 1500000 SELECT RAW_STRING_COL,RAW_INT_COL,INT_COL,COUNT(*) FROM MyTable GROUP BY RAW_STRING_COL,RAW_INT_COL,INT_COL EXP(0.001) avgt 5 347.712 卤 27.737 ms/op
BenchmarkQueries.query:路gc.alloc.rate 1500000 SELECT RAW_STRING_COL,RAW_INT_COL,INT_COL,COUNT(*) FROM MyTable GROUP BY RAW_STRING_COL,RAW_INT_COL,INT_COL EXP(0.001) avgt 5 434.512 卤 935.011 MB/sec
BenchmarkQueries.query:路gc.alloc.rate.norm 1500000 SELECT RAW_STRING_COL,RAW_INT_COL,INT_COL,COUNT(*) FROM MyTable GROUP BY RAW_STRING_COL,RAW_INT_COL,INT_COL EXP(0.001) avgt 5 235552355.733 卤 506651891.452 B/op
BenchmarkQueries.query:路gc.churn.G1_Eden_Space 1500000 SELECT RAW_STRING_COL,RAW_INT_COL,INT_COL,COUNT(*) FROM MyTable GROUP BY RAW_STRING_COL,RAW_INT_COL,INT_COL EXP(0.001) avgt 5 446.016 卤 1000.169 MB/sec
BenchmarkQueries.query:路gc.churn.G1_Eden_Space.norm 1500000 SELECT RAW_STRING_COL,RAW_INT_COL,INT_COL,COUNT(*) FROM MyTable GROUP BY RAW_STRING_COL,RAW_INT_COL,INT_COL EXP(0.001) avgt 5 241731720.533 卤 541560831.721 B/op
BenchmarkQueries.query:路gc.churn.G1_Old_Gen 1500000 SELECT RAW_STRING_COL,RAW_INT_COL,INT_COL,COUNT(*) FROM MyTable GROUP BY RAW_STRING_COL,RAW_INT_COL,INT_COL EXP(0.001) avgt 5 11.443 卤 44.382 MB/sec
BenchmarkQueries.query:路gc.churn.G1_Old_Gen.norm 1500000 SELECT RAW_STRING_COL,RAW_INT_COL,INT_COL,COUNT(*) FROM MyTable GROUP BY RAW_STRING_COL,RAW_INT_COL,INT_COL EXP(0.001) avgt 5 6151645.867 卤 23774788.552 B/op
BenchmarkQueries.query:路gc.churn.G1_Survivor_Space 1500000 SELECT RAW_STRING_COL,RAW_INT_COL,INT_COL,COUNT(*) FROM MyTable GROUP BY RAW_STRING_COL,RAW_INT_COL,INT_COL EXP(0.001) avgt 5 1.013 卤 8.723 MB/sec
BenchmarkQueries.query:路gc.churn.G1_Survivor_Space.norm 1500000 SELECT RAW_STRING_COL,RAW_INT_COL,INT_COL,COUNT(*) FROM MyTable GROUP BY RAW_STRING_COL,RAW_INT_COL,INT_COL EXP(0.001) avgt 5 559240.533 卤 4815229.649 B/op
BenchmarkQueries.query:路gc.count 1500000 SELECT RAW_STRING_COL,RAW_INT_COL,INT_COL,COUNT(*) FROM MyTable GROUP BY RAW_STRING_COL,RAW_INT_COL,INT_COL EXP(0.001) avgt 5 4.000 counts
BenchmarkQueries.query:路gc.time 1500000 SELECT RAW_STRING_COL,RAW_INT_COL,INT_COL,COUNT(*) FROM MyTable GROUP BY RAW_STRING_COL,RAW_INT_COL,INT_COL EXP(0.001) avgt 5 129.000 ms
BenchmarkQueries.query 1500000 SELECT RAW_STRING_COL,RAW_INT_COL,INT_COL,COUNT(*) FROM MyTable GROUP BY RAW_STRING_COL,RAW_INT_COL,INT_COL EXP(0.5) avgt 5 185.713 卤 4.709 ms/op
BenchmarkQueries.query:路gc.alloc.rate 1500000 SELECT RAW_STRING_COL,RAW_INT_COL,INT_COL,COUNT(*) FROM MyTable GROUP BY RAW_STRING_COL,RAW_INT_COL,INT_COL EXP(0.5) avgt 5 684.654 卤 1472.475 MB/sec
BenchmarkQueries.query:路gc.alloc.rate.norm 1500000 SELECT RAW_STRING_COL,RAW_INT_COL,INT_COL,COUNT(*) FROM MyTable GROUP BY RAW_STRING_COL,RAW_INT_COL,INT_COL EXP(0.5) avgt 5 194064742.933 卤 417372573.618 B/op
BenchmarkQueries.query:路gc.churn.G1_Eden_Space 1500000 SELECT RAW_STRING_COL,RAW_INT_COL,INT_COL,COUNT(*) FROM MyTable GROUP BY RAW_STRING_COL,RAW_INT_COL,INT_COL EXP(0.5) avgt 5 742.663 卤 2610.572 MB/sec
BenchmarkQueries.query:路gc.churn.G1_Eden_Space.norm 1500000 SELECT RAW_STRING_COL,RAW_INT_COL,INT_COL,COUNT(*) FROM MyTable GROUP BY RAW_STRING_COL,RAW_INT_COL,INT_COL EXP(0.5) avgt 5 210449203.200 卤 739758601.746 B/op
BenchmarkQueries.query:路gc.churn.G1_Old_Gen 1500000 SELECT RAW_STRING_COL,RAW_INT_COL,INT_COL,COUNT(*) FROM MyTable GROUP BY RAW_STRING_COL,RAW_INT_COL,INT_COL EXP(0.5) avgt 5 0.022 卤 0.186 MB/sec
BenchmarkQueries.query:路gc.churn.G1_Old_Gen.norm 1500000 SELECT RAW_STRING_COL,RAW_INT_COL,INT_COL,COUNT(*) FROM MyTable GROUP BY RAW_STRING_COL,RAW_INT_COL,INT_COL EXP(0.5) avgt 5 6095.467 卤 52483.806 B/op
BenchmarkQueries.query:路gc.count 1500000 SELECT RAW_STRING_COL,RAW_INT_COL,INT_COL,COUNT(*) FROM MyTable GROUP BY RAW_STRING_COL,RAW_INT_COL,INT_COL EXP(0.5) avgt 5 3.000 counts
BenchmarkQueries.query:路gc.time 1500000 SELECT RAW_STRING_COL,RAW_INT_COL,INT_COL,COUNT(*) FROM MyTable GROUP BY RAW_STRING_COL,RAW_INT_COL,INT_COL EXP(0.5) avgt 5 7.000 ms
BenchmarkQueries.query 1500000 SELECT RAW_STRING_COL,RAW_INT_COL,INT_COL,COUNT(*) FROM MyTable GROUP BY RAW_STRING_COL,RAW_INT_COL,INT_COL EXP(0.999) avgt 5 183.992 卤 7.627 ms/op
BenchmarkQueries.query:路gc.alloc.rate 1500000 SELECT RAW_STRING_COL,RAW_INT_COL,INT_COL,COUNT(*) FROM MyTable GROUP BY RAW_STRING_COL,RAW_INT_COL,INT_COL EXP(0.999) avgt 5 686.789 卤 1477.255 MB/sec
BenchmarkQueries.query:路gc.alloc.rate.norm 1500000 SELECT RAW_STRING_COL,RAW_INT_COL,INT_COL,COUNT(*) FROM MyTable GROUP BY RAW_STRING_COL,RAW_INT_COL,INT_COL EXP(0.999) avgt 5 193360184.800 卤 415859888.283 B/op
BenchmarkQueries.query:路gc.churn.G1_Eden_Space 1500000 SELECT RAW_STRING_COL,RAW_INT_COL,INT_COL,COUNT(*) FROM MyTable GROUP BY RAW_STRING_COL,RAW_INT_COL,INT_COL EXP(0.999) avgt 5 919.579 卤 1979.891 MB/sec
BenchmarkQueries.query:路gc.churn.G1_Eden_Space.norm 1500000 SELECT RAW_STRING_COL,RAW_INT_COL,INT_COL,COUNT(*) FROM MyTable GROUP BY RAW_STRING_COL,RAW_INT_COL,INT_COL EXP(0.999) avgt 5 259487607.467 卤 558628861.127 B/op
BenchmarkQueries.query:路gc.churn.G1_Old_Gen 1500000 SELECT RAW_STRING_COL,RAW_INT_COL,INT_COL,COUNT(*) FROM MyTable GROUP BY RAW_STRING_COL,RAW_INT_COL,INT_COL EXP(0.999) avgt 5 0.032 卤 0.190 MB/sec
BenchmarkQueries.query:路gc.churn.G1_Old_Gen.norm 1500000 SELECT RAW_STRING_COL,RAW_INT_COL,INT_COL,COUNT(*) FROM MyTable GROUP BY RAW_STRING_COL,RAW_INT_COL,INT_COL EXP(0.999) avgt 5 8994.933 卤 53455.434 B/op
BenchmarkQueries.query:路gc.count 1500000 SELECT RAW_STRING_COL,RAW_INT_COL,INT_COL,COUNT(*) FROM MyTable GROUP BY RAW_STRING_COL,RAW_INT_COL,INT_COL EXP(0.999) avgt 5 4.000 counts
BenchmarkQueries.query:路gc.time 1500000 SELECT RAW_STRING_COL,RAW_INT_COL,INT_COL,COUNT(*) FROM MyTable GROUP BY RAW_STRING_COL,RAW_INT_COL,INT_COL EXP(0.999) avgt 5 22.000 ms
```
--
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: commits-unsubscribe@pinot.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For additional commands, e-mail: commits-help@pinot.apache.org