[
https://issues.apache.org/jira/browse/HBASE-3894?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13035574#comment-13035574
]
stack commented on HBASE-3894:
------------------------------
bq. On release, should we throw an exception if the client attempts to release
a lock id that doesn't exist, or just log it?
If client is getting what it asked for, then just log it. How would it happen?
I like the idea of removing lockid completely (If client does explicity unlock,
then they deserve the headache that will ensue).
bq. When an HRegion is doing a miniBatch of thousands of rows, is it really
best to attempt to acquire thousands of locks and hold them all while doing the
write?
Yes.
> Thread contention over row locks set monitor
> --------------------------------------------
>
> Key: HBASE-3894
> URL: https://issues.apache.org/jira/browse/HBASE-3894
> Project: HBase
> Issue Type: Bug
> Affects Versions: 0.90.2
> Reporter: Dave Latham
> Priority: Blocker
> Fix For: 0.90.4
>
> Attachments: concurrentRowLocks.patch,
> regionserver_rowLock_set_contention.threads.txt
>
>
> HRegion maintains a set of row locks. Whenever any thread attempts to lock
> or release a row it needs to acquire the monitor on that set. We've been
> encountering cases with 30 handler threads all contending for that monitor,
> blocked progress on the region server. Clients timeout, and retry making it
> worse, and the region server stops responding to new clients almost entirely.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira