Skip to content

Commit 28ad4dd

Browse files
authored
MINOR: Remove unnecessary Optional from offsetsToSnapshot (#19613)
Reviewers: PoAn Yang <[email protected]>, Ken Huang <[email protected]>, TengYao Chi <[email protected]>, Chia-Ping Tsai <[email protected]>
1 parent e687814 commit 28ad4dd

File tree

1 file changed

+11
-15
lines changed
  • storage/src/main/java/org/apache/kafka/storage/internals/log

1 file changed

+11
-15
lines changed

storage/src/main/java/org/apache/kafka/storage/internals/log/UnifiedLog.java

+11-15
Original file line numberDiff line numberDiff line change
@@ -2416,15 +2416,13 @@ public static void rebuildProducerState(ProducerStateManager producerStateManage
24162416
Time time,
24172417
boolean reloadFromCleanShutdown,
24182418
String logPrefix) throws IOException {
2419-
List<Optional<Long>> offsetsToSnapshot = new ArrayList<>();
2420-
if (segments.nonEmpty()) {
2421-
long lastSegmentBaseOffset = segments.lastSegment().get().baseOffset();
2422-
Optional<LogSegment> lowerSegment = segments.lowerSegment(lastSegmentBaseOffset);
2423-
Optional<Long> nextLatestSegmentBaseOffset = lowerSegment.map(LogSegment::baseOffset);
2424-
offsetsToSnapshot.add(nextLatestSegmentBaseOffset);
2425-
offsetsToSnapshot.add(Optional.of(lastSegmentBaseOffset));
2426-
}
2427-
offsetsToSnapshot.add(Optional.of(lastOffset));
2419+
List<Long> offsetsToSnapshot = new ArrayList<>();
2420+
segments.lastSegment().ifPresent(lastSegment -> {
2421+
long lastSegmentBaseOffset = lastSegment.baseOffset();
2422+
segments.lowerSegment(lastSegmentBaseOffset).ifPresent(s -> offsetsToSnapshot.add(s.baseOffset()));
2423+
offsetsToSnapshot.add(lastSegmentBaseOffset);
2424+
});
2425+
offsetsToSnapshot.add(lastOffset);
24282426

24292427
LOG.info("{}Loading producer state till offset {}", logPrefix, lastOffset);
24302428

@@ -2443,11 +2441,9 @@ public static void rebuildProducerState(ProducerStateManager producerStateManage
24432441
// To avoid an expensive scan through all the segments, we take empty snapshots from the start of the
24442442
// last two segments and the last offset. This should avoid the full scan in the case that the log needs
24452443
// truncation.
2446-
for (Optional<Long> offset : offsetsToSnapshot) {
2447-
if (offset.isPresent()) {
2448-
producerStateManager.updateMapEndOffset(offset.get());
2449-
producerStateManager.takeSnapshot();
2450-
}
2444+
for (long offset : offsetsToSnapshot) {
2445+
producerStateManager.updateMapEndOffset(offset);
2446+
producerStateManager.takeSnapshot();
24512447
}
24522448
} else {
24532449
LOG.info("{}Reloading from producer snapshot and rebuilding producer state from offset {}", logPrefix, lastOffset);
@@ -2469,7 +2465,7 @@ public static void rebuildProducerState(ProducerStateManager producerStateManage
24692465
long startOffset = Utils.max(segment.baseOffset(), producerStateManager.mapEndOffset(), logStartOffset);
24702466
producerStateManager.updateMapEndOffset(startOffset);
24712467

2472-
if (offsetsToSnapshot.contains(Optional.of(segment.baseOffset()))) {
2468+
if (offsetsToSnapshot.contains(segment.baseOffset())) {
24732469
producerStateManager.takeSnapshot();
24742470
}
24752471
int maxPosition = segment.size();

0 commit comments

Comments
 (0)