You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "stack (JIRA)" <ji...@apache.org> on 2016/02/08 19:47:40 UTC

[jira] [Resolved] (HBASE-14460) [Perf Regression] Merge of MVCC and SequenceId (HBASE-8763) slowed Increments, CheckAndPuts, batch operations

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

stack resolved HBASE-14460.
---------------------------
       Resolution: Fixed
    Fix Version/s: 1.0.4
                   1.1.4
                   1.2.1
                   1.3.0
                   2.0.0
     Release Note: 
This release note tries to tell the general story. Dive into sub-tasks for more specific release noting.

Increments, appends, checkAnd* have been slow since hbase-.1.0.0. The unification of mvcc and sequence id done by HBASE-8763 was responsible.

A ‘fast-path’ workaround was added by HBASE-15031 “Fix merge of MVCC and SequenceID performance regression in branch-1.0 for Increments”. It became available in 1.0.3 and 1.1.3. To enable the fast path, set "hbase.increment.fast.but.narrow.consistency" and then rolling restart. The workaround was for increments only (appends, checkAndPut, etc., were not addressed. See HBASE-15031 release note for more detail).

Subsequently, the regression was properly identified and fixed in HBASE-15213 and the fix applied to branch-1.0 and branch-1.1. As it happens, hbase-1.2.0 does not suffer from the performance regression (though the thought was that it did -- and so it got the fast-path patch too via HBASE-15092) nor does the master branch. HBASE-15213 identified that HBASE-12751 (as a side effect) had cured the regression.

hbase-1.0.4 (if it is ever released -- 1.0 has been end-of-lifed) and hbase-1.1.4 will have the HBASE-15213 fix.  If you are suffering from the increment regression and you are on 1.0.3 or 1.1.3, you can enable the work around to get back your increment performance but you should upgrade.

  was:Regression addressed narrowly on branch-1 (1.0.3+, 1.1.3+, and 1.2.0). You need to set a  "hbase.increment.fast.but.narrow.consistency" and rolling restart to enable a 'fast path' for increments only (appends, checkAndPut, etc., are not address in branch-1). See the sub-task release notes for more detail. On master branch, a more substantial change is done changing write path so all check-and-put type operations -- i.e. increment, append, checkAnd*, etc. -- have the regression addressed.


> [Perf Regression] Merge of MVCC and SequenceId (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
>             Fix For: 2.0.0, 1.3.0, 1.2.1, 1.1.4, 1.0.4
>
>         Attachments: 0.94.test.patch, 0.98.test.patch, 1.0.80.flamegraph-7932.svg, 14460.txt, 14460.v0.branch-1.0.patch, 98.80.flamegraph-11428.svg, HBASE-14460-discussion.patch, client.test.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, hack.flamegraph-16593.svg, hack.uncommitted.patch, 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)