This is an automated email from the ASF dual-hosted git repository.
nizhikov pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ignite.git
The following commit(s) were added to refs/heads/master by this push:
new c2c733b82fb IGNITE-24454 Cache partition files calculation in
NodeFileTree (#11867)
c2c733b82fb is described below
commit c2c733b82fb56b96591f21238f49a1c939f641e5
Author: Nikolay <[email protected]>
AuthorDate: Wed Feb 12 20:57:31 2025 +0300
IGNITE-24454 Cache partition files calculation in NodeFileTree (#11867)
---
.../commandline/indexreader/IgniteIndexReader.java | 7 +-
.../indexreader/IgniteIndexReaderTest.java | 4 +-
.../util/GridCommandHandlerIndexingTest.java | 2 +-
.../internal/MarshallerMappingFileStore.java | 2 +-
.../apache/ignite/internal/binary/BinaryUtils.java | 2 +-
.../ignite/internal/cdc/CdcConsumerState.java | 4 +-
.../processors/cache/GridLocalConfigManager.java | 38 ++----
.../cache/binary/BinaryMetadataFileStore.java | 2 +-
.../CheckCorruptedCacheStoresCleanAction.java | 6 +-
.../CleanCacheStoresMaintenanceAction.java | 6 +-
.../CorruptedPdsMaintenanceCallback.java | 2 +-
.../GridCacheDatabaseSharedManager.java | 3 +-
.../checkpoint/CheckpointMarkersStorage.java | 6 +-
.../defragmentation/DefragmentationFileUtils.java | 12 +-
.../persistence/file/FilePageStoreManager.java | 109 +++---------------
.../cache/persistence/filename/NodeFileTree.java | 128 ++++++++++++++++++++-
.../snapshot/IgniteSnapshotManager.java | 14 +--
.../persistence/snapshot/SnapshotFutureTask.java | 27 ++++-
.../snapshot/SnapshotPartitionsVerifyHandler.java | 16 +--
.../snapshot/SnapshotResponseRemoteFutureTask.java | 4 +-
.../snapshot/SnapshotRestoreProcess.java | 10 +-
.../snapshot/dump/CreateDumpFutureTask.java | 2 +-
.../cache/persistence/snapshot/dump/Dump.java | 8 +-
.../snapshot/dump/WriteOnlyZipFileIOFactory.java | 2 +-
.../cache/persistence/wal/FileDescriptor.java | 4 +-
.../persistence/wal/FileWriteAheadLogManager.java | 2 +-
.../ignite/cache/NodeWithFilterRestartTest.java | 4 +-
.../GridIoManagerFileTransmissionSelfTest.java | 2 +-
.../cache/WalModeChangeAdvancedSelfTest.java | 17 +--
...CacheConfigurationFileConsistencyCheckTest.java | 4 +-
.../persistence/IgnitePdsCorruptedStoreTest.java | 3 +-
.../persistence/IgnitePdsDefragmentationTest.java | 7 +-
.../PagesPossibleCorruptionDiagnosticTest.java | 2 +-
.../db/IgnitePdsCheckpointRecoveryTest.java | 2 +-
.../db/IgnitePdsDataRegionMetricsTest.java | 4 +-
.../db/checkpoint/CheckpointFreeListTest.java | 6 +-
.../db/file/IgnitePdsDiskErrorsRecoveringTest.java | 4 +-
.../persistence/db/wal/IgniteLocalWalSizeTest.java | 2 +-
.../wal/IgniteNodeStoppedDuringDisableWALTest.java | 9 +-
.../snapshot/AbstractSnapshotSelfTest.java | 11 +-
.../snapshot/IgniteClusterSnapshotCheckTest.java | 10 +-
.../IgniteClusterSnapshotRestoreSelfTest.java | 8 +-
.../snapshot/IgniteSnapshotRemoteRequestTest.java | 8 +-
.../IgniteSnapshotRestoreFromRemoteTest.java | 4 +-
.../snapshot/IncrementalSnapshotTest.java | 2 +-
.../snapshot/dump/IgniteCacheDumpSelf2Test.java | 17 +--
.../IgnitePdsIndexingDefragmentationTest.java | 6 +-
.../persistence/db/wal/IgniteWalRecoveryTest.java | 8 +-
.../snapshot/IgniteClusterSnapshotMetricsTest.java | 4 +-
.../processors/database/RebuildIndexTest.java | 19 +--
.../RebuildIndexWithHistoricalRebalanceTest.java | 19 +--
.../WalDisabledDuringIndexRecreateTest.java | 2 +-
.../query/h2/GridIndexRebuildSelfTest.java | 2 +-
53 files changed, 308 insertions(+), 300 deletions(-)
diff --git
a/modules/control-utility/src/main/java/org/apache/ignite/internal/commandline/indexreader/IgniteIndexReader.java
b/modules/control-utility/src/main/java/org/apache/ignite/internal/commandline/indexreader/IgniteIndexReader.java
index 4ffd28a6c6d..7ec4b4441f7 100644
---
a/modules/control-utility/src/main/java/org/apache/ignite/internal/commandline/indexreader/IgniteIndexReader.java
+++
b/modules/control-utility/src/main/java/org/apache/ignite/internal/commandline/indexreader/IgniteIndexReader.java
@@ -66,6 +66,7 @@ import
org.apache.ignite.internal.processors.cache.persistence.file.AsyncFileIOF
import
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStore;
import
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager;
import
org.apache.ignite.internal.processors.cache.persistence.file.FileVersionCheckingFactory;
+import
org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree;
import
org.apache.ignite.internal.processors.cache.persistence.freelist.io.PagesListMetaIO;
import
org.apache.ignite.internal.processors.cache.persistence.freelist.io.PagesListNodeIO;
import
org.apache.ignite.internal.processors.cache.persistence.tree.io.AbstractDataPageIO;
@@ -115,9 +116,9 @@ import static
org.apache.ignite.internal.pagemem.PageIdUtils.itemId;
import static org.apache.ignite.internal.pagemem.PageIdUtils.pageId;
import static org.apache.ignite.internal.pagemem.PageIdUtils.pageIndex;
import static org.apache.ignite.internal.pagemem.PageIdUtils.partId;
-import static
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.INDEX_FILE_NAME;
-import static
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.PART_FILE_TEMPLATE;
import static
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreV2.VERSION;
+import static
org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree.INDEX_FILE_NAME;
+import static
org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree.PART_FILE_TEMPLATE;
import static org.apache.ignite.internal.util.GridUnsafe.allocateBuffer;
import static org.apache.ignite.internal.util.GridUnsafe.bufferAddress;
import static org.apache.ignite.internal.util.GridUnsafe.freeBuffer;
@@ -199,7 +200,7 @@ public class IgniteIndexReader implements AutoCloseable {
/** Logger. */
private final IgniteLogger log;
- /** Page store of {@link FilePageStoreManager#INDEX_FILE_NAME}. */
+ /** Page store of {@link NodeFileTree#INDEX_FILE_NAME}. */
private final FilePageStore idxStore;
/** Partitions page stores, may contains {@code null}. */
diff --git
a/modules/control-utility/src/test/java/org/apache/ignite/internal/commandline/indexreader/IgniteIndexReaderTest.java
b/modules/control-utility/src/test/java/org/apache/ignite/internal/commandline/indexreader/IgniteIndexReaderTest.java
index fe66b0c0ff0..d2a583063b1 100644
---
a/modules/control-utility/src/test/java/org/apache/ignite/internal/commandline/indexreader/IgniteIndexReaderTest.java
+++
b/modules/control-utility/src/test/java/org/apache/ignite/internal/commandline/indexreader/IgniteIndexReaderTest.java
@@ -86,8 +86,8 @@ import static
org.apache.ignite.internal.commandline.indexreader.IgniteIndexRead
import static
org.apache.ignite.internal.pagemem.PageIdAllocator.INDEX_PARTITION;
import static org.apache.ignite.internal.pagemem.PageIdUtils.pageIndex;
import static org.apache.ignite.internal.pagemem.PageIdUtils.partId;
-import static
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.INDEX_FILE_NAME;
-import static
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.PART_FILE_TEMPLATE;
+import static
org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree.INDEX_FILE_NAME;
+import static
org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree.PART_FILE_TEMPLATE;
import static org.apache.ignite.testframework.GridTestUtils.assertContains;
import static org.apache.ignite.testframework.GridTestUtils.assertNotContains;
import static org.apache.ignite.testframework.GridTestUtils.assertThrows;
diff --git
a/modules/control-utility/src/test/java/org/apache/ignite/util/GridCommandHandlerIndexingTest.java
b/modules/control-utility/src/test/java/org/apache/ignite/util/GridCommandHandlerIndexingTest.java
index ebbda978bf2..d95a37a3cfa 100644
---
a/modules/control-utility/src/test/java/org/apache/ignite/util/GridCommandHandlerIndexingTest.java
+++
b/modules/control-utility/src/test/java/org/apache/ignite/util/GridCommandHandlerIndexingTest.java
@@ -39,7 +39,7 @@ import org.junit.Test;
import static
org.apache.ignite.internal.IgniteNodeAttributes.ATTR_IGNITE_INSTANCE_NAME;
import static
org.apache.ignite.internal.commandline.CommandHandler.EXIT_CODE_OK;
-import static
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.INDEX_FILE_NAME;
+import static
org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree.INDEX_FILE_NAME;
import static
org.apache.ignite.internal.processors.cache.verify.IdleVerifyUtility.GRID_NOT_IDLE_MSG;
import static org.apache.ignite.testframework.GridTestUtils.assertContains;
import static org.apache.ignite.testframework.GridTestUtils.assertNotContains;
diff --git
a/modules/core/src/main/java/org/apache/ignite/internal/MarshallerMappingFileStore.java
b/modules/core/src/main/java/org/apache/ignite/internal/MarshallerMappingFileStore.java
index 3b6c5963c1e..ddc40c37c79 100644
---
a/modules/core/src/main/java/org/apache/ignite/internal/MarshallerMappingFileStore.java
+++
b/modules/core/src/main/java/org/apache/ignite/internal/MarshallerMappingFileStore.java
@@ -39,7 +39,7 @@ import static java.nio.file.StandardCopyOption.ATOMIC_MOVE;
import static java.nio.file.StandardCopyOption.REPLACE_EXISTING;
import static org.apache.ignite.internal.MarshallerPlatformIds.otherPlatforms;
import static
org.apache.ignite.internal.binary.BinaryUtils.MAPPING_FILE_EXTENSION;
-import static
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.TMP_SUFFIX;
+import static
org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree.TMP_SUFFIX;
/**
* File-based persistence provider for {@link MarshallerContextImpl}.
diff --git
a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryUtils.java
b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryUtils.java
index c4d925de429..2f5ed83df9a 100644
---
a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryUtils.java
+++
b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryUtils.java
@@ -78,7 +78,7 @@ import org.jetbrains.annotations.Nullable;
import static java.nio.charset.StandardCharsets.UTF_8;
import static
org.apache.ignite.IgniteSystemProperties.IGNITE_BINARY_MARSHALLER_USE_STRING_SERIALIZATION_VER_2;
-import static
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.TMP_SUFFIX;
+import static
org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree.TMP_SUFFIX;
/**
* Binary utils.
diff --git
a/modules/core/src/main/java/org/apache/ignite/internal/cdc/CdcConsumerState.java
b/modules/core/src/main/java/org/apache/ignite/internal/cdc/CdcConsumerState.java
index 942fd248da6..29ac25caf4c 100644
---
a/modules/core/src/main/java/org/apache/ignite/internal/cdc/CdcConsumerState.java
+++
b/modules/core/src/main/java/org/apache/ignite/internal/cdc/CdcConsumerState.java
@@ -43,8 +43,8 @@ import org.apache.ignite.internal.util.typedef.T2;
import static java.nio.file.StandardCopyOption.ATOMIC_MOVE;
import static java.nio.file.StandardCopyOption.REPLACE_EXISTING;
-import static
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.FILE_SUFFIX;
-import static
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.TMP_SUFFIX;
+import static
org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree.FILE_SUFFIX;
+import static
org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree.TMP_SUFFIX;
import static
org.apache.ignite.internal.processors.cache.persistence.wal.WALPointer.POINTER_SIZE;
/**
diff --git
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridLocalConfigManager.java
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridLocalConfigManager.java
index 8d074372114..87b01442e60 100644
---
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridLocalConfigManager.java
+++
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridLocalConfigManager.java
@@ -69,8 +69,8 @@ import org.jetbrains.annotations.Nullable;
import static java.nio.file.Files.newDirectoryStream;
import static
org.apache.ignite.internal.processors.cache.GridCacheUtils.UTILITY_CACHE_NAME;
-import static
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.CACHE_DATA_FILENAME;
-import static
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.TMP_SUFFIX;
+import static
org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree.CACHE_DATA_FILENAME;
+import static
org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree.TMP_SUFFIX;
import static
org.apache.ignite.internal.processors.query.QueryUtils.normalizeObjectName;
import static
org.apache.ignite.internal.processors.query.QueryUtils.normalizeSchemaName;
@@ -145,7 +145,7 @@ public class GridLocalConfigManager {
if (!cacheDir.exists())
continue;
- File[] ccfgFiles = cacheDir.listFiles((dir, name) ->
name.endsWith(CACHE_DATA_FILENAME));
+ File[] ccfgFiles =
cacheDir.listFiles(NodeFileTree::cacheOrCacheGroupConfigFile);
if (ccfgFiles == null)
continue;
@@ -167,18 +167,17 @@ public class GridLocalConfigManager {
if (ctx.clientNode())
return Collections.emptyMap();
- File[] files = ft.nodeStorage().listFiles();
+ File[] dirs = ft.nodeStorage().listFiles(File::isDirectory);
- if (files == null)
+ if (dirs == null)
return Collections.emptyMap();
Map<String, StoredCacheData> ccfgs = new HashMap<>();
- Arrays.sort(files);
+ Arrays.sort(dirs);
- for (File file : files) {
- if (file.isDirectory())
- readCacheConfigurations(file, ccfgs);
+ for (File file : dirs) {
+ readCacheConfigurations(file, ccfgs);
}
return ccfgs;
@@ -293,7 +292,7 @@ public class GridLocalConfigManager {
assert cacheWorkDir.exists() : "Work directory does not exist: " +
cacheWorkDir;
- File file = cacheConfigurationFile(ccfg);
+ File file = ft.cacheConfigurationFile(ccfg);
Path filePath = file.toPath();
chgLock.readLock().lock();
@@ -337,7 +336,7 @@ public class GridLocalConfigManager {
try {
CacheConfiguration<?, ?> ccfg = cacheData.config();
- File file = cacheConfigurationFile(ccfg);
+ File file = ft.cacheConfigurationFile(ccfg);
if (file.exists()) {
for (BiConsumer<String, File> lsnr : lsnrs)
@@ -425,7 +424,7 @@ public class GridLocalConfigManager {
if (cacheGrpDir != null && cacheGrpDir.exists()) {
DirectoryStream.Filter<Path> cacheCfgFileFilter = new
DirectoryStream.Filter<Path>() {
@Override public boolean accept(Path path) {
- return Files.isRegularFile(path) &&
path.getFileName().toString().endsWith(CACHE_DATA_FILENAME);
+ return Files.isRegularFile(path) &&
NodeFileTree.cacheOrCacheGroupConfigFile(path.toFile());
}
};
@@ -451,7 +450,7 @@ public class GridLocalConfigManager {
return;
for (File file : files) {
- if (!file.isDirectory() &&
file.getName().endsWith(CACHE_DATA_FILENAME) && file.length() > 0)
+ if (!file.isDirectory() &&
NodeFileTree.cacheOrCacheGroupConfigFile(file) && file.length() > 0)
readAndAdd(
ccfgs,
file,
@@ -526,19 +525,6 @@ public class GridLocalConfigManager {
return drCfg != null && !drCfg.isPersistenceEnabled() &&
drCfg.isCdcEnabled();
}
- /**
- * @param ccfg Cache configuration.
- * @return Cache configuration file with respect to {@link
CacheConfiguration#getGroupName} value.
- */
- public File cacheConfigurationFile(CacheConfiguration<?, ?> ccfg) {
- return new File(ft.cacheStorage(ccfg), cacheDataFilename(ccfg));
- }
-
- /** @return Name of cache data filename. */
- public static String cacheDataFilename(CacheConfiguration<?, ?> ccfg) {
- return ccfg.getGroupName() == null ? CACHE_DATA_FILENAME :
(ccfg.getName() + CACHE_DATA_FILENAME);
- }
-
/**
* @return {@code True} if need locally start all existing caches on
client node start.
*/
diff --git
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/binary/BinaryMetadataFileStore.java
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/binary/BinaryMetadataFileStore.java
index d2fbc8c8041..75de1d67028 100644
---
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/binary/BinaryMetadataFileStore.java
+++
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/binary/BinaryMetadataFileStore.java
@@ -49,7 +49,7 @@ import org.apache.ignite.thread.IgniteThread;
import static java.nio.file.StandardCopyOption.ATOMIC_MOVE;
import static java.nio.file.StandardCopyOption.REPLACE_EXISTING;
-import static
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.TMP_SUFFIX;
+import static
org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree.TMP_SUFFIX;
/**
* Class handles saving/restoring binary metadata to/from disk.
diff --git
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/CheckCorruptedCacheStoresCleanAction.java
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/CheckCorruptedCacheStoresCleanAction.java
index 2073b9bc3eb..ffb7035941a 100644
---
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/CheckCorruptedCacheStoresCleanAction.java
+++
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/CheckCorruptedCacheStoresCleanAction.java
@@ -18,13 +18,11 @@
package org.apache.ignite.internal.processors.cache.persistence;
import java.io.File;
-
+import
org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree;
import org.apache.ignite.maintenance.MaintenanceAction;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
-import static
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.CACHE_DATA_FILENAME;
-
/** */
public class CheckCorruptedCacheStoresCleanAction implements
MaintenanceAction<Boolean> {
/** */
@@ -49,7 +47,7 @@ public class CheckCorruptedCacheStoresCleanAction implements
MaintenanceAction<B
if (cacheStoreDir.exists() && cacheStoreDir.isDirectory()) {
for (File f : cacheStoreDir.listFiles()) {
- if (!f.getName().equals(CACHE_DATA_FILENAME))
+ if (!NodeFileTree.cacheConfigFile(f))
return Boolean.FALSE;
}
}
diff --git
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/CleanCacheStoresMaintenanceAction.java
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/CleanCacheStoresMaintenanceAction.java
index de94e6e6fe1..53693b64bd9 100644
---
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/CleanCacheStoresMaintenanceAction.java
+++
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/CleanCacheStoresMaintenanceAction.java
@@ -18,13 +18,11 @@
package org.apache.ignite.internal.processors.cache.persistence;
import java.io.File;
-
+import
org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree;
import org.apache.ignite.maintenance.MaintenanceAction;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
-import static
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.CACHE_DATA_FILENAME;
-
/**
*
*/
@@ -54,7 +52,7 @@ public class CleanCacheStoresMaintenanceAction implements
MaintenanceAction<Void
if (cacheStoreDir.exists() && cacheStoreDir.isDirectory()) {
for (File file : cacheStoreDir.listFiles()) {
- if (!file.getName().equals(CACHE_DATA_FILENAME))
+ if (!NodeFileTree.cacheConfigFile(file))
file.delete();
}
}
diff --git
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/CorruptedPdsMaintenanceCallback.java
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/CorruptedPdsMaintenanceCallback.java
index f596a8b8ad6..c21e30f2c91 100644
---
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/CorruptedPdsMaintenanceCallback.java
+++
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/CorruptedPdsMaintenanceCallback.java
@@ -24,7 +24,7 @@ import org.apache.ignite.maintenance.MaintenanceAction;
import org.apache.ignite.maintenance.MaintenanceWorkflowCallback;
import org.jetbrains.annotations.NotNull;
-import static
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.CACHE_DATA_FILENAME;
+import static
org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree.CACHE_DATA_FILENAME;
/**
*
diff --git
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheDatabaseSharedManager.java
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheDatabaseSharedManager.java
index 9fb89cc5c2c..35356be370a 100755
---
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheDatabaseSharedManager.java
+++
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheDatabaseSharedManager.java
@@ -118,6 +118,7 @@ import
org.apache.ignite.internal.processors.cache.persistence.file.FileIO;
import
org.apache.ignite.internal.processors.cache.persistence.file.FileIOFactory;
import
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStore;
import
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager;
+import
org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree;
import
org.apache.ignite.internal.processors.cache.persistence.metastorage.MetaStorage;
import
org.apache.ignite.internal.processors.cache.persistence.metastorage.MetastorageLifecycleListener;
import
org.apache.ignite.internal.processors.cache.persistence.pagemem.PageMemoryEx;
@@ -1320,7 +1321,7 @@ public class GridCacheDatabaseSharedManager extends
IgniteCacheDatabaseSharedMan
Path anyIdxPartFile = IgniteUtils.searchFileRecursively(
cctx.kernalContext().pdsFolderResolver().fileTree().nodeStorage().toPath(),
- FilePageStoreManager.INDEX_FILE_NAME
+ NodeFileTree.INDEX_FILE_NAME
);
if (anyIdxPartFile != null) {
diff --git
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/checkpoint/CheckpointMarkersStorage.java
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/checkpoint/CheckpointMarkersStorage.java
index 8c33ac28349..d4a9a65425a 100644
---
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/checkpoint/CheckpointMarkersStorage.java
+++
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/checkpoint/CheckpointMarkersStorage.java
@@ -47,7 +47,6 @@ import
org.apache.ignite.internal.pagemem.wal.record.CheckpointRecord;
import
org.apache.ignite.internal.processors.cache.persistence.StorageException;
import org.apache.ignite.internal.processors.cache.persistence.file.FileIO;
import
org.apache.ignite.internal.processors.cache.persistence.file.FileIOFactory;
-import
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager;
import
org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree;
import org.apache.ignite.internal.processors.cache.persistence.wal.WALPointer;
import org.apache.ignite.internal.util.IgniteUtils;
@@ -57,6 +56,7 @@ import org.jetbrains.annotations.Nullable;
import static java.nio.file.StandardOpenOption.READ;
import static
org.apache.ignite.IgniteSystemProperties.IGNITE_CHECKPOINT_MAP_SNAPSHOT_THRESHOLD;
import static
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.TMP_FILE_MATCHER;
+import static
org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree.TMP_SUFFIX;
/**
* Abstraction responsible for managing checkpoint markers storage.
@@ -79,7 +79,7 @@ public class CheckpointMarkersStorage {
/** Earliest checkpoint map snapshot temporary file name. */
private static final String EARLIEST_CP_SNAPSHOT_TMP_FILE =
- EARLIEST_CP_SNAPSHOT_FILE + FilePageStoreManager.TMP_SUFFIX;
+ EARLIEST_CP_SNAPSHOT_FILE + TMP_SUFFIX;
/** Checkpoint map snapshot executor. */
private final Executor checkpointMapSnapshotExecutor;
@@ -464,7 +464,7 @@ public class CheckpointMarkersStorage {
boolean skipSync
) throws StorageException {
String fileName = checkpointFileName(cp, type);
- String tmpFileName = fileName + FilePageStoreManager.TMP_SUFFIX;
+ String tmpFileName = fileName + NodeFileTree.TMP_SUFFIX;
try {
try (FileIO io =
ioFactory.create(Paths.get(ft.checkpoint().getAbsolutePath(), skipSync ?
fileName : tmpFileName).toFile(),
diff --git
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/defragmentation/DefragmentationFileUtils.java
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/defragmentation/DefragmentationFileUtils.java
index b0e801927f1..1c329cee6f6 100644
---
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/defragmentation/DefragmentationFileUtils.java
+++
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/defragmentation/DefragmentationFileUtils.java
@@ -32,12 +32,12 @@ import static java.nio.file.StandardCopyOption.ATOMIC_MOVE;
import static java.nio.file.StandardCopyOption.REPLACE_EXISTING;
import static java.nio.file.StandardOpenOption.CREATE_NEW;
import static java.nio.file.StandardOpenOption.WRITE;
-import static
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.FILE_SUFFIX;
-import static
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.INDEX_FILE_NAME;
-import static
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.INDEX_FILE_PREFIX;
-import static
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.PART_FILE_PREFIX;
-import static
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.PART_FILE_TEMPLATE;
-import static
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.TMP_SUFFIX;
+import static
org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree.FILE_SUFFIX;
+import static
org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree.INDEX_FILE_NAME;
+import static
org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree.INDEX_FILE_PREFIX;
+import static
org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree.PART_FILE_PREFIX;
+import static
org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree.PART_FILE_TEMPLATE;
+import static
org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree.TMP_SUFFIX;
/**
* Everything related to file management during defragmentation process.
diff --git
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/file/FilePageStoreManager.java
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/file/FilePageStoreManager.java
index ff69f3251ef..d58aa066e7e 100755
---
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/file/FilePageStoreManager.java
+++
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/file/FilePageStoreManager.java
@@ -52,7 +52,6 @@ import org.apache.ignite.failure.FailureType;
import org.apache.ignite.internal.GridKernalContext;
import org.apache.ignite.internal.client.util.GridConcurrentHashSet;
import
org.apache.ignite.internal.managers.encryption.EncryptionCacheKeyProvider;
-import org.apache.ignite.internal.pagemem.PageIdAllocator;
import org.apache.ignite.internal.pagemem.PageIdUtils;
import org.apache.ignite.internal.pagemem.store.IgnitePageStoreManager;
import org.apache.ignite.internal.pagemem.store.PageStore;
@@ -82,46 +81,24 @@ import org.apache.ignite.thread.IgniteThread;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
-import static java.lang.String.format;
import static java.nio.file.Files.delete;
import static java.nio.file.Files.newDirectoryStream;
import static java.util.Objects.requireNonNull;
import static
org.apache.ignite.internal.pagemem.PageIdAllocator.INDEX_PARTITION;
import static
org.apache.ignite.internal.pagemem.PageIdAllocator.MAX_PARTITION_ID;
+import static
org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree.CACHE_DATA_TMP_FILENAME;
import static
org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree.CACHE_DIR_WITH_META_FILTER;
+import static
org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree.FILE_SUFFIX;
+import static
org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree.INDEX_FILE_NAME;
+import static
org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree.TMP_SUFFIX;
+import static
org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree.partitionFileName;
+import static
org.apache.ignite.internal.processors.cache.persistence.metastorage.MetaStorage.METASTORAGE_DIR_NAME;
/**
* File page store manager.
*/
public class FilePageStoreManager extends GridCacheSharedManagerAdapter
implements IgnitePageStoreManager,
PageStoreCollection {
- /** File suffix. */
- public static final String FILE_SUFFIX = ".bin";
-
- /** Suffix for zip files */
- public static final String ZIP_SUFFIX = ".zip";
-
- /** Suffix for tmp files */
- public static final String TMP_SUFFIX = ".tmp";
-
- /** Partition file prefix. */
- public static final String PART_FILE_PREFIX = "part-";
-
- /** */
- public static final String INDEX_FILE_PREFIX = "index";
-
- /** */
- public static final String INDEX_FILE_NAME = INDEX_FILE_PREFIX +
FILE_SUFFIX;
-
- /** */
- public static final String PART_FILE_TEMPLATE = PART_FILE_PREFIX + "%d" +
FILE_SUFFIX;
-
- /** */
- public static final String CACHE_DATA_FILENAME = "cache_data.dat";
-
- /** */
- public static final String CACHE_DATA_TMP_FILENAME = CACHE_DATA_FILENAME +
TMP_SUFFIX;
-
/** */
public static final String DFLT_STORE_DIR = "db";
@@ -389,10 +366,8 @@ public class FilePageStoreManager extends
GridCacheSharedManagerAdapter implemen
if (!locEnabled || !globalEnabled) {
File dir = ft.cacheStorage(desc.config());
- if (Arrays.stream(
- dir.listFiles()).anyMatch(f ->
!f.getName().equals(CACHE_DATA_FILENAME))) {
+ if (Arrays.stream(dir.listFiles()).anyMatch(f ->
!NodeFileTree.cacheConfigFile(f)))
corruptedCacheGrps.add(desc.config());
- }
}
}
}
@@ -443,7 +418,7 @@ public class FilePageStoreManager extends
GridCacheSharedManagerAdapter implemen
PageMetrics pageMetrics =
dataRegion.metrics().cacheGrpPageMetrics(grpId);
CacheStoreHolder holder = initDir(
- new File(ft.nodeStorage(), MetaStorage.METASTORAGE_DIR_NAME),
+ METASTORAGE_DIR_NAME,
grpId,
MetaStorage.METASTORAGE_CACHE_NAME,
MetaStorage.METASTORAGE_PARTITIONS.size(),
@@ -533,14 +508,12 @@ public class FilePageStoreManager extends
GridCacheSharedManagerAdapter implemen
private CacheStoreHolder initForCache(CacheGroupDescriptor grpDesc,
CacheConfiguration ccfg) throws IgniteCheckedException {
assert !grpDesc.sharedGroup() || ccfg.getGroupName() != null :
ccfg.getName();
- File cacheWorkDir = ft.cacheStorage(ccfg);
-
String dataRegionName = grpDesc.config().getDataRegionName();
DataRegion dataRegion = cctx.database().dataRegion(dataRegionName);
PageMetrics pageMetrics =
dataRegion.metrics().cacheGrpPageMetrics(grpDesc.groupId());
return initDir(
- cacheWorkDir,
+ ft.cacheDirName(ccfg),
grpDesc.groupId(),
ccfg.getName(),
grpDesc.config().getAffinity().partitions(),
@@ -613,7 +586,7 @@ public class FilePageStoreManager extends
GridCacheSharedManagerAdapter implemen
}
/**
- * @param cacheWorkDir Work directory.
+ * @param cacheDir Cache dir name.
* @param grpId Group ID.
* @param cacheName Cache name.
* @param partitions Number of partitions.
@@ -622,7 +595,8 @@ public class FilePageStoreManager extends
GridCacheSharedManagerAdapter implemen
* @return Cache store holder.
* @throws IgniteCheckedException If failed.
*/
- private CacheStoreHolder initDir(File cacheWorkDir,
+ private CacheStoreHolder initDir(
+ String cacheDir,
int grpId,
String cacheName,
int partitions,
@@ -630,6 +604,8 @@ public class FilePageStoreManager extends
GridCacheSharedManagerAdapter implemen
boolean encrypted,
Collection<String> grpCaches) throws IgniteCheckedException {
try {
+ File cacheWorkDir = ft.cacheStorage(cacheDir);
+
boolean dirExisted = checkAndInitCacheWorkDir(cacheWorkDir, log);
if (dirExisted) {
@@ -679,7 +655,7 @@ public class FilePageStoreManager extends
GridCacheSharedManagerAdapter implemen
PageStore partStore =
pageStoreFactory.createPageStore(
PageStore.TYPE_DATA,
- () -> getPartitionFilePath(cacheWorkDir, p),
+ () -> ft.partitionFile(cacheDir, p).toPath(),
pageMetrics.totalPages()::add);
partStores[partId] = partStore;
@@ -700,27 +676,7 @@ public class FilePageStoreManager extends
GridCacheSharedManagerAdapter implemen
* @param partId Partition id.
*/
@NotNull private Path getPartitionFilePath(File cacheWorkDir, int partId) {
- return new File(cacheWorkDir, getPartitionFileName(partId)).toPath();
- }
-
- /**
- * @param workDir Cache work directory.
- * @param cacheDirName Cache directory name.
- * @param partId Partition id.
- * @return Partition file.
- */
- @NotNull public static File getPartitionFile(File workDir, String
cacheDirName, int partId) {
- return new File(NodeFileTree.cacheStorage(workDir, cacheDirName),
getPartitionFileName(partId));
- }
-
- /**
- * @param partId Partition id.
- * @return File name.
- */
- public static String getPartitionFileName(int partId) {
- assert partId <= MAX_PARTITION_ID || partId == INDEX_PARTITION;
-
- return partId == INDEX_PARTITION ? INDEX_FILE_NAME :
format(PART_FILE_TEMPLATE, partId);
+ return new File(cacheWorkDir, partitionFileName(partId)).toPath();
}
/**
@@ -845,20 +801,6 @@ public class FilePageStoreManager extends
GridCacheSharedManagerAdapter implemen
.orElse(null);
}
- /**
- * @param partFileName Partition file name.
- * @return Partition id.
- */
- public static int partId(String partFileName) {
- if (partFileName.equals(INDEX_FILE_NAME))
- return PageIdAllocator.INDEX_PARTITION;
-
- if (partFileName.startsWith(PART_FILE_PREFIX))
- return
Integer.parseInt(partFileName.substring(PART_FILE_PREFIX.length(),
partFileName.indexOf('.')));
-
- throw new IllegalStateException("Illegal partition file name: " +
partFileName);
- }
-
/**
* @param cacheDir Cache directory to check.
* @return List of cache partitions in given directory.
@@ -889,7 +831,7 @@ public class FilePageStoreManager extends
GridCacheSharedManagerAdapter implemen
* @return Array of cache data files.
*/
public static File[] cacheDataFiles(File root) {
- return root.listFiles(f -> f.getName().endsWith(CACHE_DATA_FILENAME));
+ return root.listFiles(NodeFileTree::cacheOrCacheGroupConfigFile);
}
/** {@inheritDoc} */
@@ -912,23 +854,6 @@ public class FilePageStoreManager extends
GridCacheSharedManagerAdapter implemen
return pageCnt;
}
- /**
- * @param grpId Group id.
- * @return Name of cache group directory.
- * @throws IgniteCheckedException If cache group doesn't exist.
- */
- public String cacheDirName(int grpId) throws IgniteCheckedException {
- if (grpId == MetaStorage.METASTORAGE_CACHE_ID)
- return MetaStorage.METASTORAGE_DIR_NAME;
-
- CacheGroupContext gctx = cctx.cache().cacheGroup(grpId);
-
- if (gctx == null)
- throw new IgniteCheckedException("Cache group context has not
found due to the cache group is stopped.");
-
- return ft.cacheDirName(gctx.config());
- }
-
/**
* @param cleanFiles {@code True} if the stores should delete it's files
upon close.
*/
diff --git
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/filename/NodeFileTree.java
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/filename/NodeFileTree.java
index 2a1bb7546e1..65761f857e9 100644
---
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/filename/NodeFileTree.java
+++
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/filename/NodeFileTree.java
@@ -31,14 +31,18 @@ import org.apache.ignite.internal.util.typedef.internal.CU;
import org.apache.ignite.internal.util.typedef.internal.S;
import org.apache.ignite.internal.util.typedef.internal.U;
import org.apache.ignite.spi.checkpoint.sharedfs.SharedFsCheckpointSpi;
+import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
+import static java.lang.String.format;
import static
org.apache.ignite.configuration.DataStorageConfiguration.DFLT_WAL_ARCHIVE_PATH;
import static
org.apache.ignite.configuration.DataStorageConfiguration.DFLT_WAL_CDC_PATH;
import static
org.apache.ignite.configuration.DataStorageConfiguration.DFLT_WAL_PATH;
-import static
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.TMP_SUFFIX;
-import static
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.ZIP_SUFFIX;
+import static
org.apache.ignite.internal.pagemem.PageIdAllocator.INDEX_PARTITION;
+import static
org.apache.ignite.internal.pagemem.PageIdAllocator.MAX_PARTITION_ID;
import static
org.apache.ignite.internal.processors.cache.persistence.filename.PdsFolderResolver.DB_DEFAULT_FOLDER;
+import static
org.apache.ignite.internal.processors.cache.persistence.metastorage.MetaStorage.METASTORAGE_CACHE_NAME;
+import static
org.apache.ignite.internal.processors.cache.persistence.metastorage.MetaStorage.METASTORAGE_DIR_NAME;
/**
* Provides access to Ignite node file tree.
@@ -78,17 +82,18 @@ import static
org.apache.ignite.internal.processors.cache.persistence.filename.P
* │ │ └── 1645778359.classname0
* │ ├── node00-e57e62a9-2ccf-4e1b-a11e-c24c21b9ed4c
← nodeStorage (node 0).
* │ │ ├── cache-default
← cacheStorage (cache name "default").
- * │ │ │ ├── cache_data.dat
+ * │ │ │ ├── cache_data.dat
← cache("default") configuration file.
* │ │ │ ├── index.bin
* │ │ │ ├── part-0.bin
* │ │ │ ├── part-1.bin
* ...
* │ │ │ └── part-9.bin
* │ │ ├── cache-ignite-sys-cache
← cacheStorage (cache name "ignite-sys-cache").
- * │ │ │ ├── cache_data.dat
+ * │ │ │ ├── cache_data.dat
← cache("ignite-sys-cache") configuration file.
* │ │ │ └── index.bin
* │ │ ├── cacheGroup-tx-cache
← cacheStorage (cache group "tx-cache").
- * │ │ │ ├── cache_data.dat
+ * │ │ │ ├── tx-cachecache_data.dat
← cache("tx-cache") configuration file inside group.
+ * │ │ │ ├── othercache_data.dat
← cache("other") configuration file inside group.
* │ │ │ ├── index.bin
* │ │ │ ├── part-0.bin
* │ │ │ ├── part-1.bin
@@ -163,6 +168,15 @@ public class NodeFileTree extends SharedFileTree {
/** File extension of WAL segment. */
public static final String WAL_SEGMENT_FILE_EXT = ".wal";
+ /** File suffix. */
+ public static final String FILE_SUFFIX = ".bin";
+
+ /** Suffix for tmp files */
+ public static final String TMP_SUFFIX = ".tmp";
+
+ /** Suffix for zip files */
+ public static final String ZIP_SUFFIX = ".zip";
+
/** File extension of temp WAL segment. */
public static final String TMP_WAL_SEG_FILE_EXT = WAL_SEGMENT_FILE_EXT +
TMP_SUFFIX;
@@ -186,6 +200,24 @@ public class NodeFileTree extends SharedFileTree {
CACHE_DIR_FILTER.test(dir) ||
dir.getName().equals(MetaStorage.METASTORAGE_DIR_NAME);
+ /** Partition file prefix. */
+ public static final String PART_FILE_PREFIX = "part-";
+
+ /** Index file prefix. */
+ public static final String INDEX_FILE_PREFIX = "index";
+
+ /** Index file name. */
+ public static final String INDEX_FILE_NAME = INDEX_FILE_PREFIX +
FILE_SUFFIX;
+
+ /** Partition file template. */
+ public static final String PART_FILE_TEMPLATE = PART_FILE_PREFIX + "%d" +
FILE_SUFFIX;
+
+ /** */
+ public static final String CACHE_DATA_FILENAME = "cache_data.dat";
+
+ /** */
+ public static final String CACHE_DATA_TMP_FILENAME = CACHE_DATA_FILENAME +
TMP_SUFFIX;
+
/** Folder name for consistent id. */
private final String folderName;
@@ -450,6 +482,48 @@ public class NodeFileTree extends SharedFileTree {
return cacheDirName(isSharedGrp, CU.cacheOrGroupName(ccfg));
}
+ /**
+ * @param ccfg Cache configuration.
+ * @return Cache configuration file with respect to {@link
CacheConfiguration#getGroupName} value.
+ */
+ public File cacheConfigurationFile(CacheConfiguration<?, ?> ccfg) {
+ return new File(cacheStorage(ccfg), cacheDataFilename(ccfg));
+ }
+
+ /** @return Name of cache data filename. */
+ public static String cacheDataFilename(CacheConfiguration<?, ?> ccfg) {
+ return ccfg.getGroupName() == null ? CACHE_DATA_FILENAME :
(ccfg.getName() + CACHE_DATA_FILENAME);
+ }
+
+ /**
+ * @param cacheDirName Cache directory name.
+ * @param part Partition id.
+ * @return Partition file.
+ */
+ public File partitionFile(String cacheDirName, int part) {
+ return new File(cacheStorage(cacheDirName), partitionFileName(part));
+ }
+
+ /**
+ * @param workDir Cache work directory.
+ * @param cacheDirName Cache directory name.
+ * @param part Partition id.
+ * @return Partition file.
+ */
+ @NotNull public static File partitionFile(File workDir, String
cacheDirName, int part) {
+ return new File(cacheStorage(workDir, cacheDirName),
partitionFileName(part));
+ }
+
+ /**
+ * @param part Partition id.
+ * @return File name.
+ */
+ public static String partitionFileName(int part) {
+ assert part <= MAX_PARTITION_ID || part == INDEX_PARTITION;
+
+ return part == INDEX_PARTITION ? INDEX_FILE_NAME :
format(PART_FILE_TEMPLATE, part);
+ }
+
/**
* @param cacheDirName Cache directory name.
* @return Store directory for given cache.
@@ -475,6 +549,30 @@ public class NodeFileTree extends SharedFileTree {
return dir.getName().startsWith(CACHE_GRP_DIR_PREFIX);
}
+ /**
+ * @param f File.
+ * @return {@code True} if file conforms partition file name pattern.
+ */
+ public static boolean partitionFile(File f) {
+ return f.getName().startsWith(PART_FILE_PREFIX);
+ }
+
+ /**
+ * @param f File.
+ * @return {@code True} if file conforms cache(including cache group
caches) config file name pattern.
+ */
+ public static boolean cacheOrCacheGroupConfigFile(File f) {
+ return f.getName().endsWith(CACHE_DATA_FILENAME);
+ }
+
+ /**
+ * @param f File.
+ * @return {@code True} if file conforms cache config file name pattern.
+ */
+ public static boolean cacheConfigFile(File f) {
+ return f.getName().equals(CACHE_DATA_FILENAME);
+ }
+
/**
* @param cacheDirName Cache directory name.
* @return Store directory for given cache.
@@ -489,6 +587,9 @@ public class NodeFileTree extends SharedFileTree {
* @return The full cache directory name.
*/
public static String cacheDirName(boolean isSharedGroup, String
cacheOrGroupName) {
+ if (cacheOrGroupName.equals(METASTORAGE_CACHE_NAME))
+ return METASTORAGE_DIR_NAME;
+
return isSharedGroup
? CACHE_GRP_DIR_PREFIX + cacheOrGroupName
: CACHE_DIR_PREFIX + cacheOrGroupName;
@@ -506,7 +607,7 @@ public class NodeFileTree extends SharedFileTree {
else if (name.startsWith(CACHE_DIR_PREFIX))
return name.substring(CACHE_DIR_PREFIX.length());
else if (name.equals(MetaStorage.METASTORAGE_DIR_NAME))
- return MetaStorage.METASTORAGE_CACHE_NAME;
+ return METASTORAGE_CACHE_NAME;
else
throw new IgniteException("Directory doesn't match the cache or
cache group prefix: " + dir);
}
@@ -521,6 +622,21 @@ public class NodeFileTree extends SharedFileTree {
return Long.parseLong(fn.substring(0, fn.indexOf('.')));
}
+ /**
+ * @param part Partition file name.
+ * @return Partition id.
+ */
+ public static int partId(File part) {
+ String name = part.getName();
+ if (name.equals(INDEX_FILE_NAME))
+ return INDEX_PARTITION;
+
+ if (name.startsWith(PART_FILE_PREFIX))
+ return Integer.parseInt(name.substring(PART_FILE_PREFIX.length(),
name.indexOf('.')));
+
+ throw new IllegalStateException("Illegal partition file name: " +
name);
+ }
+
/**
* Resolves directory specified by the given arguments.
*
diff --git
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/IgniteSnapshotManager.java
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/IgniteSnapshotManager.java
index 946aa5fb8c9..efe7570e9e2 100644
---
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/IgniteSnapshotManager.java
+++
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/IgniteSnapshotManager.java
@@ -211,12 +211,12 @@ import static
org.apache.ignite.internal.pagemem.PageIdUtils.pageIndex;
import static org.apache.ignite.internal.pagemem.PageIdUtils.toDetailString;
import static
org.apache.ignite.internal.processors.cache.GridCacheUtils.baselineNode;
import static
org.apache.ignite.internal.processors.cache.GridCacheUtils.isPersistenceEnabled;
-import static
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.INDEX_FILE_NAME;
-import static
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.PART_FILE_TEMPLATE;
import static
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.cacheDirectories;
-import static
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.getPartitionFile;
-import static
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.getPartitionFileName;
+import static
org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree.INDEX_FILE_NAME;
+import static
org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree.PART_FILE_TEMPLATE;
import static
org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree.cacheName;
+import static
org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree.partitionFile;
+import static
org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree.partitionFileName;
import static
org.apache.ignite.internal.processors.cache.persistence.filename.PdsFolderResolver.DB_DEFAULT_FOLDER;
import static
org.apache.ignite.internal.processors.cache.persistence.metastorage.MetaStorage.METASTORAGE_CACHE_ID;
import static
org.apache.ignite.internal.processors.cache.persistence.metastorage.MetaStorage.METASTORAGE_CACHE_NAME;
@@ -2587,7 +2587,7 @@ public class IgniteSnapshotManager extends
GridCacheSharedManagerAdapter
);
}
- File snpPart = getPartitionFile(new File(snapshotLocalDir(snpName,
null), databaseRelativePath(folderName)),
+ File snpPart = partitionFile(new File(snapshotLocalDir(snpName, null),
databaseRelativePath(folderName)),
grps.get(0).getName(), partId);
int grpId = CU.cacheId(grpName);
@@ -3898,7 +3898,7 @@ public class IgniteSnapshotManager extends
GridCacheSharedManagerAdapter
File tmpCacheDir =
U.resolveWorkDirectory(ft.nodeStorage().getAbsolutePath(),
formatTmpDirName(cacheDir).getName(), false);
- return Paths.get(tmpCacheDir.getAbsolutePath(),
getPartitionFileName(partId)).toString();
+ return Paths.get(tmpCacheDir.getAbsolutePath(),
partitionFileName(partId)).toString();
}
catch (IgniteCheckedException e) {
throw new IgniteException(e);
@@ -4178,7 +4178,7 @@ public class IgniteSnapshotManager extends
GridCacheSharedManagerAdapter
/** {@inheritDoc} */
@Override public void sendDelta0(File delta, String cacheDirName,
GroupPartitionId pair) {
- File snpPart = getPartitionFile(dbDir, cacheDirName,
pair.getPartitionId());
+ File snpPart = partitionFile(dbDir, cacheDirName,
pair.getPartitionId());
if (log.isDebugEnabled()) {
log.debug("Start partition snapshot recovery with the given
delta page file [part=" + snpPart +
diff --git
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/SnapshotFutureTask.java
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/SnapshotFutureTask.java
index 27e66490be3..d964087501c 100644
---
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/SnapshotFutureTask.java
+++
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/SnapshotFutureTask.java
@@ -73,8 +73,8 @@ import org.apache.ignite.internal.util.typedef.internal.S;
import org.apache.ignite.internal.util.typedef.internal.U;
import org.jetbrains.annotations.Nullable;
-import static
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.getPartitionFile;
import static
org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree.cacheStorage;
+import static
org.apache.ignite.internal.processors.cache.persistence.metastorage.MetaStorage.METASTORAGE_DIR_NAME;
import static
org.apache.ignite.internal.processors.cache.persistence.snapshot.IgniteSnapshotManager.copy;
import static
org.apache.ignite.internal.processors.cache.persistence.snapshot.IgniteSnapshotManager.databaseRelativePath;
import static
org.apache.ignite.internal.processors.cache.persistence.snapshot.IgniteSnapshotManager.partDeltaFile;
@@ -271,7 +271,7 @@ class SnapshotFutureTask extends
AbstractCreateSnapshotFutureTask implements Che
}
if (withMetaStorage) {
- U.ensureDirectory(cacheStorage(tmpConsIdDir,
MetaStorage.METASTORAGE_DIR_NAME),
+ U.ensureDirectory(cacheStorage(tmpConsIdDir,
METASTORAGE_DIR_NAME),
"directory for snapshotting metastorage",
log);
}
@@ -362,7 +362,7 @@ class SnapshotFutureTask extends
AbstractCreateSnapshotFutureTask implements Che
processed.put(MetaStorage.METASTORAGE_CACHE_ID,
MetaStorage.METASTORAGE_PARTITIONS);
addPartitionWriters(MetaStorage.METASTORAGE_CACHE_ID,
MetaStorage.METASTORAGE_PARTITIONS,
- MetaStorage.METASTORAGE_DIR_NAME);
+ METASTORAGE_DIR_NAME);
}
cctx.cache().configManager().readConfigurationFiles(ccfgs,
@@ -400,7 +400,7 @@ class SnapshotFutureTask extends
AbstractCreateSnapshotFutureTask implements Che
/** {@inheritDoc} */
@Override protected List<CompletableFuture<Void>> saveGroup(int grpId,
Set<Integer> grpParts) throws IgniteCheckedException {
- String cacheDirName = pageStore.cacheDirName(grpId);
+ String cacheDirName = cacheDirName(grpId);
// Process partitions for a particular cache group.
return grpParts.stream().map(partId -> {
@@ -412,7 +412,7 @@ class SnapshotFutureTask extends
AbstractCreateSnapshotFutureTask implements Che
return runAsync(() -> {
snpSndr.sendPart(
- getPartitionFile(ft.nodeStorage(), cacheDirName, partId),
+ ft.partitionFile(cacheDirName, partId),
cacheDirName,
pair,
partLen);
@@ -530,6 +530,23 @@ class SnapshotFutureTask extends
AbstractCreateSnapshotFutureTask implements Che
.collect(Collectors.toMap(Map.Entry::getKey, e ->
S.toStringSortedDistinct(e.getValue())));
}
+ /**
+ * @param grpId Group id.
+ * @return Name of cache group directory.
+ * @throws IgniteCheckedException If cache group doesn't exist.
+ */
+ private String cacheDirName(int grpId) throws IgniteCheckedException {
+ if (grpId == MetaStorage.METASTORAGE_CACHE_ID)
+ return METASTORAGE_DIR_NAME;
+
+ CacheGroupContext gctx = cctx.cache().cacheGroup(grpId);
+
+ if (gctx == null)
+ throw new IgniteCheckedException("Cache group context has not
found due to the cache group is stopped.");
+
+ return ft.cacheDirName(gctx.config());
+ }
+
/** {@inheritDoc} */
@Override public boolean equals(Object o) {
if (this == o)
diff --git
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/SnapshotPartitionsVerifyHandler.java
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/SnapshotPartitionsVerifyHandler.java
index 8020151a315..c834954ddf2 100644
---
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/SnapshotPartitionsVerifyHandler.java
+++
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/SnapshotPartitionsVerifyHandler.java
@@ -53,6 +53,7 @@ import
org.apache.ignite.internal.processors.cache.StoredCacheData;
import
org.apache.ignite.internal.processors.cache.distributed.dht.topology.GridDhtPartitionState;
import
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStore;
import
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager;
+import
org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree;
import
org.apache.ignite.internal.processors.cache.persistence.metastorage.MetaStorage;
import
org.apache.ignite.internal.processors.cache.persistence.snapshot.dump.Dump;
import org.apache.ignite.internal.processors.cache.persistence.tree.io.BPlusIO;
@@ -75,13 +76,12 @@ import static
org.apache.ignite.internal.pagemem.PageIdAllocator.FLAG_IDX;
import static
org.apache.ignite.internal.pagemem.PageIdAllocator.INDEX_PARTITION;
import static
org.apache.ignite.internal.processors.cache.distributed.dht.topology.GridDhtPartitionState.OWNING;
import static
org.apache.ignite.internal.processors.cache.distributed.dht.topology.GridDhtPartitionState.fromOrdinal;
-import static
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.CACHE_DATA_FILENAME;
-import static
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.FILE_SUFFIX;
-import static
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.ZIP_SUFFIX;
import static
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.cacheDirectories;
import static
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.cachePartitionFiles;
-import static
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.partId;
+import static
org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree.FILE_SUFFIX;
+import static
org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree.ZIP_SUFFIX;
import static
org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree.cacheName;
+import static
org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree.partId;
import static
org.apache.ignite.internal.processors.cache.persistence.partstate.GroupPartitionId.getTypeByPartId;
import static
org.apache.ignite.internal.processors.cache.persistence.snapshot.IgniteSnapshotManager.databaseRelativePath;
import static
org.apache.ignite.internal.processors.cache.persistence.snapshot.dump.CreateDumpFutureTask.DUMP_FILE_EXT;
@@ -148,7 +148,7 @@ public class SnapshotPartitionsVerifyHandler implements
SnapshotHandler<Map<Part
for (File part : cachePartitionFiles(dir,
(meta.dump() ? DUMP_FILE_EXT : FILE_SUFFIX) +
(meta.compressPartitions() ? ZIP_SUFFIX : "")
)) {
- int partId = partId(part.getName());
+ int partId = partId(part);
if (!parts.remove(partId))
continue;
@@ -212,7 +212,7 @@ public class SnapshotPartitionsVerifyHandler implements
SnapshotHandler<Map<Part
part -> {
String grpName = cacheName(part.getParentFile());
int grpId = CU.cacheId(grpName);
- int partId = partId(part.getName());
+ int partId = partId(part);
try (FilePageStore pageStore =
(FilePageStore)storeMgr.getPageStoreFactory(grpId,
snpEncrKeyProvider.getActiveKey(grpId) != null ?
@@ -372,7 +372,7 @@ public class SnapshotPartitionsVerifyHandler implements
SnapshotHandler<Map<Part
Collection<PartitionHashRecord> partitionHashRecords =
U.doInParallel(
cctx.snapshotMgr().snapshotExecutorService(),
partFiles,
- part -> calculateDumpedPartitionHash(dump,
cacheName(part.getParentFile()), partId(part.getName()))
+ part -> calculateDumpedPartitionHash(dump,
cacheName(part.getParentFile()), partId(part))
);
return
partitionHashRecords.stream().collect(Collectors.toMap(PartitionHashRecord::partitionKey,
r -> r));
@@ -526,7 +526,7 @@ public class SnapshotPartitionsVerifyHandler implements
SnapshotHandler<Map<Part
GroupKey grpKey = null;
try (DirectoryStream<Path> ds =
Files.newDirectoryStream(grpDirs.get(grpId).toPath(),
- p -> Files.isRegularFile(p) &&
p.toString().endsWith(CACHE_DATA_FILENAME))) {
+ p -> Files.isRegularFile(p) &&
NodeFileTree.cacheOrCacheGroupConfigFile(p.toFile()))) {
for (Path p : ds) {
StoredCacheData cacheData =
ctx.cache().configManager().readCacheData(p.toFile());
diff --git
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/SnapshotResponseRemoteFutureTask.java
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/SnapshotResponseRemoteFutureTask.java
index ddb8332e2f4..8e4ff56e6ba 100644
---
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/SnapshotResponseRemoteFutureTask.java
+++
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/SnapshotResponseRemoteFutureTask.java
@@ -33,7 +33,7 @@ import org.apache.ignite.internal.util.typedef.F;
import org.jetbrains.annotations.Nullable;
import static
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.cacheDirectory;
-import static
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.getPartitionFile;
+import static
org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree.partitionFile;
import static
org.apache.ignite.internal.processors.cache.persistence.snapshot.IgniteSnapshotManager.databaseRelativePath;
/** */
@@ -117,7 +117,7 @@ public class SnapshotResponseRemoteFutureTask extends
AbstractSnapshotFutureTask
", pair=" + gp + ']');
}
- File snpPart = getPartitionFile(cacheDir.getParentFile(),
cacheDir.getName(), gp.getPartitionId());
+ File snpPart = partitionFile(cacheDir.getParentFile(),
cacheDir.getName(), gp.getPartitionId());
if (!snpPart.exists()) {
throw new IgniteException("Snapshot partition file not
found [cacheDir=" + cacheDir +
diff --git
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/SnapshotRestoreProcess.java
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/SnapshotRestoreProcess.java
index fff94c4644a..bdd4990aaa3 100644
---
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/SnapshotRestoreProcess.java
+++
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/SnapshotRestoreProcess.java
@@ -100,8 +100,8 @@ import org.jetbrains.annotations.Nullable;
import static java.util.Optional.ofNullable;
import static
org.apache.ignite.internal.pagemem.PageIdAllocator.INDEX_PARTITION;
-import static
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.partId;
import static
org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree.cacheName;
+import static
org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree.partId;
import static
org.apache.ignite.internal.processors.cache.persistence.metastorage.MetaStorage.METASTORAGE_CACHE_NAME;
import static
org.apache.ignite.internal.processors.cache.persistence.partstate.GroupPartitionId.getTypeByPartId;
import static
org.apache.ignite.internal.processors.cache.persistence.snapshot.IgniteSnapshotManager.databaseRelativePath;
@@ -1057,7 +1057,7 @@ public class SnapshotRestoreProcess {
", dir=" + dir.getName() + ']');
}
- File idxFile = new File(snpCacheDir,
FilePageStoreManager.getPartitionFileName(INDEX_PARTITION));
+ File idxFile = new File(snpCacheDir,
NodeFileTree.partitionFileName(INDEX_PARTITION));
if (idxFile.exists()) {
PartitionRestoreFuture idxFut;
@@ -1120,7 +1120,7 @@ public class SnapshotRestoreProcess {
}
int grpId =
groupIdFromTmpDir(snpFile.getParentFile());
- int partId = partId(snpFile.getName());
+ int partId = partId(snpFile);
PartitionRestoreFuture partFut =
F.find(allParts.get(grpId), null,
fut -> fut.partId == partId);
@@ -1723,8 +1723,8 @@ public class SnapshotRestoreProcess {
File targetDir,
PartitionRestoreFuture partFut
) {
- File snpFile = new File(srcDir,
FilePageStoreManager.getPartitionFileName(partFut.partId));
- Path partFile = Paths.get(targetDir.getAbsolutePath(),
FilePageStoreManager.getPartitionFileName(partFut.partId));
+ File snpFile = new File(srcDir,
NodeFileTree.partitionFileName(partFut.partId));
+ Path partFile = Paths.get(targetDir.getAbsolutePath(),
NodeFileTree.partitionFileName(partFut.partId));
int grpId = groupIdFromTmpDir(targetDir);
IgniteSnapshotManager snapMgr = ctx.cache().context().snapshotMgr();
diff --git
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/dump/CreateDumpFutureTask.java
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/dump/CreateDumpFutureTask.java
index 34e2ed01d4d..f2f6f3ea96b 100644
---
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/dump/CreateDumpFutureTask.java
+++
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/dump/CreateDumpFutureTask.java
@@ -75,7 +75,7 @@ import
org.apache.ignite.internal.util.lang.GridCloseableIterator;
import org.jetbrains.annotations.Nullable;
import static
org.apache.ignite.internal.pagemem.PageIdAllocator.INDEX_PARTITION;
-import static
org.apache.ignite.internal.processors.cache.GridLocalConfigManager.cacheDataFilename;
+import static
org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree.cacheDataFilename;
import static
org.apache.ignite.internal.processors.cache.persistence.snapshot.IgniteSnapshotManager.DUMP_LOCK;
import static
org.apache.ignite.internal.processors.cache.persistence.snapshot.dump.Dump.dumpPartFileName;
import static org.apache.ignite.internal.util.IgniteUtils.toLong;
diff --git
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/dump/Dump.java
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/dump/Dump.java
index 0afb5819112..e65f12969ae 100644
---
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/dump/Dump.java
+++
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/dump/Dump.java
@@ -65,8 +65,8 @@ import org.jetbrains.annotations.Nullable;
import static java.nio.file.StandardOpenOption.READ;
import static
org.apache.ignite.internal.processors.cache.GridLocalConfigManager.readCacheData;
import static
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.DFLT_STORE_DIR;
-import static
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.PART_FILE_PREFIX;
-import static
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.ZIP_SUFFIX;
+import static
org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree.PART_FILE_PREFIX;
+import static
org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree.ZIP_SUFFIX;
import static
org.apache.ignite.internal.processors.cache.persistence.snapshot.IgniteSnapshotManager.SNAPSHOT_METAFILE_EXT;
import static
org.apache.ignite.internal.processors.cache.persistence.snapshot.dump.CreateDumpFutureTask.DUMP_FILE_EXT;
import static
org.apache.ignite.internal.processors.cache.persistence.wal.reader.StandaloneGridKernalContext.closeAllComponents;
@@ -250,13 +250,13 @@ public class Dump implements AutoCloseable {
String suffix = comprParts ? DUMP_FILE_EXT + ZIP_SUFFIX :
DUMP_FILE_EXT;
File[] parts = dumpGroupDirectory(node, grp)
- .listFiles(f -> f.getName().startsWith(PART_FILE_PREFIX) &&
f.getName().endsWith(suffix));
+ .listFiles(f -> NodeFileTree.partitionFile(f) &&
f.getName().endsWith(suffix));
if (parts == null)
return Collections.emptyList();
return Arrays.stream(parts)
- .map(partFile ->
Integer.parseInt(partFile.getName().replace(PART_FILE_PREFIX,
"").replace(suffix, "")))
+ .map(NodeFileTree::partId)
.collect(Collectors.toList());
}
diff --git
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/dump/WriteOnlyZipFileIOFactory.java
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/dump/WriteOnlyZipFileIOFactory.java
index 4842ab8cbf1..c98f77f07de 100644
---
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/dump/WriteOnlyZipFileIOFactory.java
+++
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/dump/WriteOnlyZipFileIOFactory.java
@@ -23,7 +23,7 @@ import java.nio.file.OpenOption;
import
org.apache.ignite.internal.processors.cache.persistence.file.FileIOFactory;
import org.apache.ignite.internal.util.typedef.internal.A;
-import static
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.ZIP_SUFFIX;
+import static
org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree.ZIP_SUFFIX;
/**
* File I/O factory which provides {@link WriteOnlyZipFileIO} implementation
of FileIO.
diff --git
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/FileDescriptor.java
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/FileDescriptor.java
index 22cc7b0098f..e074fe29b05 100644
---
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/FileDescriptor.java
+++
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/FileDescriptor.java
@@ -21,8 +21,8 @@ import java.io.File;
import java.io.IOException;
import org.apache.ignite.internal.processors.cache.persistence.file.FileIO;
import
org.apache.ignite.internal.processors.cache.persistence.file.FileIOFactory;
-import
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager;
import
org.apache.ignite.internal.processors.cache.persistence.file.UnzipFileIO;
+import
org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree;
import
org.apache.ignite.internal.processors.cache.persistence.wal.io.SegmentIO;
import org.apache.ignite.internal.util.typedef.internal.U;
import org.jetbrains.annotations.Nullable;
@@ -108,7 +108,7 @@ public class FileDescriptor implements
Comparable<FileDescriptor>, AbstractWalRe
/** {@inheritDoc} */
@Override public boolean isCompressed() {
- return file.getName().endsWith(FilePageStoreManager.ZIP_SUFFIX);
+ return file.getName().endsWith(NodeFileTree.ZIP_SUFFIX);
}
/** {@inheritDoc} */
diff --git
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/FileWriteAheadLogManager.java
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/FileWriteAheadLogManager.java
index b2799c0c2ab..fe209878fa0 100644
---
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/FileWriteAheadLogManager.java
+++
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/FileWriteAheadLogManager.java
@@ -153,7 +153,7 @@ import static
org.apache.ignite.failure.FailureType.CRITICAL_ERROR;
import static org.apache.ignite.failure.FailureType.SYSTEM_WORKER_TERMINATION;
import static
org.apache.ignite.internal.pagemem.wal.record.WALRecord.RecordType.CDC_DATA_RECORD;
import static
org.apache.ignite.internal.pagemem.wal.record.WALRecord.RecordType.DATA_RECORD_V2;
-import static
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.TMP_SUFFIX;
+import static
org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree.TMP_SUFFIX;
import static
org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree.TMP_WAL_SEG_FILE_EXT;
import static
org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree.TMP_ZIP_WAL_SEG_FILE_EXT;
import static
org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree.WAL_SEGMENT_FILE_EXT;
diff --git
a/modules/core/src/test/java/org/apache/ignite/cache/NodeWithFilterRestartTest.java
b/modules/core/src/test/java/org/apache/ignite/cache/NodeWithFilterRestartTest.java
index 9ff7fcd78ae..71e2487c672 100644
---
a/modules/core/src/test/java/org/apache/ignite/cache/NodeWithFilterRestartTest.java
+++
b/modules/core/src/test/java/org/apache/ignite/cache/NodeWithFilterRestartTest.java
@@ -203,8 +203,8 @@ public class NodeWithFilterRestartTest extends
GridCommonAbstractTest {
CacheConfiguration cacheCfg = createAndFillCache();
- File cacheMetaPath1 =
grid(filteredGridIdx).context().cache().configManager().cacheConfigurationFile(cacheCfg);
- File cacheMetaPath2 =
grid(nonBaselineIdx).context().cache().configManager().cacheConfigurationFile(cacheCfg);
+ File cacheMetaPath1 =
grid(filteredGridIdx).context().pdsFolderResolver().fileTree().cacheConfigurationFile(cacheCfg);
+ File cacheMetaPath2 =
grid(nonBaselineIdx).context().pdsFolderResolver().fileTree().cacheConfigurationFile(cacheCfg);
assertTrue(cacheMetaPath1.exists() && cacheMetaPath1.isFile());
assertTrue(cacheMetaPath2.exists() && cacheMetaPath2.isFile());
diff --git
a/modules/core/src/test/java/org/apache/ignite/internal/managers/communication/GridIoManagerFileTransmissionSelfTest.java
b/modules/core/src/test/java/org/apache/ignite/internal/managers/communication/GridIoManagerFileTransmissionSelfTest.java
index 79d6dc63ccd..b5e522dce1f 100644
---
a/modules/core/src/test/java/org/apache/ignite/internal/managers/communication/GridIoManagerFileTransmissionSelfTest.java
+++
b/modules/core/src/test/java/org/apache/ignite/internal/managers/communication/GridIoManagerFileTransmissionSelfTest.java
@@ -71,7 +71,7 @@ import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
-import static
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.FILE_SUFFIX;
+import static
org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree.FILE_SUFFIX;
import static org.apache.ignite.internal.util.IgniteUtils.fileCount;
import static org.apache.ignite.testframework.GridTestUtils.setFieldValue;
diff --git
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/WalModeChangeAdvancedSelfTest.java
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/WalModeChangeAdvancedSelfTest.java
index 4e683042bfb..d853a37f2dc 100644
---
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/WalModeChangeAdvancedSelfTest.java
+++
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/WalModeChangeAdvancedSelfTest.java
@@ -41,8 +41,8 @@ import org.junit.Test;
import static org.apache.ignite.cache.CacheAtomicityMode.TRANSACTIONAL;
import static org.apache.ignite.cache.CacheMode.PARTITIONED;
import static org.apache.ignite.cluster.ClusterState.ACTIVE;
-import static
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.CACHE_DATA_FILENAME;
import static
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.CORRUPTED_DATA_FILES_MNTC_TASK_NAME;
+import static
org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree.CACHE_DATA_FILENAME;
/**
* Concurrent and advanced tests for WAL state change.
@@ -156,7 +156,7 @@ public class WalModeChangeAdvancedSelfTest extends
WalModeChangeCommonAbstractSe
public void testMaintenanceIsSkippedIfWasFixedManuallyOnDowntime() throws
Exception {
IgniteEx srv = startGrid(config(SRV_1, false, false));
- File cacheToClean = cacheDir(srv, CACHE_NAME);
+ File cacheToClean =
srv.context().pdsFolderResolver().fileTree().cacheStorage(false, CACHE_NAME);
NodeFileTree ft0 = srv.context().pdsFolderResolver().fileTree();
@@ -218,9 +218,9 @@ public class WalModeChangeAdvancedSelfTest extends
WalModeChangeCommonAbstractSe
*/
@Test
public void testCacheCleanup() throws Exception {
- Ignite srv = startGrid(config(SRV_1, false, false));
+ IgniteEx srv = startGrid(config(SRV_1, false, false));
- File cacheToClean = cacheDir(srv, CACHE_NAME_2);
+ File cacheToClean =
srv.context().pdsFolderResolver().fileTree().cacheStorage(false, CACHE_NAME_2);
srv.cluster().state(ACTIVE);
@@ -284,11 +284,6 @@ public class WalModeChangeAdvancedSelfTest extends
WalModeChangeCommonAbstractSe
assertEquals(0, cache2.size());
}
- /** */
- private File cacheDir(Ignite ig, String cacheName) {
- return new
File(((IgniteEx)ig).context().pdsFolderResolver().fileTree().nodeStorage(),
"cache-" + cacheName);
- }
-
/** */
private void cleanCacheDir(File cacheDir) {
for (File f : cacheDir.listFiles()) {
@@ -340,7 +335,7 @@ public class WalModeChangeAdvancedSelfTest extends
WalModeChangeCommonAbstractSe
// Start other nodes.
IgniteEx ig2 = startGrid(config(SRV_2, false, false));
- File ig2CacheDir = cacheDir(ig2, CACHE_NAME);
+ File ig2CacheDir =
ig2.context().pdsFolderResolver().fileTree().cacheStorage(false, CACHE_NAME);
if (crdFiltered)
srv.cluster().disableWal(CACHE_NAME);
@@ -437,7 +432,7 @@ public class WalModeChangeAdvancedSelfTest extends
WalModeChangeCommonAbstractSe
victimName = SRV_2;
try {
- File cacheDir = cacheDir(grid(victimName), CACHE_NAME);
+ File cacheDir =
grid(victimName).context().pdsFolderResolver().fileTree().cacheStorage(false,
CACHE_NAME);
stopGrid(victimName);
diff --git
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/IgnitePdsCacheConfigurationFileConsistencyCheckTest.java
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/IgnitePdsCacheConfigurationFileConsistencyCheckTest.java
index 230f8bf7a78..85fea51bcc8 100644
---
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/IgnitePdsCacheConfigurationFileConsistencyCheckTest.java
+++
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/IgnitePdsCacheConfigurationFileConsistencyCheckTest.java
@@ -44,8 +44,8 @@ import org.apache.ignite.testframework.GridTestUtils;
import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
import org.junit.Test;
-import static
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.CACHE_DATA_FILENAME;
-import static
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.CACHE_DATA_TMP_FILENAME;
+import static
org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree.CACHE_DATA_FILENAME;
+import static
org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree.CACHE_DATA_TMP_FILENAME;
/**
* Tests that ignite can start when caches' configurations with same name in
different groups stored.
diff --git
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/IgnitePdsCorruptedStoreTest.java
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/IgnitePdsCorruptedStoreTest.java
index 32aea80bf61..bbf96e11253 100644
---
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/IgnitePdsCorruptedStoreTest.java
+++
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/IgnitePdsCorruptedStoreTest.java
@@ -51,7 +51,6 @@ import
org.apache.ignite.internal.processors.cache.IgniteInternalCache;
import org.apache.ignite.internal.processors.cache.persistence.file.FileIO;
import
org.apache.ignite.internal.processors.cache.persistence.file.FileIODecorator;
import
org.apache.ignite.internal.processors.cache.persistence.file.FileIOFactory;
-import
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager;
import
org.apache.ignite.internal.processors.cache.persistence.file.RandomAccessFileIOFactory;
import
org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree;
import
org.apache.ignite.internal.processors.cache.persistence.metastorage.MetaStorage;
@@ -319,7 +318,7 @@ public class IgnitePdsCorruptedStoreTest extends
GridCommonAbstractTest {
File workDir =
ignite0.context().pdsFolderResolver().fileTree().nodeStorage();
File metaStoreDir = new File(workDir,
MetaStorage.METASTORAGE_CACHE_NAME.toLowerCase());
- File metaStoreFile = new File(metaStoreDir,
String.format(FilePageStoreManager.PART_FILE_TEMPLATE, 0));
+ File metaStoreFile = new File(metaStoreDir,
String.format(NodeFileTree.PART_FILE_TEMPLATE, 0));
readOnlyFile.set(metaStoreFile);
diff --git
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/IgnitePdsDefragmentationTest.java
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/IgnitePdsDefragmentationTest.java
index 4200a71ab09..16173f35b19 100644
---
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/IgnitePdsDefragmentationTest.java
+++
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/IgnitePdsDefragmentationTest.java
@@ -61,7 +61,6 @@ import
org.apache.ignite.internal.processors.cache.CacheGroupContext;
import
org.apache.ignite.internal.processors.cache.persistence.defragmentation.DefragmentationFileUtils;
import
org.apache.ignite.internal.processors.cache.persistence.file.FileIOFactory;
import
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStore;
-import
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager;
import
org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree;
import org.apache.ignite.internal.util.lang.IgniteThrowableConsumer;
import org.apache.ignite.internal.util.typedef.internal.U;
@@ -236,7 +235,7 @@ public class IgnitePdsDefragmentationTest extends
GridCommonAbstractTest {
long[] oldPartLen = partitionSizes(workDir);
- long oldIdxFileLen = new File(workDir,
FilePageStoreManager.INDEX_FILE_NAME).length();
+ long oldIdxFileLen = new File(workDir,
NodeFileTree.INDEX_FILE_NAME).length();
startGrid(0);
@@ -260,7 +259,7 @@ public class IgnitePdsDefragmentationTest extends
GridCommonAbstractTest {
for (int p = 0; p < PARTS; p++)
assertTrue(newPartLen[p] < oldPartLen[p]);
- long newIdxFileLen = new File(workDir,
FilePageStoreManager.INDEX_FILE_NAME).length();
+ long newIdxFileLen = new File(workDir,
NodeFileTree.INDEX_FILE_NAME).length();
assertTrue(newIdxFileLen <= oldIdxFileLen);
@@ -348,7 +347,7 @@ public class IgnitePdsDefragmentationTest extends
GridCommonAbstractTest {
*/
protected long[] partitionSizes(File workDir) {
return IntStream.range(0, PARTS)
- .mapToObj(p -> new File(workDir,
String.format(FilePageStoreManager.PART_FILE_TEMPLATE, p)))
+ .mapToObj(p -> new File(workDir,
String.format(NodeFileTree.PART_FILE_TEMPLATE, p)))
.mapToLong(File::length)
.toArray();
}
diff --git
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/PagesPossibleCorruptionDiagnosticTest.java
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/PagesPossibleCorruptionDiagnosticTest.java
index 08554227c4f..169606e3950 100644
---
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/PagesPossibleCorruptionDiagnosticTest.java
+++
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/PagesPossibleCorruptionDiagnosticTest.java
@@ -50,7 +50,7 @@ import static
org.apache.ignite.IgniteSystemProperties.IGNITE_PDS_SKIP_CRC;
import static org.apache.ignite.internal.pagemem.PageIdAllocator.FLAG_DATA;
import static org.apache.ignite.internal.pagemem.PageIdUtils.pageId;
import static
org.apache.ignite.internal.processors.cache.GridCacheUtils.cacheGroupId;
-import static
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.PART_FILE_TEMPLATE;
+import static
org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree.PART_FILE_TEMPLATE;
import static
org.apache.ignite.internal.processors.cache.persistence.tree.io.PagePartitionMetaIOV2.PART_META_REUSE_LIST_ROOT_OFF;
/**
diff --git
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/IgnitePdsCheckpointRecoveryTest.java
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/IgnitePdsCheckpointRecoveryTest.java
index f6f269cdd4b..a5af9249f3d 100644
---
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/IgnitePdsCheckpointRecoveryTest.java
+++
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/IgnitePdsCheckpointRecoveryTest.java
@@ -57,7 +57,7 @@ import org.junit.runners.Parameterized;
import static
org.apache.ignite.configuration.DataStorageConfiguration.DFLT_CP_RECOVERY_DATA_COMRESSION;
import static
org.apache.ignite.internal.processors.cache.persistence.checkpoint.CheckpointRecoveryFileStorage.FILE_NAME_PATTERN;
-import static
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.PART_FILE_PREFIX;
+import static
org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree.PART_FILE_PREFIX;
/**
* Class containing tests for applying checkpoint recovery data.
diff --git
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/IgnitePdsDataRegionMetricsTest.java
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/IgnitePdsDataRegionMetricsTest.java
index f95681d9ef1..c065d42d6cf 100644
---
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/IgnitePdsDataRegionMetricsTest.java
+++
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/IgnitePdsDataRegionMetricsTest.java
@@ -57,7 +57,7 @@ import static
org.apache.ignite.configuration.DataStorageConfiguration.DFLT_DATA
import static org.apache.ignite.events.EventType.EVT_PAGE_REPLACEMENT_STARTED;
import static
org.apache.ignite.internal.processors.cache.GridCacheUtils.UTILITY_CACHE_NAME;
import static
org.apache.ignite.internal.processors.cache.persistence.DataRegionMetricsImpl.DATAREGION_METRICS_PREFIX;
-import static
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.partId;
+import static
org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree.partId;
import static
org.apache.ignite.internal.processors.cache.persistence.metastorage.MetaStorage.METASTORAGE_CACHE_ID;
import static
org.apache.ignite.internal.processors.cache.persistence.metastorage.MetaStorage.METASTORAGE_CACHE_NAME;
import static
org.apache.ignite.internal.processors.cache.persistence.metastorage.MetaStorage.METASTORAGE_DIR_NAME;
@@ -419,7 +419,7 @@ public class IgnitePdsDataRegionMetricsTest extends
GridCommonAbstractTest {
File file = path.toFile();
FilePageStore store =
(FilePageStore)pageStoreMgr.getStore(metaStore ?
- METASTORAGE_CACHE_ID : CU.cacheId(cacheName),
partId(file.getName()));
+ METASTORAGE_CACHE_ID : CU.cacheId(cacheName),
partId(file));
int pageSize = store.getPageSize();
long storeSize = path.toFile().length() - store.headerSize();
diff --git
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/checkpoint/CheckpointFreeListTest.java
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/checkpoint/CheckpointFreeListTest.java
index 084efc3ba1e..ad112e78dd1 100644
---
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/checkpoint/CheckpointFreeListTest.java
+++
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/checkpoint/CheckpointFreeListTest.java
@@ -56,6 +56,7 @@ import
org.apache.ignite.internal.processors.cache.GridCacheAdapter;
import
org.apache.ignite.internal.processors.cache.persistence.GridCacheDatabaseSharedManager;
import
org.apache.ignite.internal.processors.cache.persistence.GridCacheOffheapManager;
import
org.apache.ignite.internal.processors.cache.persistence.checkpoint.CheckpointListener;
+import
org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree;
import
org.apache.ignite.internal.processors.cache.persistence.freelist.PagesList;
import org.apache.ignite.internal.util.typedef.T2;
import org.apache.ignite.internal.util.typedef.internal.U;
@@ -69,7 +70,6 @@ import
org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
import org.junit.Test;
import static java.util.Objects.requireNonNull;
-import static
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.PART_FILE_PREFIX;
import static org.apache.ignite.testframework.GridTestUtils.waitForCondition;
/**
@@ -444,9 +444,7 @@ public class CheckpointFreeListTest extends
GridCommonAbstractTest {
* @return Total partitinos size.
*/
private Optional<Long> totalPartitionsSize(Path cacheFolder) {
- return Stream.of(
- requireNonNull(cacheFolder.toFile().listFiles((dir, name) ->
name.startsWith(PART_FILE_PREFIX)))
- )
+ return
Stream.of(requireNonNull(cacheFolder.toFile().listFiles(NodeFileTree::partitionFile)))
.map(File::length)
.reduce(Long::sum);
}
diff --git
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/file/IgnitePdsDiskErrorsRecoveringTest.java
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/file/IgnitePdsDiskErrorsRecoveringTest.java
index 9083455d831..e88eaa8d8b6 100644
---
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/file/IgnitePdsDiskErrorsRecoveringTest.java
+++
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/file/IgnitePdsDiskErrorsRecoveringTest.java
@@ -44,9 +44,9 @@ import
org.apache.ignite.internal.IgniteInterruptedCheckedException;
import org.apache.ignite.internal.processors.cache.persistence.file.FileIO;
import
org.apache.ignite.internal.processors.cache.persistence.file.FileIODecorator;
import
org.apache.ignite.internal.processors.cache.persistence.file.FileIOFactory;
-import
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager;
import
org.apache.ignite.internal.processors.cache.persistence.file.RandomAccessFileIO;
import
org.apache.ignite.internal.processors.cache.persistence.file.RandomAccessFileIOFactory;
+import
org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree;
import
org.apache.ignite.internal.processors.cache.persistence.wal.FileWriteAheadLogManager;
import org.apache.ignite.testframework.GridTestUtils;
import org.apache.ignite.testframework.junits.WithSystemProperty;
@@ -174,7 +174,7 @@ public class IgnitePdsDiskErrorsRecoveringTest extends
GridCommonAbstractTest {
public void testRecoveringOnCheckpointBeginFail() throws Exception {
// Fail to write checkpoint start marker tmp file at the second
checkpoint. Pass only initial checkpoint.
ioFactory = new FilteringFileIOFactory(
- "START.bin" + FilePageStoreManager.TMP_SUFFIX,
+ "START.bin" + NodeFileTree.TMP_SUFFIX,
new LimitedSizeFileIOFactory(new RandomAccessFileIOFactory(), 20)
);
diff --git
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/wal/IgniteLocalWalSizeTest.java
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/wal/IgniteLocalWalSizeTest.java
index 0dc086eb31e..d709326eca7 100644
---
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/wal/IgniteLocalWalSizeTest.java
+++
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/wal/IgniteLocalWalSizeTest.java
@@ -39,8 +39,8 @@ import org.jetbrains.annotations.Nullable;
import org.junit.Test;
import static
org.apache.ignite.configuration.DataStorageConfiguration.UNLIMITED_WAL_ARCHIVE;
-import static
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.ZIP_SUFFIX;
import static
org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree.WAL_SEGMENT_FILE_EXT;
+import static
org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree.ZIP_SUFFIX;
import static
org.apache.ignite.internal.processors.cache.persistence.wal.FileWriteAheadLogManager.WAL_SEGMENT_COMPACTED_OR_RAW_FILE_FILTER;
import static
org.apache.ignite.internal.processors.cache.persistence.wal.FileWriteAheadLogManager.isSegmentFileName;
import static org.apache.ignite.testframework.GridTestUtils.getFieldValue;
diff --git
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/wal/IgniteNodeStoppedDuringDisableWALTest.java
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/wal/IgniteNodeStoppedDuringDisableWALTest.java
index 9f3bf0ba339..1bcf34207be 100644
---
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/wal/IgniteNodeStoppedDuringDisableWALTest.java
+++
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/wal/IgniteNodeStoppedDuringDisableWALTest.java
@@ -38,7 +38,7 @@ import org.apache.ignite.internal.pagemem.wal.WALIterator;
import org.apache.ignite.internal.processors.cache.GridCacheSharedContext;
import
org.apache.ignite.internal.processors.cache.WalStateManager.WALDisableContext;
import
org.apache.ignite.internal.processors.cache.persistence.GridCacheDatabaseSharedManager;
-import
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager;
+import
org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree;
import
org.apache.ignite.internal.processors.cache.persistence.filename.PdsFoldersResolver;
import org.apache.ignite.testframework.GridTestUtils;
import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
@@ -50,8 +50,7 @@ import org.junit.runners.Parameterized;
import static java.nio.file.FileVisitResult.CONTINUE;
import static java.nio.file.Files.walkFileTree;
import static
org.apache.ignite.internal.processors.cache.persistence.checkpoint.CheckpointMarkersStorage.CP_FILE_NAME_PATTERN;
-import static
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.INDEX_FILE_NAME;
-import static
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.PART_FILE_PREFIX;
+import static
org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree.INDEX_FILE_NAME;
import static
org.apache.ignite.internal.processors.cache.persistence.metastorage.MetaStorage.METASTORAGE_DIR_NAME;
import static
org.apache.ignite.internal.processors.cache.persistence.wal.FileWriteAheadLogManager.WAL_NAME_PATTERN;
import static
org.apache.ignite.internal.processors.cache.persistence.wal.FileWriteAheadLogManager.WAL_TEMP_NAME_PATTERN;
@@ -227,13 +226,13 @@ public class IgniteNodeStoppedDuringDisableWALTest
extends GridCommonAbstractTes
boolean failed = false;
- if (name.endsWith(FilePageStoreManager.TMP_SUFFIX))
+ if (name.endsWith(NodeFileTree.TMP_SUFFIX))
failed = true;
if (CP_FILE_NAME_PATTERN.matcher(name).matches())
failed = true;
- if (name.startsWith(PART_FILE_PREFIX) &&
path.toFile().length() > pageSize)
+ if (NodeFileTree.partitionFile(path.toFile()) &&
path.toFile().length() > pageSize)
failed = true;
if (name.startsWith(INDEX_FILE_NAME) &&
path.toFile().length() > pageSize)
diff --git
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/AbstractSnapshotSelfTest.java
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/AbstractSnapshotSelfTest.java
index a4640d93112..60a2c8fa834 100644
---
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/AbstractSnapshotSelfTest.java
+++
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/AbstractSnapshotSelfTest.java
@@ -114,8 +114,7 @@ import static org.apache.ignite.cluster.ClusterState.ACTIVE;
import static org.apache.ignite.cluster.ClusterState.INACTIVE;
import static
org.apache.ignite.configuration.DataStorageConfiguration.DFLT_PAGE_SIZE;
import static org.apache.ignite.events.EventType.EVTS_CLUSTER_SNAPSHOT;
-import static
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.FILE_SUFFIX;
-import static
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.PART_FILE_PREFIX;
+import static
org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree.FILE_SUFFIX;
import static
org.apache.ignite.internal.processors.cache.persistence.metastorage.MetaStorage.METASTORAGE_DIR_NAME;
import static
org.apache.ignite.internal.processors.cache.persistence.snapshot.IgniteSnapshotManager.CP_SNAPSHOT_REASON;
import static
org.apache.ignite.internal.processors.cache.persistence.snapshot.IgniteSnapshotManager.databaseRelativePath;
@@ -348,7 +347,7 @@ public abstract class AbstractSnapshotSelfTest extends
GridCommonAbstractTest {
try {
try (DirectoryStream<Path> partFiles =
newDirectoryStream(cacheDir.toPath(),
- p -> p.toFile().getName().startsWith(PART_FILE_PREFIX) &&
p.toFile().getName().endsWith(FILE_SUFFIX))
+ p -> NodeFileTree.partitionFile(p.toFile()) &&
p.toFile().getName().endsWith(FILE_SUFFIX))
) {
for (Path path : partFiles)
result.put(path.toFile().getName(),
FastCrc.calcCrc(path.toFile()));
@@ -645,13 +644,11 @@ public abstract class AbstractSnapshotSelfTest extends
GridCommonAbstractTest {
Map<Integer, Integer> cacheParts =
cachesParts.computeIfAbsent(name, k -> new HashMap<>());
File[] parts = cacheDir.listFiles(f ->
- f.getName().startsWith(PART_FILE_PREFIX)
+ NodeFileTree.partitionFile(f)
&& f.getName().endsWith(FILE_SUFFIX));
for (File partFile : parts) {
- int part = Integer.parseInt(partFile.getName()
- .substring(PART_FILE_PREFIX.length())
- .replace(FILE_SUFFIX, ""));
+ int part = NodeFileTree.partId(partFile);
cacheParts.compute(part, (part0, cnt) -> (cnt == null ? 0
: cnt) + 1);
}
diff --git
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/IgniteClusterSnapshotCheckTest.java
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/IgniteClusterSnapshotCheckTest.java
index 09f20378f51..49fa45dd4fb 100644
---
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/IgniteClusterSnapshotCheckTest.java
+++
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/IgniteClusterSnapshotCheckTest.java
@@ -89,7 +89,7 @@ import org.junit.Test;
import static org.apache.ignite.cluster.ClusterState.ACTIVE;
import static
org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion.NONE;
import static
org.apache.ignite.internal.processors.cache.GridCacheUtils.TTL_ETERNAL;
-import static
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.getPartitionFileName;
+import static
org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree.partitionFileName;
import static
org.apache.ignite.internal.processors.cache.persistence.partstate.GroupPartitionId.getTypeByPartId;
import static
org.apache.ignite.internal.processors.cache.persistence.snapshot.IgniteSnapshotManager.SNAPSHOT_METAFILE_EXT;
import static
org.apache.ignite.internal.processors.cache.persistence.snapshot.IgniteSnapshotManager.databaseRelativePath;
@@ -145,7 +145,7 @@ public class IgniteClusterSnapshotCheckTest extends
AbstractSnapshotSelfTest {
createAndCheckSnapshot(ignite, SNAPSHOT_NAME);
Path part0 =
U.searchFileRecursively(snp(ignite).snapshotLocalDir(SNAPSHOT_NAME).toPath(),
- getPartitionFileName(0));
+ partitionFileName(0));
assertNotNull(part0);
assertTrue(part0.toString(), part0.toFile().exists());
@@ -241,7 +241,7 @@ public class IgniteClusterSnapshotCheckTest extends
AbstractSnapshotSelfTest {
createAndCheckSnapshot(ignite, SNAPSHOT_NAME);
Path part0 =
U.searchFileRecursively(snp(ignite).snapshotLocalDir(SNAPSHOT_NAME).toPath(),
- getPartitionFileName(PART_ID));
+ partitionFileName(PART_ID));
assertNotNull(part0);
assertTrue(part0.toString(), part0.toFile().exists());
@@ -471,7 +471,7 @@ public class IgniteClusterSnapshotCheckTest extends
AbstractSnapshotSelfTest {
createAndCheckSnapshot(ignite, SNAPSHOT_NAME);
Path part0 =
U.searchFileRecursively(snp(ignite).snapshotLocalDir(SNAPSHOT_NAME).toPath(),
- getPartitionFileName(PART_ID));
+ partitionFileName(PART_ID));
assertNotNull(part0);
assertTrue(part0.toString(), part0.toFile().exists());
@@ -685,7 +685,7 @@ public class IgniteClusterSnapshotCheckTest extends
AbstractSnapshotSelfTest {
databaseRelativePath(ignite.context().pdsFolderResolver().resolveFolders().folderName()),
ignite.context().pdsFolderResolver().fileTree().cacheDirName(ccfg));
- Path part0 = U.searchFileRecursively(cachePath,
getPartitionFileName(partId));
+ Path part0 = U.searchFileRecursively(cachePath,
partitionFileName(partId));
int grpId = CU.cacheId(ccfg.getName());
diff --git
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/IgniteClusterSnapshotRestoreSelfTest.java
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/IgniteClusterSnapshotRestoreSelfTest.java
index abb374e1818..bbd0bd00c43 100644
---
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/IgniteClusterSnapshotRestoreSelfTest.java
+++
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/IgniteClusterSnapshotRestoreSelfTest.java
@@ -74,9 +74,9 @@ import static org.apache.ignite.cluster.ClusterState.ACTIVE;
import static
org.apache.ignite.events.EventType.EVT_CLUSTER_SNAPSHOT_RESTORE_FAILED;
import static
org.apache.ignite.events.EventType.EVT_CLUSTER_SNAPSHOT_RESTORE_FINISHED;
import static
org.apache.ignite.events.EventType.EVT_CLUSTER_SNAPSHOT_RESTORE_STARTED;
-import static
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.FILE_SUFFIX;
-import static
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.PART_FILE_PREFIX;
-import static
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.getPartitionFileName;
+import static
org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree.FILE_SUFFIX;
+import static
org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree.PART_FILE_PREFIX;
+import static
org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree.partitionFileName;
import static
org.apache.ignite.internal.processors.cache.persistence.snapshot.SnapshotRestoreProcess.TMP_CACHE_DIR_PREFIX;
import static
org.apache.ignite.internal.util.distributed.DistributedProcess.DistributedProcessType.RESTORE_CACHE_GROUP_SNAPSHOT_PRELOAD;
import static
org.apache.ignite.internal.util.distributed.DistributedProcess.DistributedProcessType.RESTORE_CACHE_GROUP_SNAPSHOT_PREPARE;
@@ -180,7 +180,7 @@ public class IgniteClusterSnapshotRestoreSelfTest extends
IgniteClusterSnapshotR
IgniteEx ignite = startGridsWithSnapshot(2, CACHE_KEYS_RANGE);
Path part0 =
U.searchFileRecursively(snp(ignite).snapshotLocalDir(SNAPSHOT_NAME).toPath(),
- getPartitionFileName(0));
+ partitionFileName(0));
assertNotNull(part0);
assertTrue(part0.toString(), part0.toFile().exists());
diff --git
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/IgniteSnapshotRemoteRequestTest.java
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/IgniteSnapshotRemoteRequestTest.java
index fcde905bc8b..6f66cfadcca 100644
---
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/IgniteSnapshotRemoteRequestTest.java
+++
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/IgniteSnapshotRemoteRequestTest.java
@@ -55,7 +55,7 @@ import org.apache.ignite.testframework.GridTestUtils;
import org.junit.Test;
import static
org.apache.ignite.configuration.IgniteConfiguration.DFLT_SNAPSHOT_THREAD_POOL_SIZE;
-import static
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.partId;
+import static
org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree.partId;
import static
org.apache.ignite.internal.processors.cache.persistence.snapshot.SnapshotRestoreProcess.groupIdFromTmpDir;
import static
org.apache.ignite.testframework.GridTestUtils.assertThrowsAnyCause;
import static org.apache.ignite.testframework.GridTestUtils.waitForCondition;
@@ -177,7 +177,7 @@ public class IgniteSnapshotRemoteRequestTest extends
IgniteClusterSnapshotRestor
@Override public SnapshotSender apply(String s, UUID uuid) {
return new DelegateSnapshotSender(log,
mgr1.snapshotExecutorService(), mgr1.remoteSnapshotSenderFactory(s, uuid)) {
@Override public void sendPart0(File part, String
cacheDirName, GroupPartitionId pair, Long length) {
- if (partId(part.getName()) > 0) {
+ if (partId(part) > 0) {
try {
sndLatch.await(TIMEOUT, TimeUnit.MILLISECONDS);
}
@@ -247,7 +247,7 @@ public class IgniteSnapshotRemoteRequestTest extends
IgniteClusterSnapshotRestor
assertTrue("Received cache group has not been requested",
parts.containsKey(grpId));
assertTrue("Received partition has not been requested",
- parts.get(grpId).contains(partId(part.getName())));
+ parts.get(grpId).contains(partId(part)));
try {
U.await(latch, TIMEOUT, TimeUnit.MILLISECONDS);
@@ -382,7 +382,7 @@ public class IgniteSnapshotRemoteRequestTest extends
IgniteClusterSnapshotRestor
assertTrue("Received cache group has not been requested",
parts.containsKey(grpId));
assertTrue("Received partition has not been requested",
- parts.get(grpId).remove(partId(part.getName())));
+ parts.get(grpId).remove(partId(part)));
if (latch != null)
latch.countDown();
diff --git
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/IgniteSnapshotRestoreFromRemoteTest.java
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/IgniteSnapshotRestoreFromRemoteTest.java
index bc2f8913626..143f0e50db7 100644
---
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/IgniteSnapshotRestoreFromRemoteTest.java
+++
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/IgniteSnapshotRestoreFromRemoteTest.java
@@ -63,7 +63,7 @@ import org.junit.Test;
import static org.apache.ignite.events.EventType.EVTS_CLUSTER_SNAPSHOT;
import static
org.apache.ignite.events.EventType.EVT_CLUSTER_SNAPSHOT_RESTORE_FINISHED;
import static
org.apache.ignite.events.EventType.EVT_CLUSTER_SNAPSHOT_RESTORE_STARTED;
-import static
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.partId;
+import static
org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree.partId;
import static org.apache.ignite.testframework.GridTestUtils.assertContains;
import static
org.apache.ignite.testframework.GridTestUtils.assertThrowsWithCause;
@@ -306,7 +306,7 @@ public class IgniteSnapshotRestoreFromRemoteTest extends
IgniteClusterSnapshotRe
@Override public SnapshotSender apply(String s, UUID uuid) {
return new DelegateSnapshotSender(log,
mgr.snapshotExecutorService(), mgr.remoteSnapshotSenderFactory(s, uuid)) {
@Override public void sendPart0(File part, String
cacheDirName, GroupPartitionId pair, Long length) {
- if (partId(part.getName()) > 0)
+ if (partId(part) > 0)
throw new IgniteException("Test exception.
Uploading partition file failed: " + pair);
super.sendPart0(part, cacheDirName, pair, length);
diff --git
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/IncrementalSnapshotTest.java
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/IncrementalSnapshotTest.java
index bed27b3b124..1f2eeee4502 100644
---
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/IncrementalSnapshotTest.java
+++
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/IncrementalSnapshotTest.java
@@ -309,7 +309,7 @@ public class IncrementalSnapshotTest extends
AbstractSnapshotSelfTest {
GridLocalConfigManager locCfgMgr =
srv.context().cache().configManager();
- File ccfgFile = locCfgMgr.cacheConfigurationFile(ccfg);
+ File ccfgFile =
srv.context().pdsFolderResolver().fileTree().cacheConfigurationFile(ccfg);
StoredCacheData cacheData = locCfgMgr.readCacheData(ccfgFile);
diff --git
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/dump/IgniteCacheDumpSelf2Test.java
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/dump/IgniteCacheDumpSelf2Test.java
index b90aa7ee89e..571b69a1173 100644
---
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/dump/IgniteCacheDumpSelf2Test.java
+++
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/dump/IgniteCacheDumpSelf2Test.java
@@ -114,9 +114,9 @@ import static
org.apache.ignite.events.EventType.EVTS_CLUSTER_SNAPSHOT;
import static org.apache.ignite.events.EventType.EVT_CLUSTER_SNAPSHOT_FAILED;
import static org.apache.ignite.events.EventType.EVT_CLUSTER_SNAPSHOT_STARTED;
import static
org.apache.ignite.internal.encryption.AbstractEncryptionTest.MASTER_KEY_NAME_2;
-import static
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.CACHE_DATA_FILENAME;
-import static
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.PART_FILE_PREFIX;
-import static
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.ZIP_SUFFIX;
+import static
org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree.CACHE_DATA_FILENAME;
+import static
org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree.PART_FILE_PREFIX;
+import static
org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree.ZIP_SUFFIX;
import static
org.apache.ignite.internal.processors.cache.persistence.filename.PdsFolderResolver.DB_DEFAULT_FOLDER;
import static
org.apache.ignite.internal.processors.cache.persistence.snapshot.AbstractSnapshotSelfTest.doSnapshotCancellationTest;
import static
org.apache.ignite.internal.processors.cache.persistence.snapshot.IgniteSnapshotManager.DUMP_LOCK;
@@ -734,7 +734,7 @@ public class IgniteCacheDumpSelf2Test extends
GridCommonAbstractTest {
Map<Integer, Long> rawSizes = Arrays
.stream(new File(dumpDirectory(ign, rawDump) + "/db/" + id +
"/cache-" + CACHE_0).listFiles())
.filter(f -> !f.getName().equals("cache_data.dat"))
- .peek(f -> assertTrue(f.getName().startsWith(PART_FILE_PREFIX) &&
f.getName().endsWith(DUMP_FILE_EXT)))
+ .peek(f -> assertTrue(NodeFileTree.partitionFile(f) &&
f.getName().endsWith(DUMP_FILE_EXT)))
.collect(Collectors.toMap(
f ->
Integer.parseInt(f.getName().substring(PART_FILE_PREFIX.length(),
f.getName().length() - DUMP_FILE_EXT.length())),
File::length
@@ -743,7 +743,7 @@ public class IgniteCacheDumpSelf2Test extends
GridCommonAbstractTest {
Map<Integer, Long> zipSizes = Arrays
.stream(new File(dumpDirectory(ign, zipDump) + "/db/" + id +
"/cache-" + CACHE_0).listFiles())
.filter(f -> !f.getName().equals("cache_data.dat"))
- .peek(f -> assertTrue(f.getName().startsWith(PART_FILE_PREFIX) &&
f.getName().endsWith(DUMP_FILE_EXT + ZIP_SUFFIX)))
+ .peek(f -> assertTrue(NodeFileTree.partitionFile(f) &&
f.getName().endsWith(DUMP_FILE_EXT + ZIP_SUFFIX)))
.collect(Collectors.toMap(
f ->
Integer.parseInt(f.getName().substring(PART_FILE_PREFIX.length(),
f.getName().length() - (DUMP_FILE_EXT +
ZIP_SUFFIX).length())
@@ -767,8 +767,11 @@ public class IgniteCacheDumpSelf2Test extends
GridCommonAbstractTest {
try {
String entryName = PART_FILE_PREFIX + i + DUMP_FILE_EXT;
- File rawFile = new File(dumpDirectory(ign, rawDump) + "/db/" +
id + "/cache-" + CACHE_0 + "/" + entryName);
- File zipFile = new File(dumpDirectory(ign, zipDump) + "/db/" +
id + "/cache-" + CACHE_0 + "/" + entryName + ZIP_SUFFIX);
+ NodeFileTree rawFt = new NodeFileTree(dumpDirectory(ign,
rawDump), id);
+ NodeFileTree zipFt = new NodeFileTree(dumpDirectory(ign,
zipDump), id);
+
+ File rawFile = new File(rawFt.cacheStorage(false, CACHE_0),
entryName);
+ File zipFile = new File(zipFt.cacheStorage(false, CACHE_0),
entryName + ZIP_SUFFIX);
byte[] rawFileContent = Files.readAllBytes(rawFile.toPath());
diff --git
a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/persistence/IgnitePdsIndexingDefragmentationTest.java
b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/persistence/IgnitePdsIndexingDefragmentationTest.java
index 0eccdb63963..81332ba0cdf 100644
---
a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/persistence/IgnitePdsIndexingDefragmentationTest.java
+++
b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/persistence/IgnitePdsIndexingDefragmentationTest.java
@@ -41,7 +41,6 @@ import
org.apache.ignite.internal.processors.cache.CacheGroupContext;
import org.apache.ignite.internal.processors.cache.GridCacheContext;
import
org.apache.ignite.internal.processors.cache.IgniteCacheUpdateSqlQuerySelfTest;
import
org.apache.ignite.internal.processors.cache.persistence.defragmentation.DefragmentationFileUtils;
-import
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager;
import
org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree;
import
org.apache.ignite.internal.processors.query.schema.IndexRebuildCancelToken;
import org.apache.ignite.internal.util.typedef.internal.CU;
@@ -49,6 +48,7 @@ import org.jetbrains.annotations.Nullable;
import org.junit.Test;
import static org.apache.ignite.cache.CacheAtomicityMode.TRANSACTIONAL;
+import static
org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree.INDEX_FILE_NAME;
/**
* Defragmentation tests with enabled ignite-indexing.
@@ -129,13 +129,13 @@ public class IgnitePdsIndexingDefragmentationTest extends
IgnitePdsDefragmentati
File cacheStorage = ft.cacheStorage(true, GRP_NAME);
- long oldIdxFileLen = new File(cacheStorage,
FilePageStoreManager.INDEX_FILE_NAME).length();
+ long oldIdxFileLen = new File(cacheStorage, INDEX_FILE_NAME).length();
startGrid(0);
waitForDefragmentation(0);
- long newIdxFileLen = new File(cacheStorage,
FilePageStoreManager.INDEX_FILE_NAME).length();
+ long newIdxFileLen = new File(cacheStorage, INDEX_FILE_NAME).length();
assertTrue(
"newIdxFileLen=" + newIdxFileLen + ", oldIdxFileLen=" +
oldIdxFileLen,
diff --git
a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/wal/IgniteWalRecoveryTest.java
b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/wal/IgniteWalRecoveryTest.java
index 3922635c984..110eb532564 100644
---
a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/wal/IgniteWalRecoveryTest.java
+++
b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/wal/IgniteWalRecoveryTest.java
@@ -18,7 +18,6 @@
package org.apache.ignite.internal.processors.cache.persistence.db.wal;
import java.io.File;
-import java.io.FilenameFilter;
import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
@@ -134,7 +133,6 @@ import static
org.apache.ignite.IgniteSystemProperties.IGNITE_DISABLE_WAL_DURING
import static
org.apache.ignite.configuration.DataStorageConfiguration.DFLT_CHECKPOINT_FREQ;
import static
org.apache.ignite.internal.IgniteNodeAttributes.ATTR_IGNITE_INSTANCE_NAME;
import static
org.apache.ignite.internal.processors.cache.persistence.CheckpointState.FINISHED;
-import static
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.CACHE_DATA_FILENAME;
/**
*
@@ -584,11 +582,7 @@ public class IgniteWalRecoveryTest extends
GridCommonAbstractTest {
stopAllGrids();
// Delete cache_data.bin file for this cache. Binary recovery should
complete successfully after it.
- final File[] files = destroyCacheWorkDir.listFiles(new
FilenameFilter() {
- @Override public boolean accept(final File dir, final String name)
{
- return name.endsWith(CACHE_DATA_FILENAME);
- }
- });
+ final File[] files =
destroyCacheWorkDir.listFiles(NodeFileTree::cacheOrCacheGroupConfigFile);
assertTrue(files.length > 0);
diff --git
a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/IgniteClusterSnapshotMetricsTest.java
b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/IgniteClusterSnapshotMetricsTest.java
index 41d45e07a8e..709d9c6c1cd 100644
---
a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/IgniteClusterSnapshotMetricsTest.java
+++
b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/IgniteClusterSnapshotMetricsTest.java
@@ -58,8 +58,8 @@ import org.junit.After;
import org.junit.Before;
import org.junit.Test;
-import static
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.FILE_SUFFIX;
-import static
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.PART_FILE_PREFIX;
+import static
org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree.FILE_SUFFIX;
+import static
org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree.PART_FILE_PREFIX;
import static
org.apache.ignite.internal.processors.cache.persistence.snapshot.IgniteSnapshotManager.SNAPSHOT_METRICS;
import static
org.apache.ignite.internal.processors.cache.persistence.snapshot.IgniteSnapshotManager.SNAPSHOT_TRANSFER_RATE_DMS_KEY;
import static
org.apache.ignite.internal.processors.cache.persistence.snapshot.SnapshotRestoreProcess.SNAPSHOT_RESTORE_METRICS;
diff --git
a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/database/RebuildIndexTest.java
b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/database/RebuildIndexTest.java
index a6f2aeecd84..9dee2364b6e 100644
---
a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/database/RebuildIndexTest.java
+++
b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/database/RebuildIndexTest.java
@@ -17,13 +17,13 @@
package org.apache.ignite.internal.processors.database;
+import java.io.File;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashSet;
import java.util.LinkedHashMap;
import java.util.regex.Pattern;
import org.apache.ignite.IgniteCache;
-import org.apache.ignite.IgniteCheckedException;
import org.apache.ignite.cache.CacheAtomicityMode;
import org.apache.ignite.cache.QueryEntity;
import org.apache.ignite.cache.QueryIndex;
@@ -47,7 +47,7 @@ import org.junit.Test;
import static
org.apache.ignite.IgniteSystemProperties.IGNITE_ENABLE_EXTRA_INDEX_REBUILD_LOGGING;
import static org.apache.ignite.cache.CacheMode.REPLICATED;
import static org.apache.ignite.cache.CacheWriteSynchronizationMode.FULL_SYNC;
-import static
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.INDEX_FILE_NAME;
+import static
org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree.INDEX_FILE_NAME;
/**
*
@@ -176,7 +176,9 @@ public class RebuildIndexTest extends
GridCommonAbstractTest {
stopGrid(0);
- removeIndexBin(0);
+ U.delete(
+ new
File(nodeFileTree(U.maskForFileName(getTestIgniteInstanceName(0))).cacheStorage(false,
CACHE_NAME), INDEX_FILE_NAME)
+ );
node = startGrid(0);
@@ -196,17 +198,6 @@ public class RebuildIndexTest extends
GridCommonAbstractTest {
assertEquals(msgFound, idxRebuildLsnr.check());
}
- /** */
- private void removeIndexBin(int nodeId) throws IgniteCheckedException {
- U.delete(
- U.resolveWorkDirectory(
- U.defaultWorkDirectory(),
- "db/" + U.maskForFileName(getTestIgniteInstanceName(nodeId)) +
"/cache-" + CACHE_NAME + "/" + INDEX_FILE_NAME,
- false
- )
- );
- }
-
/**
* User key.
*/
diff --git
a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/database/RebuildIndexWithHistoricalRebalanceTest.java
b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/database/RebuildIndexWithHistoricalRebalanceTest.java
index cc5a54b338e..26fe57bfed8 100644
---
a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/database/RebuildIndexWithHistoricalRebalanceTest.java
+++
b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/database/RebuildIndexWithHistoricalRebalanceTest.java
@@ -17,6 +17,7 @@
package org.apache.ignite.internal.processors.database;
+import java.io.File;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashSet;
@@ -24,7 +25,6 @@ import java.util.LinkedHashMap;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.atomic.AtomicReference;
import org.apache.ignite.IgniteCache;
-import org.apache.ignite.IgniteCheckedException;
import org.apache.ignite.IgniteException;
import org.apache.ignite.cache.CacheAtomicityMode;
import org.apache.ignite.cache.QueryEntity;
@@ -60,7 +60,7 @@ import org.junit.Test;
import static
org.apache.ignite.IgniteSystemProperties.IGNITE_PDS_WAL_REBALANCE_THRESHOLD;
import static org.apache.ignite.cache.CacheMode.REPLICATED;
import static org.apache.ignite.cache.CacheWriteSynchronizationMode.FULL_SYNC;
-import static
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.INDEX_FILE_NAME;
+import static
org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree.INDEX_FILE_NAME;
/**
* Rebuild index after index.bin remove, when partition is moving.
@@ -218,7 +218,9 @@ public class RebuildIndexWithHistoricalRebalanceTest
extends GridCommonAbstractT
SUPPLY_MESSAGE_LATCH.set(new CountDownLatch(1));
- removeIndexBin(1);
+ U.delete(
+ new
File(nodeFileTree(U.maskForFileName(getTestIgniteInstanceName(1))).cacheStorage(false,
CACHE_NAME), INDEX_FILE_NAME)
+ );
LogListener rebuildLsnr = finishIndexRebuildLsnr(CACHE_NAME);
@@ -247,17 +249,6 @@ public class RebuildIndexWithHistoricalRebalanceTest
extends GridCommonAbstractT
return lsnr;
}
- /** */
- private void removeIndexBin(int nodeId) throws IgniteCheckedException {
- U.delete(
- U.resolveWorkDirectory(
- U.defaultWorkDirectory(),
- "db/" + U.maskForFileName(getTestIgniteInstanceName(nodeId)) +
"/cache-" + CACHE_NAME + "/" + INDEX_FILE_NAME,
- false
- )
- );
- }
-
/** */
private static class RebalanceBlockingSPI extends TcpCommunicationSpi {
/** {@inheritDoc} */
diff --git
a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/database/WalDisabledDuringIndexRecreateTest.java
b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/database/WalDisabledDuringIndexRecreateTest.java
index c81b3a262e0..5064b6e1d1e 100644
---
a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/database/WalDisabledDuringIndexRecreateTest.java
+++
b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/database/WalDisabledDuringIndexRecreateTest.java
@@ -65,7 +65,7 @@ import static
org.apache.ignite.configuration.DataStorageConfiguration.UNLIMITED
import static
org.apache.ignite.internal.pagemem.PageIdAllocator.INDEX_PARTITION;
import static
org.apache.ignite.internal.processors.cache.GridCacheUtils.cacheGroupId;
import static
org.apache.ignite.internal.processors.cache.GridCacheUtils.cacheId;
-import static
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.INDEX_FILE_NAME;
+import static
org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree.INDEX_FILE_NAME;
import static
org.apache.ignite.internal.processors.query.schema.management.SortedIndexDescriptorFactory.H2_TREE;
/** */
diff --git
a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/GridIndexRebuildSelfTest.java
b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/GridIndexRebuildSelfTest.java
index 342e6f99d07..adef89003b0 100644
---
a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/GridIndexRebuildSelfTest.java
+++
b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/GridIndexRebuildSelfTest.java
@@ -47,7 +47,7 @@ import org.junit.Test;
import static java.util.Objects.nonNull;
import static java.util.Objects.requireNonNull;
-import static
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.INDEX_FILE_NAME;
+import static
org.apache.ignite.internal.processors.cache.persistence.filename.NodeFileTree.INDEX_FILE_NAME;
import static
org.apache.ignite.internal.processors.query.QueryUtils.DFLT_SCHEMA;
import static org.apache.ignite.internal.util.IgniteUtils.delete;