private static boolean isThrottled(Throwable ex, int retryCount) {
        if (ex instanceof S3Exception) {
            S3Exception s3Ex = (S3Exception) ex;
            return s3Ex.statusCode() == HttpStatusCode.THROTTLING || s3Ex.statusCode() == HttpStatusCode.SERVICE_UNAVAILABLE;
        }
        // regard timeout as throttled except for the first try
        return ex instanceof TimeoutException && retryCount > 0;
    }
Get adjacent read tasks and merge them into one read task which read range is not exceed 16MB.
s3stream/src/main/java/com/automq/stream/s3/operator/AbstractObjectStorage.java