diff --git a/s3stream/src/main/java/com/automq/stream/s3/compact/CompactionManager.java b/s3stream/src/main/java/com/automq/stream/s3/compact/CompactionManager.java index 95ca1a3b90..be3a4835f6 100644 --- a/s3stream/src/main/java/com/automq/stream/s3/compact/CompactionManager.java +++ b/s3stream/src/main/java/com/automq/stream/s3/compact/CompactionManager.java @@ -55,7 +55,6 @@ import java.util.ArrayList; import java.util.Collection; import java.util.Collections; -import java.util.Comparator; import java.util.HashMap; import java.util.HashSet; import java.util.List; @@ -156,8 +155,18 @@ public void start() { this.compactionDelayTime = 0; return; } - data.sort(Comparator.comparingLong(S3ObjectMetadata::committedTimestamp)); - this.compactionDelayTime = System.currentTimeMillis() - data.get(0).committedTimestamp(); + long minCommittedTimestamp = Long.MAX_VALUE; + for (S3ObjectMetadata metadata : data) { + long ts = metadata.committedTimestamp(); + if (ts < minCommittedTimestamp) { + minCommittedTimestamp = ts; + } + } + if (minCommittedTimestamp == Long.MAX_VALUE) { + this.compactionDelayTime = 0; + return; + } + this.compactionDelayTime = System.currentTimeMillis() - minCommittedTimestamp; }).join(), (long) this.compactionInterval * 2, 1, TimeUnit.MINUTES); }