[
https://issues.apache.org/jira/browse/HBASE-14460?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jingcheng Du updated HBASE-14460:
---------------------------------
Attachment: HBASE-14460-discussion.patch
I am thinking about an alternative way to improve the implementation in
increment, checkAndPut, etc.
In each operation, we can attach a write number per row, in the operation of
increment, we can wait for the previous operations to finish only in this row
in mvcc.await()?
I had drafted an ugly patch (only for master) to do this for discussion. And I
ran the TestIncrement, the results are listed in the following.
{noformat}
1. testContendedSingleCellIncrementer:
With the patch: 1st run is 228.185s. 2nd run is 232.453s. 3th run is
235.457s. 4th run is 229.003s.
Without the patch: 1st run is 230.299s. 2nd run is 234.997s. 3rd run is
219.224s. 4th run is 225.731s..
2. testUnContendedSingleCellIncrementer:
With the patch: 59.244s.
Without the patch: 81.667s.
{noformat}
The patch is attached in this JIRA for discussion. Thanks!
> [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: 0.94.test.patch, 0.98.test.patch, 14460.txt,
> HBASE-14460-discussion.patch, flamegraph-13120.svg.master.singlecell.svg,
> flamegraph-26636.094.100.svg, flamegraph-28066.098.singlecell.svg,
> flamegraph-28767.098.100.svg, flamegraph-31647.master.100.svg,
> flamegraph-9466.094.singlecell.svg, m.test.patch, 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)