You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Amitanand Aiyer (JIRA)" <ji...@apache.org> on 2013/03/21 19:45:15 UTC

[jira] [Created] (HBASE-8171) Perf issue with multiple client threads trying to prefetch Region Cache from META

Amitanand Aiyer created HBASE-8171:
--------------------------------------

             Summary: Perf issue with multiple client threads trying to prefetch Region Cache from META
                 Key: HBASE-8171
                 URL: https://issues.apache.org/jira/browse/HBASE-8171
             Project: HBase
          Issue Type: Bug
    Affects Versions: 0.94.5, 0.94.3, 0.89-fb
            Reporter: Amitanand Aiyer
            Assignee: Amitanand Aiyer


HBaseClient maintains a cache of Regions to region locations that gets cleared whenever the RS that the client talks to is unresponsive.

This will result in the Client having to talk to META to fetch the region location before doing the get/put.

https://issues.apache.org/jira/browse/HBASE-2468 introduces the feature to prewarm the cache, where the client gets some rows from META to warm the cache.

This is a costly operation. And,  it looks like all client threads that block on the regionLockObject, will go in and do the cache warmup; although the cache might have been already warmed up by an earlier thread. 

When there is a network issue going on, we see lots of Client threads blocking in locateRegionInMeta.


The fix would be to check the cache again; before we do the prefetch after grabbing the lock. Currently, the client threads look in the cache at the begining of the method. But a lot could have changed while waiting for the regionLockObject.




--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira