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

Gary Helmling commented on HBASE-15658:
---------------------------------------

Committed to branch-1.3+.

[~busbey] any objections to including this in branch-1.2?  It's a change in the 
prior behavior, but CallQueueTooBigException, which was introduced in 1.2, can 
make retries more likely in loaded scenarios, and exacerbate the old meta cache 
clearing behavior.

> RegionServerCallable / RpcRetryingCaller clear meta cache on retries
> --------------------------------------------------------------------
>
>                 Key: HBASE-15658
>                 URL: https://issues.apache.org/jira/browse/HBASE-15658
>             Project: HBase
>          Issue Type: Sub-task
>          Components: Client
>    Affects Versions: 1.2.1
>            Reporter: Gary Helmling
>            Assignee: Gary Helmling
>            Priority: Critical
>             Fix For: 2.0.0, 1.3.0, 1.4.0
>
>         Attachments: hbase-15658.001.patch, hbase-15658.002.patch, 
> hbase-15658.branch-1.3.001.patch
>
>
> When RpcRetryingCaller.callWithRetries() attempts a retry, it calls 
> RetryingCallable.prepare(tries != 0).  For RegionServerCallable (and probably 
> others), this will wind up calling 
> RegionLocator.getRegionLocation(reload=true), which will drop the meta cache 
> for the given region and always go back to meta.
> This is kind of silly, since in the case of exceptions, we already call 
> RetryingCallable.throwable(), which goes to great pains to only refresh the 
> meta cache when necessary.  Since we are already doing this on failure, I 
> don't really understand why we are doing duplicate work to refresh the meta 
> cache on prepare() at all.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to