hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Phil Yang (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-15593) Time limit of scanning should be offered by client
Date Wed, 13 Apr 2016 09:23:25 GMT

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

Phil Yang commented on HBASE-15593:

but in branch-1 the test failed. 
I think the issue is this:
private int getRemainingTime(int callTimeout) {
    if (callTimeout <= 0) {
      return 0;
    } else {
      if (callTimeout == Integer.MAX_VALUE) return Integer.MAX_VALUE;
      int remainingTime = (int) (callTimeout -
          (EnvironmentEdgeManager.currentTime() - this.globalStartTime));
      if (remainingTime < MIN_RPC_TIMEOUT) {
        // If there is no time left, we're trying anyway. It's too late.
        // 0 means no timeout, and it's not the intent here. So we secure both cases by
        // resetting to the minimum.
        remainingTime = MIN_RPC_TIMEOUT;
      return remainingTime;
In RpcRetryingCaller.callWithRetries of branch-1, we will change the rpc timeout if it is
less than 2000 ms (introduced by HBASE-8764). My testcase is based on a 666ms timeout so it
In master, the MIN_RPC_TIMEOUT has been changed to 1 by HBASE-13286. But it was only pushed
to master...
So I think we can change this to 1 in this patches for branch-1.x directly in this issue,

> Time limit of scanning should be offered by client
> --------------------------------------------------
>                 Key: HBASE-15593
>                 URL: https://issues.apache.org/jira/browse/HBASE-15593
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 1.2.0, 1.1.4
>            Reporter: Phil Yang
>            Assignee: Phil Yang
>             Fix For: 2.0.0, 1.3.0, 1.4.0, 1.1.5, 1.2.2
>         Attachments: HBASE-15593-v1.patch, HBASE-15593-v2.patch, HBASE-15593-v3.patch,
HBASE-15593-v4.patch, HBASE-15593-v5.patch
> In RSRpcServices.scan, we will set a time limit equaling to Math.min(scannerLeaseTimeoutPeriod,
rpcTimeout) / 2, and will response heartbeat message if we reach this limit. However, two
timeout settings (hbase.client.scanner.timeout.period and hbase.rpc.timeout) are read from
RS's configure, which may be different from client's. If client's setting is much less than
server's, there may still be timeout at client side.

This message was sent by Atlassian JIRA

View raw message