CompletableFuture<ByteBuf> mergedRangeRead(ReadOptions options, String path, long start, long end) {
        CompletableFuture<ByteBuf> cf = new CompletableFuture<>();
        CompletableFuture<ByteBuf> retCf = acquireReadPermit(cf);
        if (retCf.isDone()) {
            return retCf;
        }
        mergedRangeRead0(options, path, start, end, cf);
        return retCf;
    }
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