private static void checkRSQuotaToEnableExceedThrottle(Quotas quotas) throws IOException {
    if (quotas != null && quotas.hasThrottle()) {
      Throttle throttle = quotas.getThrottle();
      // If enable exceed throttle quota, make sure that there are at least one read(req/read +
      // num/size/cu) and one write(req/write + num/size/cu) region server throttle quotas.
      boolean hasReadQuota = false;
      boolean hasWriteQuota = false;
      if (throttle.hasReqNum() || throttle.hasReqSize() || throttle.hasReqCapacityUnit()) {
        hasReadQuota = true;
        hasWriteQuota = true;
      }
      if (
        !hasReadQuota
          && (throttle.hasReadNum() || throttle.hasReadSize() || throttle.hasReadCapacityUnit())
      ) {
        hasReadQuota = true;
      }
      if (!hasReadQuota) {
        throw new DoNotRetryIOException(
          "Please set at least one read region server quota before enable exceed throttle quota");
      }
      if (
        !hasWriteQuota
          && (throttle.hasWriteNum() || throttle.hasWriteSize() || throttle.hasWriteCapacityUnit())
      ) {
        hasWriteQuota = true;
      }
      if (!hasWriteQuota) {
        throw new DoNotRetryIOException("Please set at least one write region server quota "
          + "before enable exceed throttle quota");
      }
      // If enable exceed throttle quota, make sure that region server throttle quotas are in
      // seconds time unit. Because once previous requests exceed their quota and consume region
      // server quota, quota in other time units may be refilled in a long time, this may affect
      // later requests.
      List<Pair<Boolean, TimedQuota>> list =
        Arrays.asList(Pair.newPair(throttle.hasReqNum(), throttle.getReqNum()),
          Pair.newPair(throttle.hasReadNum(), throttle.getReadNum()),
          Pair.newPair(throttle.hasWriteNum(), throttle.getWriteNum()),
          Pair.newPair(throttle.hasReqSize(), throttle.getReqSize()),
          Pair.newPair(throttle.hasReadSize(), throttle.getReadSize()),
          Pair.newPair(throttle.hasWriteSize(), throttle.getWriteSize()),
          Pair.newPair(throttle.hasReqCapacityUnit(), throttle.getReqCapacityUnit()),
          Pair.newPair(throttle.hasReadCapacityUnit(), throttle.getReadCapacityUnit()),
          Pair.newPair(throttle.hasWriteCapacityUnit(), throttle.getWriteCapacityUnit()));
      for (Pair<Boolean, TimedQuota> pair : list) {
        if (pair.getFirst()) {
          if (pair.getSecond().getTimeUnit() != TimeUnit.SECONDS) {
            throw new DoNotRetryIOException("All region server quota must be "
              + "in seconds time unit if enable exceed throttle quota");
          }
        }
      }
    } else {
      // If enable exceed throttle quota, make sure that region server quota is already set
      throw new DoNotRetryIOException(
        "Please set region server quota before enable exceed throttle quota");
    }
  }
Returns true if the support for quota is enabled
hbase-server/src/main/java/org/apache/hadoop/hbase/quotas/QuotaUtil.java