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

stack commented on HBASE-18144:
-------------------------------

Other thoughts are that the doMiniBatch where it takes all locks up front 
before going on to apply Mutations is not appropriate after the move to 
read/write row locks; it made sense in branch-1.1. where the row lock was 
costly and reentrant. Once you had the lock, you could do a bunch of mutations 
under its umbrella. When read/write lock, the lock does the refcounting 
internally. If all read lock requests, then all threads make progress. Its the 
write lock requests that are blockers. Better to have the batch fail quickly 
with a bunch of read-lock successes than have it wait (deadlock) for 30 seconds 
at a time just because the batch had a write lock in the mix that it was unable 
to attain in time; better to fail fast and then retry on a new rpc? Someone 
probably figured the heuristic long ago. We need to do a bit of study.

On the sort, it costs. Was wondering if we could exploit the sort otherwise 
perhaps later in the processing of mutations (is this the only sort in the 
write pipeline?)

> Forward-port the old exclusive row lock; there are scenarios where it 
> performs better
> -------------------------------------------------------------------------------------
>
>                 Key: HBASE-18144
>                 URL: https://issues.apache.org/jira/browse/HBASE-18144
>             Project: HBase
>          Issue Type: Bug
>          Components: Increment
>    Affects Versions: 1.2.5
>            Reporter: stack
>            Assignee: stack
>             Fix For: 2.0.0, 1.3.2, 1.2.7
>
>         Attachments: DisorderedBatchAndIncrementUT.patch, 
> HBASE-18144.master.001.patch
>
>
> Description to follow.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to