[ 
https://issues.apache.org/jira/browse/HBASE-15658?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Gary Helmling updated HBASE-15658:
----------------------------------
    Attachment: hbase-15658.002.patch

Take #2.  The first attempt broke some handling for region replicas.

This version preserves the check for table status on retry, but eliminates the 
additional meta cache clearing.  This is still bad though, as a retry will 
still incur a request to meta to check the table state.

> 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: 1.3.0
>
>         Attachments: hbase-15658.001.patch, hbase-15658.002.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