Fix reader/writer buffer sharing 83/111083/1
authorRobert Varga <robert.varga@pantheon.tech>
Tue, 26 Mar 2024 23:46:44 +0000 (00:46 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Tue, 26 Mar 2024 23:48:17 +0000 (00:48 +0100)
DiskFileReaders should share the buffer with with their writers.

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

index 96386a5d621d24045dd150bf49ae5e8170a3017a..b634169fe848f34854d16007a600c6dd6734f5e9 100644 (file)
@@ -57,8 +57,8 @@ final class DiskJournalSegmentWriter<E> extends JournalSegmentWriter<E> {
     super(channel, segment, maxEntrySize, index, namespace);
 
     buffer = DiskFileReader.allocateBuffer(maxSegmentSize, maxEntrySize);
-    final var fileReader = new DiskFileReader(segment.file().file().toPath(), channel, maxSegmentSize, maxEntrySize);
-    reader = new JournalSegmentReader<>(segment, fileReader, maxEntrySize, namespace);
+    reader = new JournalSegmentReader<>(segment,
+        new DiskFileReader(segment.file().file().toPath(), channel, buffer), maxEntrySize, namespace);
     reset(0);
   }
 
@@ -66,8 +66,8 @@ final class DiskJournalSegmentWriter<E> extends JournalSegmentWriter<E> {
     super(previous);
 
     buffer = DiskFileReader.allocateBuffer(maxSegmentSize, maxEntrySize);
-    final var fileReader = new DiskFileReader(segment.file().file().toPath(), channel, maxSegmentSize, maxEntrySize);
-    reader = new JournalSegmentReader<>(segment, fileReader, maxEntrySize, namespace);
+    reader = new JournalSegmentReader<>(segment,
+        new DiskFileReader(segment.file().file().toPath(), channel, buffer), maxEntrySize, namespace);
     lastEntry = previous.getLastEntry();
     currentPosition = position;
   }