Uploaded image for project: 'HBase'
  1. HBase
  2. HBASE-15866

Split hbase.rpc.timeout into *.read.timeout and *.write.timeout

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 2.0.0
    • Fix Version/s: 1.4.0, 2.0.0
    • Component/s: None
    • Labels:
    • Hadoop Flags:
      Reviewed

      Description

      We have a single tunable for the RPC timeout interval - hbase.rpc.timeout. This is fine for the general case but there are use cases where it would be advantageous to set two separate timeouts for reads (gets, scans, perhaps with significant server side filtering - although the new scanner heartbeat feature mitigates where available) and mutations (fail fast under tight SLA, resubmit or take mitigating action).

      I propose we refer to a configuration setting "hbase.rpc.read.timeout" when handling read operations and "hbase.rpc.write.timeout" when handling write operations. If those values are not set in the configuration, fall back to the value of "hbase.rpc.timeout" or its default.

      So for example in HTable instead of one global timeout for each RPC (rpcTimeout), there would be a readRpcTimeout and writeRpcTimeout also set up in HTable#finishSetup. Then wherever we set up RPC with RpcRetryingCallerFactory#newCaller(int rpcTimeout) we pass in the read or write timeout depending on what the op is.

      In general I don't like the idea of adding configuration parameters to our already heavyweight set, but I think the inability to control timeouts separately for reads and writes is an operational deficit.

      See also PHOENIX-2916.

        Attachments

        1. read-write-rpc-timeouts.patch
          15 kB
          Vivek Koppuru
        2. HBASE-15866.patch
          17 kB
          Andrew Kyle Purtell
        3. read-write-rpc.v1.patch
          24 kB
          Vivek Koppuru
        4. HBASE-15866.patch
          27 kB
          Andrew Kyle Purtell
        5. HBASE-15866.patch
          26 kB
          Vivek Koppuru
        6. HBASE-15866.patch
          29 kB
          Andrew Kyle Purtell
        7. HBASE-15866.patch
          29 kB
          Andrew Kyle Purtell
        8. HBASE-15866-branch-1.patch
          32 kB
          Andrew Kyle Purtell

          Issue Links

          There are no Sub-Tasks for this issue.

            Activity

              People

              • Assignee:
                vivek.koppuru@gmail.com Vivek Koppuru
                Reporter:
                apurtell Andrew Kyle Purtell
              • Votes:
                0 Vote for this issue
                Watchers:
                12 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: