bziobrowski opened a new pull request, #15130:
URL: https://github.com/apache/pinot/pull/15130

   PR changes how data is loaded into and kept in pre-loaded dimension tables:
   - lookup table is changed from generic HashMap to 
Object2ObjectOpenCustomHashMap
   - map re-sizings are limited by counting total number of documents prior to 
inserting into lookup table 
   - lookup  key and values are now Object tables, without being wrapped in 
PrimaryKey and GenericRow objects 
   - key columns are not repeated in values table
   
   With BenchmarkDimensionTableOverhead I observed a 2.5 times memory usage 
reduction for the generated test data set and about 30% speedup in lookup table 
initialization.
   
   Benchmark results:
   
   master branch:
   ```
   Benchmark                                     (_numRows)  (_numSegments)  
(_scenario)  Mode  Cnt           Score       Error   Units
   benchmarkFastTableManager                        3000000               1   
EXP(0.001)  avgt    5        3324.506 ±   842.324   ms/op
   benchmarkFastTableManager:gc.alloc.rate          3000000               1   
EXP(0.001)  avgt    5         468.456 ±    57.758  MB/sec
   benchmarkFastTableManager:gc.alloc.rate.norm     3000000               1   
EXP(0.001)  avgt    5  6431606028.800 ± 87270.360    B/op
   benchmarkFastTableManager:gc.count               3000000               1   
EXP(0.001)  avgt    5         152.000              counts
   benchmarkFastTableManager:gc.time                3000000               1   
EXP(0.001)  avgt    5        4869.000                  ms
   ```
   
   this branch:
   
   ```
   Benchmark                                     (_numRows)  (_numSegments)  
(_scenario)  Mode  Cnt           Score       Error   Units
   benchmarkFastTableManager                        3000000               1   
EXP(0.001)  avgt    5        2345.304 ±   276.870   ms/op
   benchmarkFastTableManager:gc.alloc.rate          3000000               1   
EXP(0.001)  avgt    5         414.226 ±    28.436  MB/sec
   benchmarkFastTableManager:gc.alloc.rate.norm     3000000               1   
EXP(0.001)  avgt    5  5063652691.200 ± 53550.849    B/op
   benchmarkFastTableManager:gc.count               3000000               1   
EXP(0.001)  avgt    5         139.000              counts
   benchmarkFastTableManager:gc.time                3000000               1   
EXP(0.001)  avgt    5        2365.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-unsubscr...@pinot.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@pinot.apache.org
For additional commands, e-mail: commits-h...@pinot.apache.org

Reply via email to