[ 
https://issues.apache.org/jira/browse/HBASE-14460?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

stack updated HBASE-14460:
--------------------------
    Attachment: testincrement.094.patch
                testincrement.098.patch
                testincrement.master.patch
                flamegraph-9466.094.singlecell.svg
                flamegraph-13120.svg.master.singlecell.svg
                flamegraph-28066.098.singlecell.svg

There are two ways in which master is slower than 0.94 increments. There is the 
case where threads are contending to update a single Cell and then there is the 
case described at the head of this issue where the mvcc coordination is acting 
like a region-wide lock though all threads incrementing may not be contending 
on a Cell.

Here are some rough measurements of the first case. See attached test. It has 
100 threads doing 10k increments of a single Cell up against a Region Instance.

{code}
0.94 ~84 seconds
0.98 ~140 seconds
master ~180 seconds
{code}

0.98 is almost 2x slower than 0.94 (though the code path profile is pretty 
close if you look at the accompanying flame graphs) and master is slower again, 
more than 2x slower.

As is, reports from the field have it that even 0.98 increments are too slow as 
is (being 2x slower, if many, can back up all handlers so no other work can get 
in). Hence the above exercise. It seem that indeed even without mvcc 
unification, increments have gotten slower.

Let me go measure the case where mvcc is getting in the way next.

> [Perf Regression] Merge of MVCC and SequenceId (HBASE-HBASE-8763) slowed 
> Increments, CheckAndPuts, batch operations
> -------------------------------------------------------------------------------------------------------------------
>
>                 Key: HBASE-14460
>                 URL: https://issues.apache.org/jira/browse/HBASE-14460
>             Project: HBase
>          Issue Type: Bug
>          Components: Performance
>            Reporter: stack
>            Assignee: stack
>            Priority: Critical
>         Attachments: 14460.txt, flamegraph-13120.svg.master.singlecell.svg, 
> flamegraph-28066.098.singlecell.svg, flamegraph-9466.094.singlecell.svg, 
> region_lock.png, testincrement.094.patch, testincrement.098.patch, 
> testincrement.master.patch
>
>
> As reported by 鈴木俊裕 up on the mailing list -- see "Performance degradation 
> between CDH5.3.1(HBase0.98.6) and CDH5.4.5(HBase1.0.0)" -- our unification of 
> sequenceid and MVCC slows Increments (and other ops) as the mvcc needs to 
> 'catch up' to our current point before we can read the last Increment value 
> that we need to update.
> We can say that our Increment is just done wrong, we should just be writing 
> Increments and summing on read, but checkAndPut as well as batching 
> operations have the same issue. Fix.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to