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