You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hbase.apache.org by "stack (JIRA)" <ji...@apache.org> on 2010/03/12 08:25:29 UTC
[jira] Resolved: (HBASE-2023) Client sync block can cause 1 thread
of a multi-threaded client to block all others
[ https://issues.apache.org/jira/browse/HBASE-2023?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
stack resolved HBASE-2023.
--------------------------
Resolution: Fixed
Fix Version/s: 0.21.0
0.20.4
Assignee: Karthik Ranganathan
Hadoop Flags: [Reviewed]
Committed branch and trunk. Thanks for the patch Karthik (I added you as contributor if you don't mind).
> 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
> Assignee: Karthik Ranganathan
> Fix For: 0.20.4, 0.21.0
>
> Attachments: HBASE-2023_0.20.3.patch
>
>
> 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.