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

Reply via email to