private long calculateNewRate(double currentLimit, double successRate, double failureRate, double totalRate) {
        boolean isIncrease = totalRate <= 0 || failureRate <= 0;
        long newRate = isIncrease ? increase(currentLimit) : decrease(successRate);

        if (MAX == newRate) {
            // skip logging
            return newRate;
        }
        String action = isIncrease ? "Increase" : "Decrease";
        logger.info("{} {} limit, current limit: {}, success rate: {}, failure rate: {}, new rate: {}",
            action, operation, formatRate(currentLimit), formatRate(successRate), formatRate(failureRate), formatRate(newRate));
        return newRate;
    }
The maximum request size allowed by the regulator.
Any request larger than this size should be downscaled to this size.
s3stream/src/main/java/com/automq/stream/s3/operator/TrafficRegulator.java