You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by ag...@apache.org on 2018/05/25 09:06:45 UTC
ignite git commit: IGNITE-8540 Fast cleanup of PDS when joining node
is not in baseline - Fixes #4037.
Repository: ignite
Updated Branches:
refs/heads/master 40845c677 -> 3f14d2b35
IGNITE-8540 Fast cleanup of PDS when joining node is not in baseline - Fixes #4037.
Signed-off-by: Alexey Goncharuk <al...@gmail.com>
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/3f14d2b3
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/3f14d2b3
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/3f14d2b3
Branch: refs/heads/master
Commit: 3f14d2b35d7818196598e8541590186e06b8edbb
Parents: 40845c6
Author: Anton Kalashnikov <ka...@yandex.ru>
Authored: Fri May 25 12:01:10 2018 +0300
Committer: Alexey Goncharuk <al...@gmail.com>
Committed: Fri May 25 12:01:10 2018 +0300
----------------------------------------------------------------------
.../pagemem/store/IgnitePageStoreManager.java | 8 ++
.../pagemem/wal/IgniteWriteAheadLogManager.java | 5 +
.../processors/cache/GridCacheProcessor.java | 16 ++-
.../GridDhtPartitionsExchangeFuture.java | 18 ++++
.../GridCacheDatabaseSharedManager.java | 19 +++-
.../IgniteCacheDatabaseSharedManager.java | 7 ++
.../persistence/file/FilePageStoreManager.java | 23 ++++
.../wal/FileWriteAheadLogManager.java | 25 +++++
.../wal/FsyncModeFileWriteAheadLogManager.java | 25 +++++
...niteAbsentEvictionNodeOutOfBaselineTest.java | 106 +++++++++++++++++++
.../pagemem/NoOpPageStoreManager.java | 6 ++
.../persistence/pagemem/NoOpWALManager.java | 5 +
.../ignite/testsuites/IgnitePdsTestSuite2.java | 2 +
13 files changed, 262 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/3f14d2b3/modules/core/src/main/java/org/apache/ignite/internal/pagemem/store/IgnitePageStoreManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/store/IgnitePageStoreManager.java b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/store/IgnitePageStoreManager.java
index 0fc9f94..7dba8ae 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/store/IgnitePageStoreManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/store/IgnitePageStoreManager.java
@@ -20,6 +20,7 @@ package org.apache.ignite.internal.pagemem.store;
import java.nio.ByteBuffer;
import java.util.Map;
import org.apache.ignite.IgniteCheckedException;
+import org.apache.ignite.configuration.CacheConfiguration;
import org.apache.ignite.internal.pagemem.PageMemory;
import org.apache.ignite.internal.processors.cache.CacheGroupContext;
import org.apache.ignite.internal.processors.cache.CacheGroupDescriptor;
@@ -220,4 +221,11 @@ public interface IgnitePageStoreManager extends GridCacheSharedManager, IgniteCh
* @return number of pages.
*/
public long pagesAllocated(int grpId);
+
+ /**
+ * Cleanup persistent space for cache.
+ *
+ * @param cacheConfiguration Cache configuration of cache which should be cleanup.
+ */
+ public void cleanupPersistentSpace(CacheConfiguration cacheConfiguration) throws IgniteCheckedException;
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/3f14d2b3/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/IgniteWriteAheadLogManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/IgniteWriteAheadLogManager.java b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/IgniteWriteAheadLogManager.java
index b5c22c9..fd5d53b 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/IgniteWriteAheadLogManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/IgniteWriteAheadLogManager.java
@@ -144,4 +144,9 @@ public interface IgniteWriteAheadLogManager extends GridCacheSharedManager, Igni
* @param grpId Group id.
*/
public boolean disabled(int grpId);
+
+ /**
+ * Cleanup all directories relating to WAL (e.g. work WAL dir, archive WAL dir).
+ */
+ public void cleanupWalDirectories() throws IgniteCheckedException;
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/3f14d2b3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
index ccccdec..8cd6b88 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
@@ -179,6 +179,7 @@ import static org.apache.ignite.internal.IgniteComponentType.JTA;
import static org.apache.ignite.internal.IgniteNodeAttributes.ATTR_CONSISTENCY_CHECK_SKIPPED;
import static org.apache.ignite.internal.IgniteNodeAttributes.ATTR_TX_CONFIG;
import static org.apache.ignite.internal.processors.cache.GridCacheUtils.isNearEnabled;
+import static org.apache.ignite.internal.processors.cache.GridCacheUtils.isPersistentCache;
/**
* Cache processor.
@@ -3294,11 +3295,24 @@ public class GridCacheProcessor extends GridProcessorAdapter {
assert desc != null;
if (sharedCtx.pageStore() != null && !sharedCtx.kernalContext().clientNode() &&
- CU.isPersistentCache(desc.cacheConfiguration(), sharedCtx.gridConfig().getDataStorageConfiguration()))
+ isPersistentCache(desc.cacheConfiguration(), sharedCtx.gridConfig().getDataStorageConfiguration()))
sharedCtx.pageStore().storeCacheData(desc.toStoredData(), true);
}
/**
+ * Remove all persistent files for all registered caches.
+ */
+ public void cleanupCachesDirectories() throws IgniteCheckedException {
+ if (sharedCtx.pageStore() == null || sharedCtx.kernalContext().clientNode())
+ return;
+
+ for (DynamicCacheDescriptor desc : cacheDescriptors().values()) {
+ if (isPersistentCache(desc.cacheConfiguration(), sharedCtx.gridConfig().getDataStorageConfiguration()))
+ sharedCtx.pageStore().cleanupPersistentSpace(desc.cacheConfiguration());
+ }
+ }
+
+ /**
* @param reqs Requests.
* @return Collection of futures.
*/
http://git-wip-us.apache.org/repos/asf/ignite/blob/3f14d2b3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
index fe0ce2b..ccd2b16 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
@@ -776,6 +776,15 @@ public class GridDhtPartitionsExchangeFuture extends GridDhtTopologyFutureAdapte
* @throws IgniteCheckedException If failed.
*/
private void initCachesOnLocalJoin() throws IgniteCheckedException {
+ if (isLocalNodeNotInBaseline()) {
+ cctx.cache().cleanupCachesDirectories();
+
+ cctx.database().cleanupCheckpointDirectory();
+
+ if (cctx.wal() != null)
+ cctx.wal().cleanupWalDirectories();
+ }
+
cctx.activate();
LocalJoinCachesContext locJoinCtx = exchActions == null ? null : exchActions.localJoinContext();
@@ -823,6 +832,15 @@ public class GridDhtPartitionsExchangeFuture extends GridDhtTopologyFutureAdapte
}
/**
+ * @return {@code true} if local node is not in baseline and {@code false} otherwise.
+ */
+ private boolean isLocalNodeNotInBaseline() {
+ BaselineTopology topology = cctx.discovery().discoCache().state().baselineTopology();
+
+ return topology!= null && !topology.consistentIds().contains(cctx.localNode().consistentId());
+ }
+
+ /**
* @throws IgniteCheckedException If failed.
*/
private void initTopologies() throws IgniteCheckedException {
http://git-wip-us.apache.org/repos/asf/ignite/blob/3f14d2b3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheDatabaseSharedManager.java
----------------------------------------------------------------------
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 2e1fcb4..24ab96b 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
@@ -525,7 +525,7 @@ public class GridCacheDatabaseSharedManager extends IgniteCacheDatabaseSharedMan
if (!U.mkdirs(cpDir))
throw new IgniteCheckedException("Could not create directory for checkpoint metadata: " + cpDir);
- cleanupCheckpointDirectory();
+ cleanupTempCheckpointDirectory();
final FileLockHolder preLocked = kernalCtx.pdsFolderResolver()
.resolveFolders()
@@ -543,7 +543,7 @@ public class GridCacheDatabaseSharedManager extends IgniteCacheDatabaseSharedMan
/**
* Cleanup checkpoint directory from all temporary files {@link #FILE_TMP_SUFFIX}.
*/
- private void cleanupCheckpointDirectory() throws IgniteCheckedException {
+ private void cleanupTempCheckpointDirectory() throws IgniteCheckedException {
try {
try (DirectoryStream<Path> files = Files.newDirectoryStream(cpDir.toPath(), new DirectoryStream.Filter<Path>() {
@Override
@@ -556,6 +556,21 @@ public class GridCacheDatabaseSharedManager extends IgniteCacheDatabaseSharedMan
}
}
catch (IOException e) {
+ throw new IgniteCheckedException("Failed to cleanup checkpoint directory from temporary files: " + cpDir, e);
+ }
+ }
+
+ /**
+ * Cleanup checkpoint directory.
+ */
+ public void cleanupCheckpointDirectory() throws IgniteCheckedException {
+ try {
+ try (DirectoryStream<Path> files = Files.newDirectoryStream(cpDir.toPath())) {
+ for (Path path : files)
+ Files.delete(path);
+ }
+ }
+ catch (IOException e) {
throw new IgniteCheckedException("Failed to cleanup checkpoint directory: " + cpDir, e);
}
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/3f14d2b3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/IgniteCacheDatabaseSharedManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/IgniteCacheDatabaseSharedManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/IgniteCacheDatabaseSharedManager.java
index 6f151b5..5cea1bd 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/IgniteCacheDatabaseSharedManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/IgniteCacheDatabaseSharedManager.java
@@ -736,6 +736,13 @@ public class IgniteCacheDatabaseSharedManager extends GridCacheSharedManagerAdap
}
/**
+ * No-op for non-persistent storage.
+ */
+ public void cleanupCheckpointDirectory() throws IgniteCheckedException {
+ // No-op.
+ }
+
+ /**
*
*/
@Nullable public IgniteInternalFuture wakeupForCheckpoint(String reason) {
http://git-wip-us.apache.org/repos/asf/ignite/blob/3f14d2b3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/file/FilePageStoreManager.java
----------------------------------------------------------------------
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 90da4ec..1e9c32b 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
@@ -167,6 +167,29 @@ public class FilePageStoreManager extends GridCacheSharedManagerAdapter implemen
}
/** {@inheritDoc} */
+ public void cleanupPersistentSpace(CacheConfiguration cacheConfiguration) throws IgniteCheckedException {
+ try {
+ File cacheWorkDir = cacheWorkDir(cacheConfiguration);
+
+ if(!cacheWorkDir.exists())
+ return;
+
+ try (DirectoryStream<Path> files = Files.newDirectoryStream(cacheWorkDir.toPath(),
+ new DirectoryStream.Filter<Path>() {
+ @Override public boolean accept(Path entry) throws IOException {
+ return entry.toFile().getName().endsWith(FILE_SUFFIX);
+ }
+ })) {
+ for (Path path : files)
+ Files.delete(path);
+ }
+ }
+ catch (IOException e) {
+ throw new IgniteCheckedException("Failed to cleanup persistent directory: ", e);
+ }
+ }
+
+ /** {@inheritDoc} */
@Override public void stop0(boolean cancel) {
if (log.isDebugEnabled())
log.debug("Stopping page store manager.");
http://git-wip-us.apache.org/repos/asf/ignite/blob/3f14d2b3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/FileWriteAheadLogManager.java
----------------------------------------------------------------------
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 42ae846..c5f3793 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
@@ -33,8 +33,10 @@ import java.nio.ByteBuffer;
import java.nio.ByteOrder;
import java.nio.MappedByteBuffer;
import java.nio.channels.ClosedByInterruptException;
+import java.nio.file.DirectoryStream;
import java.nio.file.FileAlreadyExistsException;
import java.nio.file.Files;
+import java.nio.file.Path;
import java.sql.Time;
import java.util.ArrayList;
import java.util.Arrays;
@@ -1333,6 +1335,29 @@ public class FileWriteAheadLogManager extends GridCacheSharedManagerAdapter impl
checkFiles(0, false, null, null);
}
+ /** {@inheritDoc} */
+ public void cleanupWalDirectories() throws IgniteCheckedException {
+ try {
+ try (DirectoryStream<Path> files = Files.newDirectoryStream(walWorkDir.toPath())) {
+ for (Path path : files)
+ Files.delete(path);
+ }
+ }
+ catch (IOException e) {
+ throw new IgniteCheckedException("Failed to cleanup wal work directory: " + walWorkDir, e);
+ }
+
+ try {
+ try (DirectoryStream<Path> files = Files.newDirectoryStream(walArchiveDir.toPath())) {
+ for (Path path : files)
+ Files.delete(path);
+ }
+ }
+ catch (IOException e) {
+ throw new IgniteCheckedException("Failed to cleanup wal archive directory: " + walArchiveDir, e);
+ }
+ }
+
/**
* Clears whole the file, fills with zeros for Default mode.
*
http://git-wip-us.apache.org/repos/asf/ignite/blob/3f14d2b3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/FsyncModeFileWriteAheadLogManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/FsyncModeFileWriteAheadLogManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/FsyncModeFileWriteAheadLogManager.java
index 9636a72..867f13f 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/FsyncModeFileWriteAheadLogManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/FsyncModeFileWriteAheadLogManager.java
@@ -28,8 +28,10 @@ import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
+import java.nio.file.DirectoryStream;
import java.nio.file.FileAlreadyExistsException;
import java.nio.file.Files;
+import java.nio.file.Path;
import java.sql.Time;
import java.util.ArrayList;
import java.util.Arrays;
@@ -895,6 +897,29 @@ public class FsyncModeFileWriteAheadLogManager extends GridCacheSharedManagerAda
return ctx != null && !ctx.walEnabled();
}
+ /** {@inheritDoc} */
+ @Override public void cleanupWalDirectories() throws IgniteCheckedException {
+ try {
+ try (DirectoryStream<Path> files = Files.newDirectoryStream(walWorkDir.toPath())) {
+ for (Path path : files)
+ Files.delete(path);
+ }
+ }
+ catch (IOException e) {
+ throw new IgniteCheckedException("Failed to cleanup wal work directory: " + walWorkDir, e);
+ }
+
+ try {
+ try (DirectoryStream<Path> files = Files.newDirectoryStream(walArchiveDir.toPath())) {
+ for (Path path : files)
+ Files.delete(path);
+ }
+ }
+ catch (IOException e) {
+ throw new IgniteCheckedException("Failed to cleanup wal archive directory: " + walArchiveDir, e);
+ }
+ }
+
/**
* Lists files in archive directory and returns the index of last archived file.
*
http://git-wip-us.apache.org/repos/asf/ignite/blob/3f14d2b3/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/baseline/IgniteAbsentEvictionNodeOutOfBaselineTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/baseline/IgniteAbsentEvictionNodeOutOfBaselineTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/baseline/IgniteAbsentEvictionNodeOutOfBaselineTest.java
new file mode 100644
index 0000000..0c9fb63
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/baseline/IgniteAbsentEvictionNodeOutOfBaselineTest.java
@@ -0,0 +1,106 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.processors.cache.persistence.baseline;
+
+import java.util.List;
+import org.apache.ignite.Ignite;
+import org.apache.ignite.IgniteCache;
+import org.apache.ignite.configuration.DataRegionConfiguration;
+import org.apache.ignite.configuration.DataStorageConfiguration;
+import org.apache.ignite.configuration.IgniteConfiguration;
+import org.apache.ignite.configuration.WALMode;
+import org.apache.ignite.internal.IgniteEx;
+import org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtLocalPartition;
+import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
+
+/**
+ * Test absenting eviction for joined node if it is out of baseline.
+ */
+public class IgniteAbsentEvictionNodeOutOfBaselineTest extends GridCommonAbstractTest {
+ /** */
+ private static final String TEST_CACHE_NAME = "test";
+
+ /** {@inheritDoc} */
+ @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
+ IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
+
+ cfg.setDataStorageConfiguration(new DataStorageConfiguration()
+ .setWalSegmentSize(512 * 1024)
+ .setWalSegments(4)
+ .setDefaultDataRegionConfiguration(
+ new DataRegionConfiguration()
+ .setMaxSize(256 * 1024 * 1024)
+ .setPersistenceEnabled(true))
+ .setWalMode(WALMode.LOG_ONLY));
+
+ return cfg;
+ }
+
+ /** {@inheritDoc} */
+ @Override protected void beforeTest() throws Exception {
+ stopAllGrids();
+
+ cleanPersistenceDir();
+ }
+
+ /** {@inheritDoc} */
+ @Override protected void afterTest() throws Exception {
+ stopAllGrids();
+
+ cleanPersistenceDir();
+ }
+
+ /** {@inheritDoc} */
+ @Override protected void afterTestsStopped() throws Exception {
+ stopAllGrids();
+
+ cleanPersistenceDir();
+ }
+
+ /**
+ * Removed partitions if node is out of baseline.
+ */
+ public void testPartitionsRemovedIfJoiningNodeNotInBaseline() throws Exception {
+ //given: start 3 nodes with data
+ Ignite ignite0 = startGrids(3);
+
+ ignite0.cluster().active(true);
+
+ IgniteCache<Object, Object> cache = ignite0.getOrCreateCache(TEST_CACHE_NAME);
+
+ for(int i = 0; i< 100; i++)
+ cache.put(i, i);
+
+ //when: stop one node and reset baseline topology
+ stopGrid(2);
+
+ resetBaselineTopology();
+
+ awaitPartitionMapExchange();
+
+ for(int i = 0; i< 200; i++)
+ cache.put(i, i);
+
+ //then: after returning stopped node to grid its partitions should be removed
+ IgniteEx ignite2 = startGrid(2);
+
+ List<GridDhtLocalPartition> partitions = ignite2.cachex(TEST_CACHE_NAME).context().topology().localPartitions();
+
+ assertTrue("Should be empty : " + partitions, partitions.isEmpty());
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/3f14d2b3/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/NoOpPageStoreManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/NoOpPageStoreManager.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/NoOpPageStoreManager.java
index be40c90..ba236af 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/NoOpPageStoreManager.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/NoOpPageStoreManager.java
@@ -24,6 +24,7 @@ import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
import java.util.concurrent.atomic.AtomicInteger;
import org.apache.ignite.IgniteCheckedException;
+import org.apache.ignite.configuration.CacheConfiguration;
import org.apache.ignite.internal.GridKernalContext;
import org.apache.ignite.internal.pagemem.FullPageId;
import org.apache.ignite.internal.pagemem.PageIdUtils;
@@ -215,4 +216,9 @@ public class NoOpPageStoreManager implements IgnitePageStoreManager {
@Override public long pagesAllocated(int grpId) {
return 0;
}
+
+ /** {@inheritDoc} */
+ @Override public void cleanupPersistentSpace(CacheConfiguration cacheConfiguration) throws IgniteCheckedException {
+ // No-op.
+ }
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/3f14d2b3/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/NoOpWALManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/NoOpWALManager.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/NoOpWALManager.java
index c95d1f4..0188445 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/NoOpWALManager.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/NoOpWALManager.java
@@ -102,6 +102,11 @@ public class NoOpWALManager implements IgniteWriteAheadLogManager {
}
/** {@inheritDoc} */
+ @Override public void cleanupWalDirectories() throws IgniteCheckedException {
+ // No-op.
+ }
+
+ /** {@inheritDoc} */
@Override public void start(GridCacheSharedContext cctx) throws IgniteCheckedException {
// No-op.
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/3f14d2b3/modules/core/src/test/java/org/apache/ignite/testsuites/IgnitePdsTestSuite2.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/testsuites/IgnitePdsTestSuite2.java b/modules/core/src/test/java/org/apache/ignite/testsuites/IgnitePdsTestSuite2.java
index 95a9529..faa2333 100644
--- a/modules/core/src/test/java/org/apache/ignite/testsuites/IgnitePdsTestSuite2.java
+++ b/modules/core/src/test/java/org/apache/ignite/testsuites/IgnitePdsTestSuite2.java
@@ -30,6 +30,7 @@ import org.apache.ignite.internal.processors.cache.persistence.IgnitePdsPartitio
import org.apache.ignite.internal.processors.cache.persistence.IgnitePdsRecoveryAfterFileCorruptionTest;
import org.apache.ignite.internal.processors.cache.persistence.IgnitePersistentStoreDataStructuresTest;
import org.apache.ignite.internal.processors.cache.persistence.LocalWalModeChangeDuringRebalancingSelfTest;
+import org.apache.ignite.internal.processors.cache.persistence.baseline.IgniteAbsentEvictionNodeOutOfBaselineTest;
import org.apache.ignite.internal.processors.cache.persistence.baseline.IgniteAllBaselineNodesOnlineFullApiSelfTest;
import org.apache.ignite.internal.processors.cache.persistence.baseline.IgniteOfflineBaselineNodeFullApiSelfTest;
import org.apache.ignite.internal.processors.cache.persistence.baseline.IgniteOnlineNodeOutOfBaselineFullApiSelfTest;
@@ -76,6 +77,7 @@ public class IgnitePdsTestSuite2 extends TestSuite {
suite.addTestSuite(IgniteAllBaselineNodesOnlineFullApiSelfTest.class);
suite.addTestSuite(IgniteOfflineBaselineNodeFullApiSelfTest.class);
suite.addTestSuite(IgniteOnlineNodeOutOfBaselineFullApiSelfTest.class);
+ suite.addTestSuite(IgniteAbsentEvictionNodeOutOfBaselineTest.class);
suite.addTestSuite(FileDownloaderTest.class);