From 844cf7781ea7ddcfc6b893ba73dfdcce757e0157 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Tue, 26 Mar 2024 22:16:59 +0100 Subject: [PATCH] Rename JournalSegment.index() 'index' is an overloaded term. firstIndex() is much more descriptive than 'index()', which is easily confused with public API argument names. JIRA: CONTROLLER-2100 Change-Id: I7848a6bb0e1e7b4a1c7f63c8e6db5b02bd0dab76 Signed-off-by: Robert Varga --- .../storage/journal/JournalSegment.java | 4 ++-- .../storage/journal/JournalSegmentWriter.java | 8 +++---- .../storage/journal/SegmentedJournal.java | 21 +++++++++---------- .../journal/SegmentedJournalReader.java | 14 ++++++------- .../journal/SegmentedJournalWriter.java | 6 +++--- 5 files changed, 26 insertions(+), 27 deletions(-) diff --git a/atomix-storage/src/main/java/io/atomix/storage/journal/JournalSegment.java b/atomix-storage/src/main/java/io/atomix/storage/journal/JournalSegment.java index 118d39b3d0..9239f86d25 100644 --- a/atomix-storage/src/main/java/io/atomix/storage/journal/JournalSegment.java +++ b/atomix-storage/src/main/java/io/atomix/storage/journal/JournalSegment.java @@ -79,7 +79,7 @@ final class JournalSegment implements AutoCloseable { * * @return The segment's starting index. */ - long index() { + long firstIndex() { return descriptor.index(); } @@ -264,7 +264,7 @@ final class JournalSegment implements AutoCloseable { return MoreObjects.toStringHelper(this) .add("id", descriptor.id()) .add("version", descriptor.version()) - .add("index", index()) + .add("index", firstIndex()) .toString(); } } diff --git a/atomix-storage/src/main/java/io/atomix/storage/journal/JournalSegmentWriter.java b/atomix-storage/src/main/java/io/atomix/storage/journal/JournalSegmentWriter.java index e08e50de9e..af633a248f 100644 --- a/atomix-storage/src/main/java/io/atomix/storage/journal/JournalSegmentWriter.java +++ b/atomix-storage/src/main/java/io/atomix/storage/journal/JournalSegmentWriter.java @@ -63,7 +63,7 @@ abstract sealed class JournalSegmentWriter permits DiskJournalSegmentWriter, * @return The last written index. */ final long getLastIndex() { - return lastEntry != null ? lastEntry.index() : segment.index() - 1; + return lastEntry != null ? lastEntry.index() : segment.firstIndex() - 1; } /** @@ -81,7 +81,7 @@ abstract sealed class JournalSegmentWriter permits DiskJournalSegmentWriter, * @return The next index to be written. */ final long getNextIndex() { - return lastEntry != null ? lastEntry.index() + 1 : segment.index(); + return lastEntry != null ? lastEntry.index() + 1 : segment.firstIndex(); } /** @@ -112,7 +112,7 @@ abstract sealed class JournalSegmentWriter permits DiskJournalSegmentWriter, abstract JournalSegmentReader reader(); private void resetWithBuffer(final JournalSegmentReader reader, final long index) { - long nextIndex = segment.index(); + long nextIndex = segment.firstIndex(); // Clear the buffer indexes and acquire ownership of the buffer currentPosition = JournalSegmentDescriptor.BYTES; @@ -150,7 +150,7 @@ abstract sealed class JournalSegmentWriter permits DiskJournalSegmentWriter, // Truncate the index. this.index.truncate(index); - if (index < segment.index()) { + if (index < segment.firstIndex()) { // Reset the writer to the first entry. currentPosition = JournalSegmentDescriptor.BYTES; } else { diff --git a/atomix-storage/src/main/java/io/atomix/storage/journal/SegmentedJournal.java b/atomix-storage/src/main/java/io/atomix/storage/journal/SegmentedJournal.java index 18ef23e5b1..ef1a4cf028 100644 --- a/atomix-storage/src/main/java/io/atomix/storage/journal/SegmentedJournal.java +++ b/atomix-storage/src/main/java/io/atomix/storage/journal/SegmentedJournal.java @@ -24,7 +24,6 @@ import java.nio.file.StandardOpenOption; import java.util.Collection; import java.util.Iterator; import java.util.Map; -import java.util.SortedMap; import java.util.TreeMap; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentNavigableMap; @@ -303,7 +302,7 @@ public final class SegmentedJournal implements Journal { // If the index already equals the first segment index, skip the reset. JournalSegment firstSegment = getFirstSegment(); - if (index == firstSegment.index()) { + if (index == firstSegment.firstIndex()) { return firstSegment; } @@ -390,7 +389,7 @@ public final class SegmentedJournal implements Journal { synchronized JournalSegment getSegment(long index) { assertOpen(); // Check if the current segment contains the given index first in order to prevent an unnecessary map lookup. - if (currentSegment != null && index > currentSegment.index()) { + if (currentSegment != null && index > currentSegment.firstIndex()) { return currentSegment; } @@ -408,7 +407,7 @@ public final class SegmentedJournal implements Journal { * @param segment The segment to remove. */ synchronized void removeSegment(JournalSegment segment) { - segments.remove(segment.index()); + segments.remove(segment.firstIndex()); segment.close(); segment.delete(); resetCurrentSegment(); @@ -518,7 +517,7 @@ public final class SegmentedJournal implements Journal { // Add the segment to the segments list. LOG.debug("Found segment: {} ({})", segment.descriptor().id(), segmentFile.file().getName()); - segments.put(segment.index(), segment); + segments.put(segment.firstIndex(), segment); } } @@ -528,7 +527,7 @@ public final class SegmentedJournal implements Journal { Iterator>> iterator = segments.entrySet().iterator(); while (iterator.hasNext()) { JournalSegment segment = iterator.next().getValue(); - if (previousSegment != null && previousSegment.lastIndex() != segment.index() - 1) { + if (previousSegment != null && previousSegment.lastIndex() != segment.firstIndex() - 1) { LOG.warn("Journal is inconsistent. {} is not aligned with prior segment {}", segment.file().file(), previousSegment.file().file()); corrupted = true; } @@ -586,7 +585,7 @@ public final class SegmentedJournal implements Journal { */ public boolean isCompactable(long index) { Map.Entry> segmentEntry = segments.floorEntry(index); - return segmentEntry != null && segments.headMap(segmentEntry.getValue().index()).size() > 0; + return segmentEntry != null && segments.headMap(segmentEntry.getValue().firstIndex()).size() > 0; } /** @@ -597,7 +596,7 @@ public final class SegmentedJournal implements Journal { */ public long getCompactableIndex(long index) { Map.Entry> segmentEntry = segments.floorEntry(index); - return segmentEntry != null ? segmentEntry.getValue().index() : 0; + return segmentEntry != null ? segmentEntry.getValue().firstIndex() : 0; } /** @@ -608,9 +607,9 @@ public final class SegmentedJournal implements Journal { * @param index The index up to which to compact the journal. */ public void compact(long index) { - Map.Entry> segmentEntry = segments.floorEntry(index); + final var segmentEntry = segments.floorEntry(index); if (segmentEntry != null) { - SortedMap> compactSegments = segments.headMap(segmentEntry.getValue().index()); + final var compactSegments = segments.headMap(segmentEntry.getValue().firstIndex()); if (!compactSegments.isEmpty()) { LOG.debug("{} - Compacting {} segment(s)", name, compactSegments.size()); for (JournalSegment segment : compactSegments.values()) { @@ -619,7 +618,7 @@ public final class SegmentedJournal implements Journal { segment.delete(); } compactSegments.clear(); - resetHead(segmentEntry.getValue().index()); + resetHead(segmentEntry.getValue().firstIndex()); } } } diff --git a/atomix-storage/src/main/java/io/atomix/storage/journal/SegmentedJournalReader.java b/atomix-storage/src/main/java/io/atomix/storage/journal/SegmentedJournalReader.java index 2549f0ebb8..cc0fe0d31c 100644 --- a/atomix-storage/src/main/java/io/atomix/storage/journal/SegmentedJournalReader.java +++ b/atomix-storage/src/main/java/io/atomix/storage/journal/SegmentedJournalReader.java @@ -33,13 +33,13 @@ sealed class SegmentedJournalReader implements JournalReader permits Commi this.journal = requireNonNull(journal); currentSegment = requireNonNull(segment); currentReader = segment.createReader(); - nextIndex = currentSegment.index(); + nextIndex = currentSegment.firstIndex(); currentEntry = null; } @Override public final long getFirstIndex() { - return journal.getFirstSegment().index(); + return journal.getFirstSegment().firstIndex(); } @Override @@ -58,7 +58,7 @@ sealed class SegmentedJournalReader implements JournalReader permits Commi currentSegment = journal.getFirstSegment(); currentReader = currentSegment.createReader(); - nextIndex = currentSegment.index(); + nextIndex = currentSegment.firstIndex(); currentEntry = null; } @@ -86,7 +86,7 @@ sealed class SegmentedJournalReader implements JournalReader permits Commi nextIndex = position.index(); currentReader.setPosition(position.position()); } else { - nextIndex = currentSegment.index(); + nextIndex = currentSegment.firstIndex(); currentReader.setPosition(JournalSegmentDescriptor.BYTES); } while (nextIndex < index && tryNext() != null) { @@ -98,7 +98,7 @@ sealed class SegmentedJournalReader implements JournalReader permits Commi * Rewinds the journal to the given index. */ private void rewind(final long index) { - if (currentSegment.index() >= index) { + if (currentSegment.firstIndex() >= index) { JournalSegment segment = journal.getSegment(index - 1); if (segment != null) { currentReader.close(); @@ -115,8 +115,8 @@ sealed class SegmentedJournalReader implements JournalReader permits Commi public Indexed tryNext() { var next = currentReader.readEntry(nextIndex); if (next == null) { - final var nextSegment = journal.getNextSegment(currentSegment.index()); - if (nextSegment == null || nextSegment.index() != nextIndex) { + final var nextSegment = journal.getNextSegment(currentSegment.firstIndex()); + if (nextSegment == null || nextSegment.firstIndex() != nextIndex) { return null; } diff --git a/atomix-storage/src/main/java/io/atomix/storage/journal/SegmentedJournalWriter.java b/atomix-storage/src/main/java/io/atomix/storage/journal/SegmentedJournalWriter.java index ccd2661574..389c06aa4e 100644 --- a/atomix-storage/src/main/java/io/atomix/storage/journal/SegmentedJournalWriter.java +++ b/atomix-storage/src/main/java/io/atomix/storage/journal/SegmentedJournalWriter.java @@ -48,7 +48,7 @@ final class SegmentedJournalWriter implements JournalWriter { @Override public void reset(long index) { - if (index > currentSegment.index()) { + if (index > currentSegment.firstIndex()) { currentSegment.releaseWriter(); currentSegment = journal.resetSegments(index); currentWriter = currentSegment.acquireWriter(); @@ -73,7 +73,7 @@ final class SegmentedJournalWriter implements JournalWriter { try { return currentWriter.append(entry); } catch (BufferOverflowException e) { - if (currentSegment.index() == currentWriter.getNextIndex()) { + if (currentSegment.firstIndex() == currentWriter.getNextIndex()) { throw e; } } @@ -92,7 +92,7 @@ final class SegmentedJournalWriter implements JournalWriter { } // Delete all segments with first indexes greater than the given index. - while (index < currentSegment.index() && currentSegment != journal.getFirstSegment()) { + while (index < currentSegment.firstIndex() && currentSegment != journal.getFirstSegment()) { currentSegment.releaseWriter(); journal.removeSegment(currentSegment); currentSegment = journal.getLastSegment(); -- 2.36.6