[
https://issues.apache.org/jira/browse/HBASE-17556?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Marcin Januszkiewicz updated HBASE-17556:
-----------------------------------------
External issue URL: (was:
https://issues.apache.org/jira/browse/HBASE-12534)
Description:
We noticed in our application, that sometimes when we interact with a table an
operation will fail with an exception, an all operations that happen on the
same region will also fail until the application is restarted.
It seems that when a merge or split happens on a region that is already in the
clients cache, and the client is configured to retry operations, then there is
no way for the client to detect this. In RpcRetryingCaller#callWithRetries if a
call fails with RegionNotServingException then the cache will be cleared only
if the retry parameter is equal to 1. This means the call will fail but the
following calls will succeed.
RpcRetryingCaller#callWithoutRetries contains the comment "It would be nice to
clear the location cache here". Additionally, the stale cache will cause this
call to fail, even though the data is available.
See also HBASE-12534
was:
We noticed in our application, that sometimes when we interact with a table an
operation will fail with an exception, an all operations that happen on the
same region will also fail until the application is restarted.
It seems that when a merge or split happens on a region that is already in the
clients cache, and the client is configured to retry operations, then there is
no way for the client to detect this. In RpcRetryingCaller#callWithRetries if a
call fails with RegionNotServingException then the cache will be cleared only
if the retry parameter is equal to 1. This means the call will fail but the
following calls will succeed.
RpcRetryingCaller#callWithoutRetries contains the comment "It would be nice to
clear the location cache here". Additionally, the stale cache will cause this
call to fail, even though the data is available.
> The client will not invalidate stale region caches
> --------------------------------------------------
>
> Key: HBASE-17556
> URL: https://issues.apache.org/jira/browse/HBASE-17556
> Project: HBase
> Issue Type: Bug
> Components: Client
> Affects Versions: 1.0.0, 2.0.0, 0.98.24
> Reporter: Marcin Januszkiewicz
> Priority: Critical
>
> We noticed in our application, that sometimes when we interact with a table
> an operation will fail with an exception, an all operations that happen on
> the same region will also fail until the application is restarted.
> It seems that when a merge or split happens on a region that is already in
> the clients cache, and the client is configured to retry operations, then
> there is no way for the client to detect this. In
> RpcRetryingCaller#callWithRetries if a call fails with
> RegionNotServingException then the cache will be cleared only if the retry
> parameter is equal to 1. This means the call will fail but the following
> calls will succeed.
> RpcRetryingCaller#callWithoutRetries contains the comment "It would be nice
> to clear the location cache here". Additionally, the stale cache will cause
> this call to fail, even though the data is available.
> See also HBASE-12534
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)