You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Gary Helmling (JIRA)" <ji...@apache.org> on 2016/04/19 03:07:25 UTC

[jira] [Updated] (HBASE-15658) RegionServerCallable / RpcRetryingCaller clear meta cache on retries

     [ 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.001.patch

This changes RpcRetryingCaller to not pass reload=true to RegionServerCallable#prepare().  This seems like the most conservative approach to avoiding the unnecessary meta cache clearing on retries.

Most of the code is in refactoring the existing test and adding in a new one for this specific case.

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