From 91f69cce3299f17c524fd1af560cdaf2ae9ec337 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Mon, 6 May 2024 00:48:01 +0200 Subject: [PATCH] Do not expose descriptor from JournalSegmentFile JournalSegmentFile should expose interesting mapping -- the descriptor is really an internal thing. JIRA: CONTROLLER-2099 Change-Id: I2276cee3c4cb15d961aaa1b7f72d618f10dd744e Signed-off-by: Robert Varga --- .../storage/journal/JournalSegment.java | 11 ++++---- .../storage/journal/JournalSegmentFile.java | 26 ++++++++++++++++--- .../storage/journal/SegmentedJournal.java | 4 +-- 3 files changed, 29 insertions(+), 12 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 b73d942c03..2128b87e20 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 @@ -74,7 +74,7 @@ final class JournalSegment { * @return The segment's starting index. */ long firstIndex() { - return file.descriptor().index(); + return file.firstIndex(); } /** @@ -233,11 +233,10 @@ final class JournalSegment { @Override public String toString() { - final var descriptor = file.descriptor(); return MoreObjects.toStringHelper(this) - .add("id", descriptor.id()) - .add("version", descriptor.version()) - .add("index", descriptor.index()) - .toString(); + .add("id", file.segmentId()) + .add("version", file.version()) + .add("index", file.firstIndex()) + .toString(); } } diff --git a/atomix-storage/src/main/java/io/atomix/storage/journal/JournalSegmentFile.java b/atomix-storage/src/main/java/io/atomix/storage/journal/JournalSegmentFile.java index 825baa27a2..04e22a1659 100644 --- a/atomix-storage/src/main/java/io/atomix/storage/journal/JournalSegmentFile.java +++ b/atomix-storage/src/main/java/io/atomix/storage/journal/JournalSegmentFile.java @@ -84,12 +84,30 @@ final class JournalSegmentFile { } /** - * Returns the segment descriptor. + * Returns the segment version. * - * @return The segment descriptor. + * @return the segment version */ - @NonNull JournalSegmentDescriptor descriptor() { - return descriptor; + int version() { + return descriptor.version(); + } + + /** + * Returns the segment identifier. + * + * @return the segment identifier + */ + long segmentId() { + return descriptor.id(); + } + + /** + * Returns the index of first entry stored in this file. + * + * @return the index of first entry stored in this file + */ + long firstIndex() { + return descriptor.index(); } int maxSize() { 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 23a5419b83..1ae77fa351 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 @@ -342,7 +342,7 @@ public final class SegmentedJournal implements Journal { final var index = currentSegment.lastIndex() + 1; final var lastSegment = getLastSegment(); - currentSegment = createSegment(lastSegment != null ? lastSegment.file().descriptor().id() + 1 : 1, index); + currentSegment = createSegment(lastSegment != null ? lastSegment.file().segmentId() + 1 : 1, index); segments.put(index, currentSegment); return currentSegment; } @@ -436,7 +436,7 @@ public final class SegmentedJournal implements Journal { } // Load the segment. - LOG.debug("Loaded disk segment: {} ({})", segmentFile.descriptor().id(), segmentFile.path()); + LOG.debug("Loaded disk segment: {} ({})", segmentFile.segmentId(), segmentFile.path()); // Add the segment to the segments list. final var segment = new JournalSegment(segmentFile, storageLevel, maxEntrySize, indexDensity); -- 2.36.6