[
https://issues.apache.org/jira/browse/HBASE-12148?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
huaxiang sun updated HBASE-12148:
---------------------------------
Attachment: HBASE-12148-master-v6.patch
I was going through TimeRangeTracker code and was thinking about making it lock
free. Discussed with Stack and he pointed me this jira. I looked at Stack's v5
code and refactored the code a bit. Here is the updated v6 patch. I did
microbench testing for both lock-free and withlock version. Some of the result
running from my macpro:
{code}
1writer1reader
Benchmark Mode Cnt Score Error Units
TrtBenchmark.lockfree thrpt 25 1752.510 ± 72.994 ops/s
TrtBenchmark.lockfree:testTrtLockFreeRead thrpt 25 787.910 ± 35.393 ops/s
TrtBenchmark.lockfree:testTrtLockFreeWrite thrpt 25 964.600 ± 38.611 ops/s
TrtBenchmark.withlock thrpt 25 44.565 ± 6.019 ops/s
TrtBenchmark.withlock:testTrtWithLockRead thrpt 25 24.941 ± 4.093 ops/s
TrtBenchmark.withlock:testTrtWithLockWrite thrpt 25 19.624 ± 1.980 ops/s
5 writers 5 readers
Benchmark Mode Cnt Score Error
Units
TrtBenchmark.lockfree thrpt 25 3217.005 ± 445.825
ops/s
TrtBenchmark.lockfree:testTrtLockFreeRead thrpt 25 1531.123 ± 249.083
ops/s
TrtBenchmark.lockfree:testTrtLockFreeWrite thrpt 25 1685.882 ± 235.832
ops/s
TrtBenchmark.withlock thrpt 25 36.439 ± 5.064
ops/s
TrtBenchmark.withlock:testTrtWithLockRead thrpt 25 22.751 ± 3.508
ops/s
TrtBenchmark.withlock:testTrtWithLockWrite thrpt 25 13.688 ± 1.822
ops/s
10 writers 10 readers
Benchmark Mode Cnt Score Error
Units
TrtBenchmark.lockfree thrpt 25 3323.196 ± 287.186
ops/s
TrtBenchmark.lockfree:testTrtLockFreeRead thrpt 25 1408.506 ± 111.703
ops/s
TrtBenchmark.lockfree:testTrtLockFreeWrite thrpt 25 1914.689 ± 243.069
ops/s
TrtBenchmark.withlock thrpt 25 33.473 ± 2.869
ops/s
TrtBenchmark.withlock:testTrtWithLockRead thrpt 25 20.097 ± 1.778
ops/s
TrtBenchmark.withlock:testTrtWithLockWrite thrpt 25 13.376 ± 1.820
ops/s
15 writers 15 readers
Benchmark Mode Cnt Score Error
Units
TrtBenchmark.lockfree thrpt 25 3607.649 ± 403.625
ops/s
TrtBenchmark.lockfree:testTrtLockFreeRead thrpt 25 1486.898 ± 252.728
ops/s
TrtBenchmark.lockfree:testTrtLockFreeWrite thrpt 25 2120.751 ± 280.179
ops/s
TrtBenchmark.withlock thrpt 25 34.037 ± 1.677
ops/s
TrtBenchmark.withlock:testTrtWithLockRead thrpt 25 21.497 ± 1.489
ops/s
TrtBenchmark.withlock:testTrtWithLockWrite thrpt 25 12.540 ± 0.713
ops/s
20 writers 20 readers
Benchmark Mode Cnt Score Error
Units
TrtBenchmark.lockfree thrpt 25 4544.710 ± 614.566
ops/s
TrtBenchmark.lockfree:testTrtLockFreeRead thrpt 25 1897.371 ± 295.687
ops/s
TrtBenchmark.lockfree:testTrtLockFreeWrite thrpt 25 2647.340 ± 503.446
ops/s
TrtBenchmark.withlock thrpt 25 31.404 ± 2.995
ops/s
TrtBenchmark.withlock:testTrtWithLockRead thrpt 25 19.653 ± 1.938
ops/s
TrtBenchmark.withlock:testTrtWithLockWrite thrpt 25 11.752 ± 1.643
ops/s
{code}
The microbenchmark code is at
https://github.com/qiaoandxiang/trt-benchmark/commits/master
> Remove TimeRangeTracker as point of contention when many threads writing a
> Store
> --------------------------------------------------------------------------------
>
> Key: HBASE-12148
> URL: https://issues.apache.org/jira/browse/HBASE-12148
> Project: HBase
> Issue Type: Sub-task
> Components: Performance
> Affects Versions: 2.0.0, 0.99.1
> Reporter: stack
> Assignee: Walter Koetke
> Fix For: 2.0.0, 1.4.0
>
> Attachments:
> 0001-In-AtomicUtils-change-updateMin-and-updateMax-to-ret.patch,
> 12148.addendum.txt, 12148.min_and_max_run_independent.patch, 12148.txt,
> 12148.txt, 12148v2.txt, 12148v2.txt, 12148v4.patch, HBASE-12148-V3.patch,
> HBASE-12148-V3.patch, HBASE-12148-master-v6.patch,
> HBASE-12148.branch-1.v5.patch, HBASE-12148.branch-1.v5.patch,
> HBASE-12148.txt, HBASE-12148V2.txt, Screen Shot 2014-10-01 at 3.39.46 PM.png,
> Screen Shot 2014-10-01 at 3.41.07 PM.png, Screen Shot 2016-04-13 at 1.49.30
> PM.png, Screen Shot 2016-04-13 at 2.02.22 PM.png, Screen Shot 2016-05-18 at
> 10.21.53 PM.png, TimeRangeTracker.tiff
>
>
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)