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

Jean-Daniel Cryans commented on HBASE-2023:
-------------------------------------------

So for this issue I see some kind of trade-off. 

 - If all threads synchronize before the method, stuff in cache won't be picked 
up until another thread is done looking for a another row. On the plus side, 
that thread waiting in line could be needing the new location that will be put 
in the cache by the thread holding the lock.

 - If the synchronize is more narrow eg after looking up the cache, the threads 
won't be blocked but some threads looking for a location in .META. could be 
looking for the same row and yet will all go through that code.

 - If no synchronization, it's like the previous situation but all threads will 
query .META. around the same time.

I don't like putting more load on .META. and I don't like having clients 
waiting sometimes for nothing.

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

Reply via email to