Cache reader's nextIndex during reset() 88/110688/1
authorRobert Varga <robert.varga@pantheon.tech>
Wed, 13 Mar 2024 08:50:03 +0000 (09:50 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Wed, 13 Mar 2024 08:58:48 +0000 (09:58 +0100)
JournalSegmentReader.getNextIndex() involves some computation, so do not
call it twice when deciding how to reset SegmentedJournalReader.

JIRA: CONTROLLER-2106
Change-Id: I7527d8f0c47d35b7a59c30558715204a85b24eae
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
atomix-storage/src/main/java/io/atomix/storage/journal/SegmentedJournalReader.java

index 861eed7f563654f954a63bc7552c36acbef1cc7d..24a91589a6b72fe47ef281df733c01e98fb6c187 100644 (file)
@@ -80,9 +80,10 @@ sealed class SegmentedJournalReader<E> implements JournalReader<E> permits Commi
       reset();
     }
 
-    if (index < currentReader.getNextIndex()) {
+    final var nextIndex = currentReader.getNextIndex();
+    if (index < nextIndex) {
       rewind(index);
-    } else if (index > currentReader.getNextIndex()) {
+    } else if (index > nextIndex) {
       forward(index);
     } else {
       currentReader.reset(index);