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

Yu Li commented on HBASE-18144:
-------------------------------

Nice debugging! [~allan163]

While in branch-1.1, I could see below codes in {{HRegion#getRowLockInternal}}
{code}
          // Row is already locked by some other thread, give up or wait for it
          if (!existingContext.latch.await(this.rowLockWaitDuration, 
TimeUnit.MILLISECONDS)) {
            if(traceScope != null) {
              traceScope.getSpan().addTimelineAnnotation("Failed to get row 
lock");
            }
            throw new IOException("Timed out waiting for lock for row: " + 
rowKey);
          }
{code}
So I think it's still waiting for the row lock, right? I guess the difference 
mainly lies in the if-else logic inside getRowLockInternal method that we don't 
always wait, but haven't dig deep into it. Maybe a little bit more 
investigation required about why branch-1.1 don't have HBASE-17924 problem? 
Thanks.

> 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