yashmayya commented on PR #13758:
URL: https://github.com/apache/pinot/pull/13758#issuecomment-2275218314

   @gortiz I used a modified version of the mode aggregation benchmark (with 
some changes to add a case where all values in the block are `null` and 
deterministic null handling enabled / disabled) that you added in 
https://github.com/apache/pinot/pull/12227/ and here are the results:
   
   Without the optimization from this PR (`_nullPeriod` = `1` implies all the 
values in a block are `null`):
   
   ```
   Benchmark                      (_nullHandlingEnabled)  (_nullPeriod)   Mode  
Cnt   Score   Error   Units
   BenchmarkModeAggregation.test                    true              1  thrpt  
 50  46.623 ± 0.180  ops/ms
   BenchmarkModeAggregation.test                    true              2  thrpt  
 50  36.023 ± 0.185  ops/ms
   BenchmarkModeAggregation.test                    true              4  thrpt  
 50  32.064 ± 0.142  ops/ms
   BenchmarkModeAggregation.test                    true              8  thrpt  
 50  31.526 ± 0.212  ops/ms
   BenchmarkModeAggregation.test                    true             16  thrpt  
 50  31.196 ± 0.443  ops/ms
   BenchmarkModeAggregation.test                    true             32  thrpt  
 50  32.062 ± 0.198  ops/ms
   BenchmarkModeAggregation.test                    true             64  thrpt  
 50  31.992 ± 0.215  ops/ms
   BenchmarkModeAggregation.test                    true            128  thrpt  
 50  32.423 ± 0.166  ops/ms
   BenchmarkModeAggregation.test                   false              1  thrpt  
 50  28.642 ± 0.380  ops/ms
   BenchmarkModeAggregation.test                   false              2  thrpt  
 50  27.387 ± 0.258  ops/ms
   BenchmarkModeAggregation.test                   false              4  thrpt  
 50  28.230 ± 0.406  ops/ms
   BenchmarkModeAggregation.test                   false              8  thrpt  
 50  27.588 ± 0.335  ops/ms
   BenchmarkModeAggregation.test                   false             16  thrpt  
 50  27.950 ± 0.275  ops/ms
   BenchmarkModeAggregation.test                   false             32  thrpt  
 50  27.816 ± 0.480  ops/ms
   BenchmarkModeAggregation.test                   false             64  thrpt  
 50  28.263 ± 0.247  ops/ms
   BenchmarkModeAggregation.test                   false            128  thrpt  
 50  27.943 ± 0.175  ops/ms
   ```
   
   With the optimization from this PR:
   
   ```
   Benchmark                      (_nullHandlingEnabled)  (_nullPeriod)   Mode  
Cnt   Score   Error   Units
   BenchmarkModeAggregation.test                    true              1  thrpt  
 50  154024.598 ± 641.790  ops/ms
   BenchmarkModeAggregation.test                    true              2  thrpt  
 50  36.364 ± 0.209  ops/ms
   BenchmarkModeAggregation.test                    true              4  thrpt  
 50  32.198 ± 0.148  ops/ms
   BenchmarkModeAggregation.test                    true              8  thrpt  
 50  29.141 ± 0.235  ops/ms
   BenchmarkModeAggregation.test                    true             16  thrpt  
 50  31.579 ± 0.272  ops/ms
   BenchmarkModeAggregation.test                    true             32  thrpt  
 50  32.216 ± 0.154  ops/ms
   BenchmarkModeAggregation.test                    true             64  thrpt  
 50  32.227 ± 0.128  ops/ms
   BenchmarkModeAggregation.test                    true            128  thrpt  
 50  32.264 ± 0.130  ops/ms
   BenchmarkModeAggregation.test                   false              1  thrpt  
 50  27.662 ± 0.308  ops/ms
   BenchmarkModeAggregation.test                   false              2  thrpt  
 50  28.190 ± 0.161  ops/ms
   BenchmarkModeAggregation.test                   false              4  thrpt  
 50  27.893 ± 0.180  ops/ms
   BenchmarkModeAggregation.test                   false              8  thrpt  
 50  28.095 ± 0.144  ops/ms
   BenchmarkModeAggregation.test                   false             16  thrpt  
 50  28.844 ± 0.619  ops/ms
   BenchmarkModeAggregation.test                   false             32  thrpt  
 50  28.177 ± 0.293  ops/ms
   BenchmarkModeAggregation.test                   false             64  thrpt  
 50  28.170 ± 0.169  ops/ms
   BenchmarkModeAggregation.test                   false            128  thrpt  
 50  28.215 ± 0.298  ops/ms
   ```
   
   So the cases where not all values in a block are null are basically 
unaffected but there is indeed a huge increase (~3000X) in the throughput for 
the all nulls case.


-- 
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