[
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)