[ 
https://issues.apache.org/jira/browse/HBASE-28256?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17799200#comment-17799200
 ] 

Becker Ewing commented on HBASE-28256:
--------------------------------------

I've run some updated benchmarks that factor in a few more variables:
 # vLongs of every size are tested
 # An additional test parameter for whether to use the NONE recycler or not is 
introduced (to account for the refCnt checking overhead)
 # An additional readVLong method based off the one introduced in 
https://issues.apache.org/jira/browse/HBASE-14186 is added to the benchmarks

The benchmarks and results are available at: 
[https://gist.github.com/jbewing/449063eda1dde2c872846ec76c7a10f7]

 

Results
{noformat}
Benchmark                                                
(shouldUseNoneRecycler)              (vlong)  Mode  Cnt   Score   Error  Units
ReadVLongBenchmark.readVLongHBase14186_OffHeapBB                            
true                    9  avgt    5   2.238 ± 0.037  ns/op
ReadVLongBenchmark.readVLongHBase14186_OffHeapBB                            
true                  512  avgt    5   2.693 ± 0.034  ns/op
ReadVLongBenchmark.readVLongHBase14186_OffHeapBB                            
true                80000  avgt    5   2.911 ± 0.198  ns/op
ReadVLongBenchmark.readVLongHBase14186_OffHeapBB                            
true           2146483640  avgt    5   2.692 ± 0.092  ns/op
ReadVLongBenchmark.readVLongHBase14186_OffHeapBB                            
true         548755813887  avgt    5   2.914 ± 0.024  ns/op
ReadVLongBenchmark.readVLongHBase14186_OffHeapBB                            
true        1700104028981  avgt    5   3.302 ± 0.338  ns/op
ReadVLongBenchmark.readVLongHBase14186_OffHeapBB                            
true    35028797018963967  avgt    5   3.828 ± 0.081  ns/op
ReadVLongBenchmark.readVLongHBase14186_OffHeapBB                            
true  9123372036854775807  avgt    5   4.066 ± 0.424  ns/op
ReadVLongBenchmark.readVLongHBase14186_OffHeapBB                           
false                    9  avgt    5   2.412 ± 0.027  ns/op
ReadVLongBenchmark.readVLongHBase14186_OffHeapBB                           
false                  512  avgt    5   4.180 ± 0.023  ns/op
ReadVLongBenchmark.readVLongHBase14186_OffHeapBB                           
false                80000  avgt    5   6.041 ± 0.272  ns/op
ReadVLongBenchmark.readVLongHBase14186_OffHeapBB                           
false           2146483640  avgt    5   4.284 ± 0.054  ns/op
ReadVLongBenchmark.readVLongHBase14186_OffHeapBB                           
false         548755813887  avgt    5   6.019 ± 0.237  ns/op
ReadVLongBenchmark.readVLongHBase14186_OffHeapBB                           
false        1700104028981  avgt    5   6.782 ± 0.095  ns/op
ReadVLongBenchmark.readVLongHBase14186_OffHeapBB                           
false    35028797018963967  avgt    5   8.371 ± 0.215  ns/op
ReadVLongBenchmark.readVLongHBase14186_OffHeapBB                           
false  9123372036854775807  avgt    5  10.275 ± 1.541  ns/op
ReadVLongBenchmark.readVLongHBase14186_OffHeapBB_Padded                     
true                    9  avgt    5   2.608 ± 2.881  ns/op
ReadVLongBenchmark.readVLongHBase14186_OffHeapBB_Padded                     
true                  512  avgt    5   2.679 ± 0.679  ns/op
ReadVLongBenchmark.readVLongHBase14186_OffHeapBB_Padded                     
true                80000  avgt    5   2.867 ± 0.191  ns/op
ReadVLongBenchmark.readVLongHBase14186_OffHeapBB_Padded                     
true           2146483640  avgt    5   2.629 ± 0.029  ns/op
ReadVLongBenchmark.readVLongHBase14186_OffHeapBB_Padded                     
true         548755813887  avgt    5   2.906 ± 0.016  ns/op
ReadVLongBenchmark.readVLongHBase14186_OffHeapBB_Padded                     
true        1700104028981  avgt    5   3.243 ± 0.096  ns/op
ReadVLongBenchmark.readVLongHBase14186_OffHeapBB_Padded                     
true    35028797018963967  avgt    5   3.750 ± 0.032  ns/op
ReadVLongBenchmark.readVLongHBase14186_OffHeapBB_Padded                     
true  9123372036854775807  avgt    5   3.985 ± 0.073  ns/op
ReadVLongBenchmark.readVLongHBase14186_OffHeapBB_Padded                    
false                    9  avgt    5   2.367 ± 0.054  ns/op
ReadVLongBenchmark.readVLongHBase14186_OffHeapBB_Padded                    
false                  512  avgt    5   4.277 ± 0.337  ns/op
ReadVLongBenchmark.readVLongHBase14186_OffHeapBB_Padded                    
false                80000  avgt    5   5.984 ± 0.089  ns/op
ReadVLongBenchmark.readVLongHBase14186_OffHeapBB_Padded                    
false           2146483640  avgt    5   4.216 ± 0.040  ns/op
ReadVLongBenchmark.readVLongHBase14186_OffHeapBB_Padded                    
false         548755813887  avgt    5   6.084 ± 0.750  ns/op
ReadVLongBenchmark.readVLongHBase14186_OffHeapBB_Padded                    
false        1700104028981  avgt    5   6.632 ± 0.039  ns/op
ReadVLongBenchmark.readVLongHBase14186_OffHeapBB_Padded                    
false    35028797018963967  avgt    5   8.539 ± 2.085  ns/op
ReadVLongBenchmark.readVLongHBase14186_OffHeapBB_Padded                    
false  9123372036854775807  avgt    5   9.955 ± 0.293  ns/op
ReadVLongBenchmark.readVLongHBase14186_OnHeapBB                             
true                    9  avgt    5   2.398 ± 0.118  ns/op
ReadVLongBenchmark.readVLongHBase14186_OnHeapBB                             
true                  512  avgt    5   2.834 ± 0.004  ns/op
ReadVLongBenchmark.readVLongHBase14186_OnHeapBB                             
true                80000  avgt    5   3.663 ± 0.038  ns/op
ReadVLongBenchmark.readVLongHBase14186_OnHeapBB                             
true           2146483640  avgt    5   2.811 ± 0.024  ns/op
ReadVLongBenchmark.readVLongHBase14186_OnHeapBB                             
true         548755813887  avgt    5   3.685 ± 0.033  ns/op
ReadVLongBenchmark.readVLongHBase14186_OnHeapBB                             
true        1700104028981  avgt    5   3.693 ± 0.078  ns/op
ReadVLongBenchmark.readVLongHBase14186_OnHeapBB                             
true    35028797018963967  avgt    5   4.935 ± 0.785  ns/op
ReadVLongBenchmark.readVLongHBase14186_OnHeapBB                             
true  9123372036854775807  avgt    5   5.466 ± 0.026  ns/op
ReadVLongBenchmark.readVLongHBase14186_OnHeapBB                            
false                    9  avgt    5   2.554 ± 0.036  ns/op
ReadVLongBenchmark.readVLongHBase14186_OnHeapBB                            
false                  512  avgt    5   4.198 ± 0.040  ns/op
ReadVLongBenchmark.readVLongHBase14186_OnHeapBB                            
false                80000  avgt    5   5.915 ± 0.113  ns/op
ReadVLongBenchmark.readVLongHBase14186_OnHeapBB                            
false           2146483640  avgt    5   4.259 ± 0.375  ns/op
ReadVLongBenchmark.readVLongHBase14186_OnHeapBB                            
false         548755813887  avgt    5   5.931 ± 0.066  ns/op
ReadVLongBenchmark.readVLongHBase14186_OnHeapBB                            
false        1700104028981  avgt    5   5.989 ± 0.183  ns/op
ReadVLongBenchmark.readVLongHBase14186_OnHeapBB                            
false    35028797018963967  avgt    5   8.123 ± 0.093  ns/op
ReadVLongBenchmark.readVLongHBase14186_OnHeapBB                            
false  9123372036854775807  avgt    5   9.896 ± 0.074  ns/op
ReadVLongBenchmark.readVLongHBase14186_OnHeapBB_Padded                      
true                    9  avgt    5   2.378 ± 0.225  ns/op
ReadVLongBenchmark.readVLongHBase14186_OnHeapBB_Padded                      
true                  512  avgt    5   2.780 ± 0.024  ns/op
ReadVLongBenchmark.readVLongHBase14186_OnHeapBB_Padded                      
true                80000  avgt    5   3.737 ± 0.033  ns/op
ReadVLongBenchmark.readVLongHBase14186_OnHeapBB_Padded                      
true           2146483640  avgt    5   2.832 ± 0.330  ns/op
ReadVLongBenchmark.readVLongHBase14186_OnHeapBB_Padded                      
true         548755813887  avgt    5   3.707 ± 0.043  ns/op
ReadVLongBenchmark.readVLongHBase14186_OnHeapBB_Padded                      
true        1700104028981  avgt    5   3.732 ± 0.020  ns/op
ReadVLongBenchmark.readVLongHBase14186_OnHeapBB_Padded                      
true    35028797018963967  avgt    5   4.704 ± 0.064  ns/op
ReadVLongBenchmark.readVLongHBase14186_OnHeapBB_Padded                      
true  9123372036854775807  avgt    5   5.422 ± 0.121  ns/op
ReadVLongBenchmark.readVLongHBase14186_OnHeapBB_Padded                     
false                    9  avgt    5   2.532 ± 0.039  ns/op
ReadVLongBenchmark.readVLongHBase14186_OnHeapBB_Padded                     
false                  512  avgt    5   4.235 ± 0.070  ns/op
ReadVLongBenchmark.readVLongHBase14186_OnHeapBB_Padded                     
false                80000  avgt    5   5.984 ± 0.558  ns/op
ReadVLongBenchmark.readVLongHBase14186_OnHeapBB_Padded                     
false           2146483640  avgt    5   4.259 ± 0.253  ns/op
ReadVLongBenchmark.readVLongHBase14186_OnHeapBB_Padded                     
false         548755813887  avgt    5   6.047 ± 0.211  ns/op
ReadVLongBenchmark.readVLongHBase14186_OnHeapBB_Padded                     
false        1700104028981  avgt    5   6.148 ± 0.677  ns/op
ReadVLongBenchmark.readVLongHBase14186_OnHeapBB_Padded                     
false    35028797018963967  avgt    5   8.422 ± 0.252  ns/op
ReadVLongBenchmark.readVLongHBase14186_OnHeapBB_Padded                     
false  9123372036854775807  avgt    5   9.850 ± 0.090  ns/op
ReadVLongBenchmark.readVLongTimestamp_OffHeapBB                             
true                    9  avgt    5   2.182 ± 0.055  ns/op
ReadVLongBenchmark.readVLongTimestamp_OffHeapBB                             
true                  512  avgt    5   4.011 ± 0.320  ns/op
ReadVLongBenchmark.readVLongTimestamp_OffHeapBB                             
true                80000  avgt    5   4.330 ± 0.261  ns/op
ReadVLongBenchmark.readVLongTimestamp_OffHeapBB                             
true           2146483640  avgt    5   5.432 ± 0.099  ns/op
ReadVLongBenchmark.readVLongTimestamp_OffHeapBB                             
true         548755813887  avgt    5   5.253 ± 0.200  ns/op
ReadVLongBenchmark.readVLongTimestamp_OffHeapBB                             
true        1700104028981  avgt    5   6.424 ± 0.152  ns/op
ReadVLongBenchmark.readVLongTimestamp_OffHeapBB                             
true    35028797018963967  avgt    5   6.797 ± 0.074  ns/op
ReadVLongBenchmark.readVLongTimestamp_OffHeapBB                             
true  9123372036854775807  avgt    5   4.508 ± 0.352  ns/op
ReadVLongBenchmark.readVLongTimestamp_OffHeapBB                            
false                    9  avgt    5   2.383 ± 0.015  ns/op
ReadVLongBenchmark.readVLongTimestamp_OffHeapBB                            
false                  512  avgt    5   6.223 ± 0.083  ns/op
ReadVLongBenchmark.readVLongTimestamp_OffHeapBB                            
false                80000  avgt    5   7.953 ± 0.143  ns/op
ReadVLongBenchmark.readVLongTimestamp_OffHeapBB                            
false           2146483640  avgt    5   9.547 ± 0.111  ns/op
ReadVLongBenchmark.readVLongTimestamp_OffHeapBB                            
false         548755813887  avgt    5  11.573 ± 0.265  ns/op
ReadVLongBenchmark.readVLongTimestamp_OffHeapBB                            
false        1700104028981  avgt    5  13.205 ± 0.355  ns/op
ReadVLongBenchmark.readVLongTimestamp_OffHeapBB                            
false    35028797018963967  avgt    5  14.901 ± 0.100  ns/op
ReadVLongBenchmark.readVLongTimestamp_OffHeapBB                            
false  9123372036854775807  avgt    5   6.108 ± 0.085  ns/op
ReadVLongBenchmark.readVLongTimestamp_OffHeapBB_Padded                      
true                    9  avgt    5   2.182 ± 0.020  ns/op
ReadVLongBenchmark.readVLongTimestamp_OffHeapBB_Padded                      
true                  512  avgt    5   4.476 ± 0.447  ns/op
ReadVLongBenchmark.readVLongTimestamp_OffHeapBB_Padded                      
true                80000  avgt    5   4.392 ± 0.032  ns/op
ReadVLongBenchmark.readVLongTimestamp_OffHeapBB_Padded                      
true           2146483640  avgt    5   4.454 ± 0.139  ns/op
ReadVLongBenchmark.readVLongTimestamp_OffHeapBB_Padded                      
true         548755813887  avgt    5   4.513 ± 0.265  ns/op
ReadVLongBenchmark.readVLongTimestamp_OffHeapBB_Padded                      
true        1700104028981  avgt    5   4.417 ± 0.075  ns/op
ReadVLongBenchmark.readVLongTimestamp_OffHeapBB_Padded                      
true    35028797018963967  avgt    5   4.398 ± 0.057  ns/op
ReadVLongBenchmark.readVLongTimestamp_OffHeapBB_Padded                      
true  9123372036854775807  avgt    5   4.501 ± 0.197  ns/op
ReadVLongBenchmark.readVLongTimestamp_OffHeapBB_Padded                     
false                    9  avgt    5   2.342 ± 0.022  ns/op
ReadVLongBenchmark.readVLongTimestamp_OffHeapBB_Padded                     
false                  512  avgt    5   6.148 ± 0.034  ns/op
ReadVLongBenchmark.readVLongTimestamp_OffHeapBB_Padded                     
false                80000  avgt    5   6.182 ± 0.103  ns/op
ReadVLongBenchmark.readVLongTimestamp_OffHeapBB_Padded                     
false           2146483640  avgt    5   6.342 ± 0.614  ns/op
ReadVLongBenchmark.readVLongTimestamp_OffHeapBB_Padded                     
false         548755813887  avgt    5   6.092 ± 0.058  ns/op
ReadVLongBenchmark.readVLongTimestamp_OffHeapBB_Padded                     
false        1700104028981  avgt    5   6.156 ± 0.230  ns/op
ReadVLongBenchmark.readVLongTimestamp_OffHeapBB_Padded                     
false    35028797018963967  avgt    5   6.222 ± 0.661  ns/op
ReadVLongBenchmark.readVLongTimestamp_OffHeapBB_Padded                     
false  9123372036854775807  avgt    5   6.274 ± 0.062  ns/op
ReadVLongBenchmark.readVLongTimestamp_OnHeapBB                              
true                    9  avgt    5   2.381 ± 0.081  ns/op
ReadVLongBenchmark.readVLongTimestamp_OnHeapBB                              
true                  512  avgt    5   4.384 ± 0.053  ns/op
ReadVLongBenchmark.readVLongTimestamp_OnHeapBB                              
true                80000  avgt    5   4.841 ± 0.096  ns/op
ReadVLongBenchmark.readVLongTimestamp_OnHeapBB                              
true           2146483640  avgt    5   6.275 ± 0.086  ns/op
ReadVLongBenchmark.readVLongTimestamp_OnHeapBB                              
true         548755813887  avgt    5   5.815 ± 0.058  ns/op
ReadVLongBenchmark.readVLongTimestamp_OnHeapBB                              
true        1700104028981  avgt    5   6.947 ± 0.124  ns/op
ReadVLongBenchmark.readVLongTimestamp_OnHeapBB                              
true    35028797018963967  avgt    5   7.832 ± 0.202  ns/op
ReadVLongBenchmark.readVLongTimestamp_OnHeapBB                              
true  9123372036854775807  avgt    5   4.593 ± 0.177  ns/op
ReadVLongBenchmark.readVLongTimestamp_OnHeapBB                             
false                    9  avgt    5   2.753 ± 0.550  ns/op
ReadVLongBenchmark.readVLongTimestamp_OnHeapBB                             
false                  512  avgt    5   6.792 ± 0.111  ns/op
ReadVLongBenchmark.readVLongTimestamp_OnHeapBB                             
false                80000  avgt    5   8.418 ± 0.247  ns/op
ReadVLongBenchmark.readVLongTimestamp_OnHeapBB                             
false           2146483640  avgt    5  10.387 ± 0.149  ns/op
ReadVLongBenchmark.readVLongTimestamp_OnHeapBB                             
false         548755813887  avgt    5  12.268 ± 1.352  ns/op
ReadVLongBenchmark.readVLongTimestamp_OnHeapBB                             
false        1700104028981  avgt    5  13.921 ± 0.444  ns/op
ReadVLongBenchmark.readVLongTimestamp_OnHeapBB                             
false    35028797018963967  avgt    5  15.691 ± 0.038  ns/op
ReadVLongBenchmark.readVLongTimestamp_OnHeapBB                             
false  9123372036854775807  avgt    5   6.466 ± 1.092  ns/op
ReadVLongBenchmark.readVLongTimestamp_OnHeapBB_Padded                       
true                    9  avgt    5   2.344 ± 0.102  ns/op
ReadVLongBenchmark.readVLongTimestamp_OnHeapBB_Padded                       
true                  512  avgt    5   4.299 ± 0.045  ns/op
ReadVLongBenchmark.readVLongTimestamp_OnHeapBB_Padded                       
true                80000  avgt    5   4.448 ± 0.363  ns/op
ReadVLongBenchmark.readVLongTimestamp_OnHeapBB_Padded                       
true           2146483640  avgt    5   4.089 ± 0.119  ns/op
ReadVLongBenchmark.readVLongTimestamp_OnHeapBB_Padded                       
true         548755813887  avgt    5   4.357 ± 0.215  ns/op
ReadVLongBenchmark.readVLongTimestamp_OnHeapBB_Padded                       
true        1700104028981  avgt    5   4.171 ± 0.443  ns/op
ReadVLongBenchmark.readVLongTimestamp_OnHeapBB_Padded                       
true    35028797018963967  avgt    5   4.215 ± 0.386  ns/op
ReadVLongBenchmark.readVLongTimestamp_OnHeapBB_Padded                       
true  9123372036854775807  avgt    5   4.539 ± 0.287  ns/op
ReadVLongBenchmark.readVLongTimestamp_OnHeapBB_Padded                      
false                    9  avgt    5   2.515 ± 0.070  ns/op
ReadVLongBenchmark.readVLongTimestamp_OnHeapBB_Padded                      
false                  512  avgt    5   6.109 ± 0.072  ns/op
ReadVLongBenchmark.readVLongTimestamp_OnHeapBB_Padded                      
false                80000  avgt    5   6.177 ± 0.342  ns/op
ReadVLongBenchmark.readVLongTimestamp_OnHeapBB_Padded                      
false           2146483640  avgt    5   6.138 ± 0.018  ns/op
ReadVLongBenchmark.readVLongTimestamp_OnHeapBB_Padded                      
false         548755813887  avgt    5   6.188 ± 0.603  ns/op
ReadVLongBenchmark.readVLongTimestamp_OnHeapBB_Padded                      
false        1700104028981  avgt    5   6.141 ± 0.143  ns/op
ReadVLongBenchmark.readVLongTimestamp_OnHeapBB_Padded                      
false    35028797018963967  avgt    5   6.243 ± 0.082  ns/op
ReadVLongBenchmark.readVLongTimestamp_OnHeapBB_Padded                      
false  9123372036854775807  avgt    5   6.186 ± 0.542  ns/op
ReadVLongBenchmark.readVLong_OffHeapBB                                      
true                    9  avgt    5   2.197 ± 0.068  ns/op
ReadVLongBenchmark.readVLong_OffHeapBB                                      
true                  512  avgt    5   3.558 ± 0.051  ns/op
ReadVLongBenchmark.readVLong_OffHeapBB                                      
true                80000  avgt    5   3.340 ± 0.032  ns/op
ReadVLongBenchmark.readVLong_OffHeapBB                                      
true           2146483640  avgt    5   5.193 ± 0.095  ns/op
ReadVLongBenchmark.readVLong_OffHeapBB                                      
true         548755813887  avgt    5   5.227 ± 0.225  ns/op
ReadVLongBenchmark.readVLong_OffHeapBB                                      
true        1700104028981  avgt    5   5.023 ± 0.128  ns/op
ReadVLongBenchmark.readVLong_OffHeapBB                                      
true    35028797018963967  avgt    5   5.800 ± 0.448  ns/op
ReadVLongBenchmark.readVLong_OffHeapBB                                      
true  9123372036854775807  avgt    5   6.855 ± 0.156  ns/op
ReadVLongBenchmark.readVLong_OffHeapBB                                     
false                    9  avgt    5   2.319 ± 0.018  ns/op
ReadVLongBenchmark.readVLong_OffHeapBB                                     
false                  512  avgt    5   7.655 ± 0.713  ns/op
ReadVLongBenchmark.readVLong_OffHeapBB                                     
false                80000  avgt    5   9.873 ± 0.084  ns/op
ReadVLongBenchmark.readVLong_OffHeapBB                                     
false           2146483640  avgt    5  12.316 ± 0.040  ns/op
ReadVLongBenchmark.readVLong_OffHeapBB                                     
false         548755813887  avgt    5  14.502 ± 0.462  ns/op
ReadVLongBenchmark.readVLong_OffHeapBB                                     
false        1700104028981  avgt    5  16.898 ± 1.115  ns/op
ReadVLongBenchmark.readVLong_OffHeapBB                                     
false    35028797018963967  avgt    5  19.148 ± 0.513  ns/op
ReadVLongBenchmark.readVLong_OffHeapBB                                     
false  9123372036854775807  avgt    5  21.140 ± 0.091  ns/op
ReadVLongBenchmark.readVLong_OffHeapBB_Padded                               
true                    9  avgt    5   2.184 ± 0.069  ns/op
ReadVLongBenchmark.readVLong_OffHeapBB_Padded                               
true                  512  avgt    5   3.633 ± 0.255  ns/op
ReadVLongBenchmark.readVLong_OffHeapBB_Padded                               
true                80000  avgt    5   3.362 ± 0.062  ns/op
ReadVLongBenchmark.readVLong_OffHeapBB_Padded                               
true           2146483640  avgt    5   5.200 ± 0.845  ns/op
ReadVLongBenchmark.readVLong_OffHeapBB_Padded                               
true         548755813887  avgt    5   5.355 ± 0.201  ns/op
ReadVLongBenchmark.readVLong_OffHeapBB_Padded                               
true        1700104028981  avgt    5   5.081 ± 0.228  ns/op
ReadVLongBenchmark.readVLong_OffHeapBB_Padded                               
true    35028797018963967  avgt    5   5.602 ± 0.616  ns/op
ReadVLongBenchmark.readVLong_OffHeapBB_Padded                               
true  9123372036854775807  avgt    5   6.859 ± 0.198  ns/op
ReadVLongBenchmark.readVLong_OffHeapBB_Padded                              
false                    9  avgt    5   2.340 ± 0.130  ns/op
ReadVLongBenchmark.readVLong_OffHeapBB_Padded                              
false                  512  avgt    5   7.617 ± 0.591  ns/op
ReadVLongBenchmark.readVLong_OffHeapBB_Padded                              
false                80000  avgt    5  10.077 ± 0.902  ns/op
ReadVLongBenchmark.readVLong_OffHeapBB_Padded                              
false           2146483640  avgt    5  12.149 ± 0.556  ns/op
ReadVLongBenchmark.readVLong_OffHeapBB_Padded                              
false         548755813887  avgt    5  14.491 ± 0.336  ns/op
ReadVLongBenchmark.readVLong_OffHeapBB_Padded                              
false        1700104028981  avgt    5  16.900 ± 1.230  ns/op
ReadVLongBenchmark.readVLong_OffHeapBB_Padded                              
false    35028797018963967  avgt    5  19.059 ± 0.299  ns/op
ReadVLongBenchmark.readVLong_OffHeapBB_Padded                              
false  9123372036854775807  avgt    5  21.204 ± 0.309  ns/op
ReadVLongBenchmark.readVLong_OnHeapBB                                       
true                    9  avgt    5   2.466 ± 0.440  ns/op
ReadVLongBenchmark.readVLong_OnHeapBB                                       
true                  512  avgt    5   4.217 ± 0.253  ns/op
ReadVLongBenchmark.readVLong_OnHeapBB                                       
true                80000  avgt    5   5.592 ± 8.169  ns/op
ReadVLongBenchmark.readVLong_OnHeapBB                                       
true           2146483640  avgt    5   6.084 ± 0.120  ns/op
ReadVLongBenchmark.readVLong_OnHeapBB                                       
true         548755813887  avgt    5   5.481 ± 0.060  ns/op
ReadVLongBenchmark.readVLong_OnHeapBB                                       
true        1700104028981  avgt    5   6.751 ± 0.464  ns/op
ReadVLongBenchmark.readVLong_OnHeapBB                                       
true    35028797018963967  avgt    5   7.462 ± 0.374  ns/op
ReadVLongBenchmark.readVLong_OnHeapBB                                       
true  9123372036854775807  avgt    5   8.422 ± 0.829  ns/op
ReadVLongBenchmark.readVLong_OnHeapBB                                      
false                    9  avgt    5   2.543 ± 0.060  ns/op
ReadVLongBenchmark.readVLong_OnHeapBB                                      
false                  512  avgt    5   6.501 ± 0.095  ns/op
ReadVLongBenchmark.readVLong_OnHeapBB                                      
false                80000  avgt    5   8.056 ± 0.702  ns/op
ReadVLongBenchmark.readVLong_OnHeapBB                                      
false           2146483640  avgt    5   9.607 ± 0.076  ns/op
ReadVLongBenchmark.readVLong_OnHeapBB                                      
false         548755813887  avgt    5  11.447 ± 0.061  ns/op
ReadVLongBenchmark.readVLong_OnHeapBB                                      
false        1700104028981  avgt    5  13.395 ± 0.726  ns/op
ReadVLongBenchmark.readVLong_OnHeapBB                                      
false    35028797018963967  avgt    5  15.559 ± 0.161  ns/op
ReadVLongBenchmark.readVLong_OnHeapBB                                      
false  9123372036854775807  avgt    5  17.871 ± 0.600  ns/op
ReadVLongBenchmark.readVLong_OnHeapBB_Padded                                
true                    9  avgt    5   2.379 ± 0.040  ns/op
ReadVLongBenchmark.readVLong_OnHeapBB_Padded                                
true                  512  avgt    5   4.136 ± 0.153  ns/op
ReadVLongBenchmark.readVLong_OnHeapBB_Padded                                
true                80000  avgt    5   4.638 ± 0.149  ns/op
ReadVLongBenchmark.readVLong_OnHeapBB_Padded                                
true           2146483640  avgt    5   6.026 ± 0.024  ns/op
ReadVLongBenchmark.readVLong_OnHeapBB_Padded                                
true         548755813887  avgt    5   5.571 ± 0.452  ns/op
ReadVLongBenchmark.readVLong_OnHeapBB_Padded                                
true        1700104028981  avgt    5   6.712 ± 0.059  ns/op
ReadVLongBenchmark.readVLong_OnHeapBB_Padded                                
true    35028797018963967  avgt    5   7.461 ± 0.041  ns/op
ReadVLongBenchmark.readVLong_OnHeapBB_Padded                                
true  9123372036854775807  avgt    5   8.422 ± 1.550  ns/op
ReadVLongBenchmark.readVLong_OnHeapBB_Padded                               
false                    9  avgt    5   2.537 ± 0.025  ns/op
ReadVLongBenchmark.readVLong_OnHeapBB_Padded                               
false                  512  avgt    5   6.318 ± 0.119  ns/op
ReadVLongBenchmark.readVLong_OnHeapBB_Padded                               
false                80000  avgt    5   7.793 ± 0.107  ns/op
ReadVLongBenchmark.readVLong_OnHeapBB_Padded                               
false           2146483640  avgt    5   9.589 ± 0.007  ns/op
ReadVLongBenchmark.readVLong_OnHeapBB_Padded                               
false         548755813887  avgt    5  11.402 ± 0.309  ns/op
ReadVLongBenchmark.readVLong_OnHeapBB_Padded                               
false        1700104028981  avgt    5  13.296 ± 0.100  ns/op
ReadVLongBenchmark.readVLong_OnHeapBB_Padded                               
false    35028797018963967  avgt    5  15.572 ± 1.457  ns/op
ReadVLongBenchmark.readVLong_OnHeapBB_Padded                               
false  9123372036854775807  avgt    5  17.665 ± 0.091  ns/op{noformat}

> Enhance ByteBufferUtils.readVLong to read 8 bytes at a time
> -----------------------------------------------------------
>
>                 Key: HBASE-28256
>                 URL: https://issues.apache.org/jira/browse/HBASE-28256
>             Project: HBase
>          Issue Type: Improvement
>          Components: Performance
>            Reporter: Becker Ewing
>            Assignee: Becker Ewing
>            Priority: Major
>         Attachments: ReadVLongBenchmark.zip, async-prof-rs-cpu.html
>
>
> Currently, ByteBufferUtils.readVLong is used to decode rows in all data block 
> encodings in order to read the memstoreTs field. For a data block encoding 
> like prefix, ByteBufferUtils.readVLong can surprisingly occupy over 50% of 
> the CPU time in BufferedEncodedSeeker.decodeNext (which can be quite a hot 
> method in seek operations).
>  
> Since memstoreTs will typically require at least 6 bytes to store, we could 
> look to vectorize the read path for readVLong to read 8 bytes at a time 
> instead of a single byte at a time (like in 
> https://issues.apache.org/jira/browse/HBASE-28025) in order to increase 
> performance.
>  
> Attached is a CPU flamegraph of a region server process which shows that we 
> spend a surprising amount of time in decoding rows from the DBE in 
> ByteBufferUtils.readVLong.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to