private long getRemainingRpcTimeout(RpcCall call, HBaseRpcController controller, long now) {
    long timeout;
    if (controller != null && controller.getCallTimeout() > 0) {
      timeout = controller.getCallTimeout();
    } else if (rpcTimeout > 0) {
      timeout = rpcTimeout;
    } else {
      return -1;
    }
    if (call != null) {
      timeout -= (now - call.getReceiveTime());
    }
    // getTimeLimit ignores values <= 0, but timeout may now be negative if queue time was high.
    // return minimum value here in that case so we count this in calculating the final delta.
    return Math.max(minimumScanTimeLimitDelta, timeout);
  }
The returned String is used as key doing look up of outstanding Scanners in this Servers'
this.scanners, the Map of outstanding scanners and their current state.
@param scannerId A scanner long id.
@return The long id as a String.
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RSRpcServices.java