Use correct JournalSegmentWriter for initial indexing 40/110740/1
authorRobert Varga <robert.varga@pantheon.tech>
Fri, 15 Mar 2024 08:11:41 +0000 (09:11 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Fri, 15 Mar 2024 08:13:21 +0000 (09:13 +0100)
JournalSegment should look at StorageLevel and pick the appropriate
writer instead of always using FileChannelJournalSegment.

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

index ec685fe5c970714cdf3bacae06201da6847e58b0..0058186e2f2a13fae13a08f4425ce6cc0201586f 100644 (file)
@@ -64,7 +64,10 @@ final class JournalSegment<E> implements AutoCloseable {
     } catch (IOException e) {
       throw new StorageException(e);
     }
-    writer = new FileChannelJournalSegmentWriter<>(channel, this, maxEntrySize, index, namespace);
+    writer = switch (storageLevel) {
+        case DISK -> new FileChannelJournalSegmentWriter<>(channel, this, maxEntrySize, index, namespace);
+        case MAPPED -> new MappedJournalSegmentWriter<>(channel, this, maxEntrySize, index, namespace).toFileChannel();
+    };
   }
 
   /**