[ 
https://issues.apache.org/jira/browse/HBASE-14460?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14905021#comment-14905021
 ] 

Elliott Clark commented on HBASE-14460:
---------------------------------------

bq.Folks did a load of work to avoid our having to wait on sync while the row 
lock was held...
Yeah my thought only works after locks are reader/writer.

bq.Don't we still do an mvcc transaction inside the row lock... we'll wait till 
mvcc catches up after we take the row lock... then we complete it and on the 
end ... So, before releasing the row lock, we'd stamp the mvcc as current 
writes sequenceid... unless it had already gone beyond us?

Yeah so that will slow us down in situations where we're highly contented on 
the same row. However if there are lots of rows having a check and mutate 
operation run on then there is no need to wait of other mvcc transactions to 
complete. Currently even if there is no in flight transaction for the row 
you're trying to read modify write, the server waits for all transactions to 
complete. Holding the lock just gets us up to a point where the server will 
only wait on transactions for the row that is in question.

> [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, region_lock.png
>
>
> 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