[ https://issues.apache.org/jira/browse/HBASE-15658?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15246904#comment-15246904 ]
Mikhail Antonov commented on HBASE-15658: ----------------------------------------- Looks good to me, +1. (in some next patches we should also try to remove these 'reload' and 'useCache' flags, they complicate logic and make the changes fragile IMO) > 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)