[hbase] Keep lazy cache of regions in client rather than an 'authoritative' list
--------------------------------------------------------------------------------

                 Key: HADOOP-2443
                 URL: https://issues.apache.org/jira/browse/HADOOP-2443
             Project: Hadoop
          Issue Type: Improvement
          Components: contrib/hbase
            Reporter: stack


Currently, when the client gets a NotServingRegionException -- usually because 
its in middle of being split or there has been a regionserver crash and region 
is being moved elsewhere -- the client does a complete refresh of its cache of 
region locations for a table.

Chatting with Jim about a Paul Saab upload issue from Saturday night, when 
tables are big comprised of regions that are splitting fast (because of bulk 
upload), its unlikely a client will ever be able to obtain a stable list of all 
region locations.  Given that any update or scan requires that the list of all 
regions be in place before it proceeds, this can get in the way of the client 
succeeding when the cluster is under load.

Chatting, we figure that it better the client holds a lazy region cache: on 
NSRE, figure out where that region has gone only and update the client-side 
cache for that entry only rather than throw out all we know of a table every 
time.

Hopefully this will fix the issue PS was experiencing where during intense 
upload, he was unable to get/scan/hql the same table.



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