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