@Override
    public CompletableFuture<Stream> createAndOpenStream(CreateStreamOptions options) {
        return runInLock(() -> {
            checkState();
            TimerUtil timerUtil = new TimerUtil();
            return FutureUtil.exec(() -> streamManager.createStream(options.tags()).thenCompose(streamId -> {
                StreamOperationStats.getInstance().createStreamLatency.record(timerUtil.elapsedAs(TimeUnit.NANOSECONDS));
                return openStream0(streamId, options.epoch(), options.tags(), OpenStreamOptions.builder().epoch(options.epoch()).tags(options.tags()).build());
            }), LOGGER, "createAndOpenStream");
        });
    }
When the cluster objects count exceed MAJOR_V1_COMPACTION_MAX_OBJECT_THRESHOLD, the MAJOR_V1 compaction will be triggered.
Default value is 400000: 10w partitions ~= 30w streams ~= 40w object
s3stream/src/main/java/com/automq/stream/s3/S3StreamClient.java