[ 
https://issues.apache.org/jira/browse/HBASE-19695?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16321901#comment-16321901
 ] 

Jingyun Tian commented on HBASE-19695:
--------------------------------------

my proposal is when we do complete like follow:
{code}
  private void complete(TableName tableName, LocateRequest req, HRegionLocation 
loc,
      Throwable error) {
    if (error != null) {
      LOG.warn("Failed to locate region in '" + tableName + "', row='" +
        Bytes.toStringBinary(req.row) + "', locateType=" + req.locateType, 
error);
    }
{code}
we could check if the error is RegionOfflineException. If it is true, then we 
check if the table is disabled. 
If the table is disabled, we transfer the exception to DoNotRetryIOException, 
else we keep retring.


> Handle disabled table for async client
> --------------------------------------
>
>                 Key: HBASE-19695
>                 URL: https://issues.apache.org/jira/browse/HBASE-19695
>             Project: HBase
>          Issue Type: Sub-task
>            Reporter: Duo Zhang
>            Assignee: Jingyun Tian
>
> Now for async client we will not check if a table is disabled when retrying, 
> so we will retry until the time or count limit is reached, and will not throw 
> a TableNotEnabledException.
> We should have the same behavior as sync client, but the implementation 
> should be carefully designed. For sync client, we will also check if a table 
> is disabled if it is a retry, no matter what the exception is. This will 
> double the pressure on meta table. We should try our best to eliminate 
> unnecessary access to meta table.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to