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