hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "huaxiang sun (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (HBASE-12148) Remove TimeRangeTracker as point of contention when many threads writing a Store
Date Fri, 06 Jan 2017 22:59:58 GMT

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

Mime
View raw message