diff --git oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/node/SegmentTarFactory.java oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/node/SegmentTarFactory.java index 05c5e86d73..19d6fd47e6 100644 --- oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/node/SegmentTarFactory.java +++ oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/node/SegmentTarFactory.java @@ -17,6 +17,7 @@ package org.apache.jackrabbit.oak.upgrade.cli.node; import static org.apache.jackrabbit.oak.segment.file.FileStoreBuilder.fileStoreBuilder; +import static org.apache.jackrabbit.oak.segment.SegmentCache.DEFAULT_SEGMENT_CACHE_MB;; import static org.apache.jackrabbit.oak.upgrade.cli.node.FileStoreUtils.asCloseable; import java.io.File; @@ -39,11 +40,14 @@ public class SegmentTarFactory implements NodeStoreFactory { private final boolean disableMmap; + private int segmentCacheSize; + private final boolean readOnly; - public SegmentTarFactory(String directory, boolean disableMmap, boolean readOnly) { + public SegmentTarFactory(String directory, boolean disableMmap, int segmentCacheSize, boolean readOnly) { this.dir = new File(directory); this.disableMmap = disableMmap; + this.segmentCacheSize = segmentCacheSize; this.readOnly = readOnly; createDirectoryIfMissing(dir); if (!dir.isDirectory()) { @@ -73,6 +77,7 @@ public class SegmentTarFactory implements NodeStoreFactory { try { if (readOnly) { final ReadOnlyFileStore fs; + builder.withSegmentCacheSize(segmentCacheSize > 0 ? segmentCacheSize : DEFAULT_SEGMENT_CACHE_MB); fs = builder.buildReadOnly(); closer.register(asCloseable(fs)); return SegmentNodeStoreBuilders.builder(fs).build(); diff --git oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/parser/StoreType.java oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/parser/StoreType.java index ad05ad3178..d8be4ebe2b 100644 --- oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/parser/StoreType.java +++ oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/parser/StoreType.java @@ -191,7 +191,8 @@ public enum StoreType { @Override public StoreFactory createFactory(String[] paths, MigrationDirection direction, MigrationOptions migrationOptions) { - return new StoreFactory(new SegmentTarFactory(paths[0], migrationOptions.isDisableMmap(), direction == MigrationDirection.SRC)); + return new StoreFactory(new SegmentTarFactory(paths[0], migrationOptions.isDisableMmap(), + migrationOptions.getCacheSizeInMB(), direction == MigrationDirection.SRC)); } @Override