hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Zheng Hu (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-18006) AsyncClientScanner does not retry openScan RPCs
Date Wed, 24 May 2017 14:38:04 GMT

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

Zheng Hu commented on HBASE-18006:

The javadoc said that: 

   * Move the region <code>r</code> to <code>dest</code>.
   * @param encodedRegionName The encoded region name; i.e. the hash that makes up the region
   * suffix: e.g. if regionname is
   * <code>TestTable,0094429456,1289497600452.527db22f95c8a9e0116f0cc13c680396.</code>,
   * then the encoded region name is: <code>527db22f95c8a9e0116f0cc13c680396</code>.
   * @param destServerName The servername of the destination regionserver.  If passed the
empty byte
   * array we'll assign to a random server.  A server name is made of host, port and startcode.
   * Here is an example: <code> host187.example.com,60020,1289493121758</code>
   * @throws IOException if we can't find a region named
   * <code>encodedRegionName</code>
  void move(final byte[] encodedRegionName, final byte[] destServerName)
      throws IOException;

So , we can only pass a encodedRegionName to HBaseAdmin.move() method.   In our HBaseAdmin
, some API accept encodedRegionName only ,  some API need fullRegionName only , some API accept
both encodedRegionName and fulRegionName ,  It really confused me sometime.  :(

Anyway,  it's not a bug, so I closed the issue. 

> AsyncClientScanner does not retry openScan RPCs
> -----------------------------------------------
>                 Key: HBASE-18006
>                 URL: https://issues.apache.org/jira/browse/HBASE-18006
>             Project: HBase
>          Issue Type: Bug
>            Reporter: Enis Soztutar
>            Priority: Critical
>             Fix For: 2.0.0
>         Attachments: hbase-18006-test.patch
> I have been reading the code for the new async scan paths excessively, and noticed that
there is a problem in the retrying layer for openScan RPCs. 
> In AsyncClientScanner#callOpenScanner() we are doing a open scan RPC. The retrying logic
comes from using the single rpc retrying caller in openScanner(). However, we have the logic
for failing the scanner if any of the RPC calls here: 
> {code}
>       stub.scan(controller, request, resp -> {
>         if (controller.failed()) {
>           future.completeExceptionally(controller.getFailed());
>           return;
>         }
>         future.complete(new OpenScannerResponse(loc, isRegionServerRemote, stub, controller,
>       });
> {code}
> So, if the open scan gets an UnknownScannerException or something, instead of retrying,
it just fails the whole scan. 
> [~Apache9] FYI. 

This message was sent by Atlassian JIRA

View raw message