hbase-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jean-Daniel Cryans (JIRA)" <j...@apache.org>
Subject [jira] Commented: (HBASE-2023) Client sync block can cause 1 thread of a multi-threaded client to block all others
Date Thu, 10 Dec 2009 18:48:18 GMT

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

Jean-Daniel Cryans commented on HBASE-2023:

Ok so in the same order:

 - This is the current situation, synchronization at line 613 of HCM.
 - Narrowing down the sync block we could put it at line 637 and cover the rest of the locateRegionInMeta
 - Removing the sync means getting rid of synchronized at line 613.

> 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.

View raw message