[
https://issues.apache.org/jira/browse/HBASE-2023?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12806629#action_12806629
]
stack commented on HBASE-2023:
------------------------------
I wonder if it'd be possible to do a mock regionserver implemenation and then
do a test that had thousands of clients in the one jvm? The mock would then on
a period do a hold on the lookup to locateRegionInMeta. See how much it
effects other threads?
> Client sync block can cause 1 thread of a multi-threaded client to block all
> others
> -----------------------------------------------------------------------------------
>
> Key: HBASE-2023
> URL: https://issues.apache.org/jira/browse/HBASE-2023
> Project: Hadoop HBase
> Issue Type: Bug
> Affects Versions: 0.20.2
> Reporter: ryan rawson
>
> Take a highly multithreaded client, processing a few thousand requests a
> second. If a table goes offline, one thread will get stuck in
> "locateRegionInMeta" which is located inside the following sync block:
> synchronized(userRegionLock){
> return locateRegionInMeta(META_TABLE_NAME, tableName, row,
> useCache);
> }
> So when other threads need to find a region (EVEN IF ITS CACHED!!!) it will
> encounter this sync and wait.
> This can become an issue on a busy thrift server (where I first noticed the
> problem), one region offline can prevent access to all other regions!
> Potential solution: narrow this lock, or perhaps just get rid of it
> completely.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.