hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Marcin Januszkiewicz (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (HBASE-17556) The client will not invalidate stale region caches
Date Fri, 27 Jan 2017 14:35:24 GMT

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

Mime
View raw message