You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by gv...@apache.org on 2018/12/14 10:57:26 UTC

[2/2] ignite git commit: IGNITE-10462: MVCC: Create "PDS 2" test suite for MVCC mode. This closes #5567.

IGNITE-10462: MVCC: Create "PDS 2" test suite for MVCC mode. This closes #5567.


Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/5a856aca
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/5a856aca
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/5a856aca

Branch: refs/heads/master
Commit: 5a856acaadd82ee568ca011d160e10bf1967fa3d
Parents: 1eb5750
Author: Andrey V. Mashenkov <an...@gmail.com>
Authored: Fri Dec 14 13:57:16 2018 +0300
Committer: Igor Seliverstov <gv...@gmail.com>
Committed: Fri Dec 14 13:57:16 2018 +0300

----------------------------------------------------------------------
 .../IgnitePdsCompressionTestSuite2.java         |   2 +-
 ...erceptorPartitionCounterLocalSanityTest.java |   2 +-
 ...torPartitionCounterRandomOperationsTest.java |   5 +-
 .../cache/GridCacheAbstractFullApiSelfTest.java |  11 +
 .../cache/IgniteCacheMvccTxInvokeTest.java      |   9 +
 .../distributed/CacheExchangeMergeTest.java     |   2 +-
 ...PdsCacheStartStopWithFreqCheckpointTest.java |   2 +
 .../IgnitePdsPartitionFilesDestroyTest.java     |  19 +-
 .../IgnitePdsPartitionsStateRecoveryTest.java   |  21 +-
 ...teRebalanceScheduleResendPartitionsTest.java |   9 +-
 ...hangeDuringRebalanceOnNonNodeAssignTest.java | 175 ---------------
 ...lWalModeChangeDuringRebalancingSelfTest.java |  29 ++-
 ...hangeDuringRebalanceOnNonNodeAssignTest.java | 211 +++++++++++++++++++
 ...lientAffinityAssignmentWithBaselineTest.java |   9 +-
 ...tePdsRebalancingOnNotStableTopologyTest.java |  13 +-
 .../db/IgnitePdsWholeClusterRestartTest.java    |  14 +-
 ...SlowHistoricalRebalanceSmallHistoryTest.java |   9 +-
 .../IgniteNodeStoppedDuringDisableWALTest.java  |   7 +-
 ...lFlushMultiNodeFailoverAbstractSelfTest.java |   6 +-
 .../wal/IgniteWalHistoryReservationsTest.java   |  14 ++
 .../db/wal/WalDeletionArchiveAbstractTest.java  |  20 +-
 .../db/wal/reader/IgniteWalReaderTest.java      | 113 ++++++----
 ...eContinuousQueryAsyncFilterListenerTest.java |   4 +-
 ...usQueryFactoryFilterRandomOperationTest.java |   2 +-
 .../CacheContinuousQueryOrderingEventTest.java  |   3 +-
 ...acheContinuousQueryRandomOperationsTest.java |   2 +-
 .../testframework/junits/GridAbstractTest.java  |  13 +-
 .../junits/common/GridCommonAbstractTest.java   |   9 +
 .../junits/multijvm/IgniteProcessProxy.java     |   6 +-
 .../testsuites/IgnitePdsMvccTestSuite2.java     |  97 +++++++++
 .../ignite/testsuites/IgnitePdsTestSuite2.java  | 127 ++++++-----
 .../testsuites/IgnitePdsNativeIoTestSuite2.java |   7 +-
 32 files changed, 620 insertions(+), 352 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/5a856aca/modules/compress/src/test/java/org/apache/ignite/testsuites/IgnitePdsCompressionTestSuite2.java
----------------------------------------------------------------------
diff --git a/modules/compress/src/test/java/org/apache/ignite/testsuites/IgnitePdsCompressionTestSuite2.java b/modules/compress/src/test/java/org/apache/ignite/testsuites/IgnitePdsCompressionTestSuite2.java
index 3fb8ac2..4151adf 100644
--- a/modules/compress/src/test/java/org/apache/ignite/testsuites/IgnitePdsCompressionTestSuite2.java
+++ b/modules/compress/src/test/java/org/apache/ignite/testsuites/IgnitePdsCompressionTestSuite2.java
@@ -31,7 +31,7 @@ public class IgnitePdsCompressionTestSuite2 {
         TestSuite suite = new TestSuite("Ignite Persistent Store Test Suite 2 (with page compression).");
 
         enableCompressionByDefault();
-        IgnitePdsTestSuite2.addRealPageStoreTests(suite);
+        IgnitePdsTestSuite2.addRealPageStoreTests(suite, null);
 
         return suite;
     }

http://git-wip-us.apache.org/repos/asf/ignite/blob/5a856aca/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheInterceptorPartitionCounterLocalSanityTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheInterceptorPartitionCounterLocalSanityTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheInterceptorPartitionCounterLocalSanityTest.java
index 0337ab2..9f370dd 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheInterceptorPartitionCounterLocalSanityTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheInterceptorPartitionCounterLocalSanityTest.java
@@ -220,7 +220,7 @@ public class CacheInterceptorPartitionCounterLocalSanityTest extends GridCommonA
 
         Transaction tx = null;
 
-        if (cache.getConfiguration(CacheConfiguration.class).getAtomicityMode() == TRANSACTIONAL && rnd.nextBoolean())
+        if (atomicityMode(cache) == TRANSACTIONAL && rnd.nextBoolean())
             tx = ignite.transactions().txStart(txRandomConcurrency(rnd), txRandomIsolation(rnd));
 
         try {

http://git-wip-us.apache.org/repos/asf/ignite/blob/5a856aca/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheInterceptorPartitionCounterRandomOperationsTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheInterceptorPartitionCounterRandomOperationsTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheInterceptorPartitionCounterRandomOperationsTest.java
index 53d9d72..2f83871 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheInterceptorPartitionCounterRandomOperationsTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheInterceptorPartitionCounterRandomOperationsTest.java
@@ -470,7 +470,7 @@ public class CacheInterceptorPartitionCounterRandomOperationsTest extends GridCo
 
         Transaction tx = null;
 
-        CacheAtomicityMode atomicityMode = cache.getConfiguration(CacheConfiguration.class).getAtomicityMode();
+        CacheAtomicityMode atomicityMode = GridCommonAbstractTest.atomicityMode(cache);
 
         if (atomicityMode == TRANSACTIONAL && rnd.nextBoolean())
             tx = ignite.transactions().txStart(txRandomConcurrency(rnd), txRandomIsolation(rnd));
@@ -705,8 +705,7 @@ public class CacheInterceptorPartitionCounterRandomOperationsTest extends GridCo
         Object key,
         boolean rmv
     ) {
-        Collection<ClusterNode> nodes =
-            cache.getConfiguration(CacheConfiguration.class).getAtomicityMode() == TRANSACTIONAL ?
+        Collection<ClusterNode> nodes = atomicityMode(cache) == TRANSACTIONAL ?
                 affinity(cache).mapKeyToPrimaryAndBackups(key) :
                 Collections.singletonList(affinity(cache).mapKeyToNode(key));
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/5a856aca/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractFullApiSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractFullApiSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractFullApiSelfTest.java
index 8c4ea1e..e709bfd 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractFullApiSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractFullApiSelfTest.java
@@ -99,10 +99,12 @@ import org.apache.ignite.services.ServiceContext;
 import org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi;
 import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
 import org.apache.ignite.testframework.GridTestUtils;
+import org.apache.ignite.testframework.MvccFeatureChecker;
 import org.apache.ignite.transactions.Transaction;
 import org.apache.ignite.transactions.TransactionConcurrency;
 import org.apache.ignite.transactions.TransactionIsolation;
 import org.jetbrains.annotations.Nullable;
+import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.JUnit4;
@@ -178,6 +180,15 @@ public abstract class GridCacheAbstractFullApiSelfTest extends GridCacheAbstract
             }
         };
 
+    /** {@inheritDoc} */
+    @Before
+    @Override public void setUp() throws Exception {
+        if (MvccFeatureChecker.forcedMvcc())
+            fail("https://issues.apache.org/jira/browse/IGNITE-9543");
+
+        super.setUp();
+    }
+
     /** Dflt grid. */
     protected transient Ignite dfltIgnite;
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/5a856aca/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheMvccTxInvokeTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheMvccTxInvokeTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheMvccTxInvokeTest.java
index 6ed5698..e5742ad 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheMvccTxInvokeTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheMvccTxInvokeTest.java
@@ -20,6 +20,8 @@ package org.apache.ignite.internal.processors.cache;
 import org.apache.ignite.cache.CacheAtomicityMode;
 import org.apache.ignite.cache.CacheMode;
 import org.apache.ignite.configuration.NearCacheConfiguration;
+import org.junit.Ignore;
+import org.junit.Test;
 
 import static org.apache.ignite.cache.CacheAtomicityMode.TRANSACTIONAL_SNAPSHOT;
 import static org.apache.ignite.cache.CacheMode.PARTITIONED;
@@ -47,4 +49,11 @@ public class IgniteCacheMvccTxInvokeTest extends IgniteCacheInvokeAbstractTest {
     @Override protected NearCacheConfiguration nearConfiguration() {
         return null;
     }
+
+    /** {@inheritDoc} */
+    @Ignore("https://issues.apache.org/jira/browse/IGNITE-10472")
+    @Test
+    @Override public void testInvokeAllAppliedOnceOnBinaryTypeRegistration() {
+        super.testInvokeAllAppliedOnceOnBinaryTypeRegistration();
+    }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ignite/blob/5a856aca/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheExchangeMergeTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheExchangeMergeTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheExchangeMergeTest.java
index 2ab762d..17770c3 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheExchangeMergeTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheExchangeMergeTest.java
@@ -1417,7 +1417,7 @@ public class CacheExchangeMergeTest extends GridCommonAbstractTest {
                             assertEquals(err, e.getValue(), res.get(e.getKey()));
                     }
 
-                    if (cache.getConfiguration(CacheConfiguration.class).getAtomicityMode() == TRANSACTIONAL) {
+                    if (atomicityMode(cache) == TRANSACTIONAL) {
                         for (TransactionConcurrency concurrency : TransactionConcurrency.values()) {
                             for (TransactionIsolation isolation : TransactionIsolation.values())
                                 checkNodeCaches(err, node, cache, concurrency, isolation);

http://git-wip-us.apache.org/repos/asf/ignite/blob/5a856aca/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/IgnitePdsCacheStartStopWithFreqCheckpointTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/IgnitePdsCacheStartStopWithFreqCheckpointTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/IgnitePdsCacheStartStopWithFreqCheckpointTest.java
index 9cae83f..f58e110 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/IgnitePdsCacheStartStopWithFreqCheckpointTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/IgnitePdsCacheStartStopWithFreqCheckpointTest.java
@@ -24,6 +24,7 @@ import java.util.concurrent.atomic.AtomicBoolean;
 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.CacheMode;
 import org.apache.ignite.cache.CacheRebalanceMode;
 import org.apache.ignite.configuration.CacheConfiguration;
@@ -83,6 +84,7 @@ public class IgnitePdsCacheStartStopWithFreqCheckpointTest extends GridCommonAbs
     /** {@inheritDoc} */
     private CacheConfiguration cacheConfiguration(int cacheIdx) {
         return new CacheConfiguration(CACHE_NAME + cacheIdx)
+            .setAtomicityMode(CacheAtomicityMode.TRANSACTIONAL)
             .setCacheMode(CacheMode.REPLICATED)
             .setBackups(0)
             .setRebalanceMode(CacheRebalanceMode.NONE);

http://git-wip-us.apache.org/repos/asf/ignite/blob/5a856aca/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/IgnitePdsPartitionFilesDestroyTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/IgnitePdsPartitionFilesDestroyTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/IgnitePdsPartitionFilesDestroyTest.java
index 1d1a03f..a2a4b0b 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/IgnitePdsPartitionFilesDestroyTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/IgnitePdsPartitionFilesDestroyTest.java
@@ -43,6 +43,7 @@ import org.apache.ignite.internal.processors.cache.persistence.file.FileIOFactor
 import org.apache.ignite.internal.processors.cache.persistence.file.RandomAccessFileIOFactory;
 import org.apache.ignite.internal.util.typedef.G;
 import org.apache.ignite.internal.util.typedef.internal.U;
+import org.apache.ignite.testframework.MvccFeatureChecker;
 import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
 import org.junit.Assert;
 import org.junit.Test;
@@ -56,9 +57,6 @@ import static org.apache.ignite.internal.processors.cache.persistence.file.FileP
  */
 @RunWith(JUnit4.class)
 public class IgnitePdsPartitionFilesDestroyTest extends GridCommonAbstractTest {
-    /** Cache name. */
-    private static final String CACHE = "cache";
-
     /** Partitions count. */
     private static final int PARTS_CNT = 32;
 
@@ -85,7 +83,7 @@ public class IgnitePdsPartitionFilesDestroyTest extends GridCommonAbstractTest {
 
         cfg.setDataStorageConfiguration(dsCfg);
 
-        CacheConfiguration<Object, Object> ccfg = new CacheConfiguration<>(CACHE)
+        CacheConfiguration ccfg = defaultCacheConfiguration()
             .setBackups(1)
             .setWriteSynchronizationMode(CacheWriteSynchronizationMode.FULL_SYNC)
             .setAffinity(new RendezvousAffinityFunction(false, PARTS_CNT));
@@ -97,6 +95,9 @@ public class IgnitePdsPartitionFilesDestroyTest extends GridCommonAbstractTest {
 
     /** {@inheritDoc} */
     @Override protected void beforeTest() throws Exception {
+        if (MvccFeatureChecker.forcedMvcc())
+            fail("https://issues.apache.org/jira/browse/IGNITE-10421");
+
         stopAllGrids();
 
         cleanPersistenceDir();
@@ -123,7 +124,7 @@ public class IgnitePdsPartitionFilesDestroyTest extends GridCommonAbstractTest {
     private void loadData(IgniteEx ignite, int keysCnt, int multiplier) {
         log.info("Load data: keys=" + keysCnt);
 
-        try (IgniteDataStreamer streamer = ignite.dataStreamer(CACHE)) {
+        try (IgniteDataStreamer streamer = ignite.dataStreamer(DEFAULT_CACHE_NAME)) {
             streamer.allowOverwrite(true);
 
             for (int k = 0; k < keysCnt; k++)
@@ -138,7 +139,7 @@ public class IgnitePdsPartitionFilesDestroyTest extends GridCommonAbstractTest {
     private void checkData(IgniteEx ignite, int keysCnt, int multiplier) {
         log.info("Check data: " + ignite.name() + ", keys=" + keysCnt);
 
-        IgniteCache<Integer, Integer> cache = ignite.cache(CACHE);
+        IgniteCache<Integer, Integer> cache = ignite.cache(DEFAULT_CACHE_NAME);
 
         for (int k = 0; k < keysCnt; k++)
             Assert.assertEquals("node = " + ignite.name() + ", key = " + k, (Integer) (k * multiplier), cache.get(k));
@@ -355,7 +356,7 @@ public class IgnitePdsPartitionFilesDestroyTest extends GridCommonAbstractTest {
         forceCheckpoint();
 
         // Evict arbitrary partition.
-        List<GridDhtLocalPartition> parts = crd.cachex(CACHE).context().topology().localPartitions();
+        List<GridDhtLocalPartition> parts = crd.cachex(DEFAULT_CACHE_NAME).context().topology().localPartitions();
         for (GridDhtLocalPartition part : parts)
             if (part.state() != GridDhtPartitionState.EVICTED) {
                 part.rent(false).get();
@@ -384,12 +385,12 @@ public class IgnitePdsPartitionFilesDestroyTest extends GridCommonAbstractTest {
     private void checkPartitionFiles(IgniteEx ignite, boolean exists) throws IgniteCheckedException {
         int evicted = 0;
 
-        GridDhtPartitionTopology top = ignite.cachex(CACHE).context().topology();
+        GridDhtPartitionTopology top = ignite.cachex(DEFAULT_CACHE_NAME).context().topology();
 
         for (int p = 0; p < PARTS_CNT; p++) {
             GridDhtLocalPartition part = top.localPartition(p);
 
-            File partFile = partitionFile(ignite, CACHE, p);
+            File partFile = partitionFile(ignite, DEFAULT_CACHE_NAME, p);
 
             if (exists) {
                 if (part != null && part.state() == GridDhtPartitionState.EVICTED)

http://git-wip-us.apache.org/repos/asf/ignite/blob/5a856aca/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/IgnitePdsPartitionsStateRecoveryTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/IgnitePdsPartitionsStateRecoveryTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/IgnitePdsPartitionsStateRecoveryTest.java
index 2eafdc1..9e4398a 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/IgnitePdsPartitionsStateRecoveryTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/IgnitePdsPartitionsStateRecoveryTest.java
@@ -29,6 +29,7 @@ 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.topology.GridDhtPartitionTopology;
+import org.apache.ignite.testframework.MvccFeatureChecker;
 import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
 import org.junit.Assert;
 import org.junit.Test;
@@ -40,9 +41,6 @@ import org.junit.runners.JUnit4;
  */
 @RunWith(JUnit4.class)
 public class IgnitePdsPartitionsStateRecoveryTest extends GridCommonAbstractTest {
-    /** Cache name. */
-    private static final String CACHE = "cache";
-
     /** Partitions count. */
     private static final int PARTS_CNT = 32;
 
@@ -64,7 +62,7 @@ public class IgnitePdsPartitionsStateRecoveryTest extends GridCommonAbstractTest
 
         cfg.setDataStorageConfiguration(dsCfg);
 
-        CacheConfiguration<Object, Object> ccfg = new CacheConfiguration<>(CACHE)
+        CacheConfiguration ccfg = defaultCacheConfiguration()
             .setBackups(0)
             .setRebalanceMode(CacheRebalanceMode.NONE) // Disable rebalance to prevent owning MOVING partitions.
             .setWriteSynchronizationMode(CacheWriteSynchronizationMode.FULL_SYNC)
@@ -104,7 +102,7 @@ public class IgnitePdsPartitionsStateRecoveryTest extends GridCommonAbstractTest
 
         ignite.cluster().active(true);
 
-        IgniteCache<Object, Object> cache = ignite.getOrCreateCache(CACHE);
+        IgniteCache<Object, Object> cache = ignite.cache(DEFAULT_CACHE_NAME);
 
         for (int key = 0; key < 4096; key++)
             cache.put(key, key);
@@ -118,7 +116,7 @@ public class IgnitePdsPartitionsStateRecoveryTest extends GridCommonAbstractTest
             cache.put(key, payload);
         }
 
-        GridDhtPartitionTopology topology = ignite.cachex(CACHE).context().topology();
+        GridDhtPartitionTopology topology = ignite.cachex(DEFAULT_CACHE_NAME).context().topology();
 
         Assert.assertFalse(topology.hasMovingPartitions());
 
@@ -130,7 +128,7 @@ public class IgnitePdsPartitionsStateRecoveryTest extends GridCommonAbstractTest
 
         awaitPartitionMapExchange();
 
-        topology = ignite.cachex(CACHE).context().topology();
+        topology = ignite.cachex(DEFAULT_CACHE_NAME).context().topology();
 
         Assert.assertFalse("Node restored moving partitions after join to topology.", topology.hasMovingPartitions());
     }
@@ -142,11 +140,14 @@ public class IgnitePdsPartitionsStateRecoveryTest extends GridCommonAbstractTest
      */
     @Test
     public void testPartitionsStateConsistencyAfterRecoveryNoCheckpoints() throws Exception {
+        if (MvccFeatureChecker.forcedMvcc())
+            fail("https://issues.apache.org/jira/browse/IGNITE-10603");
+
         IgniteEx ignite = startGrid(0);
 
         ignite.cluster().active(true);
 
-        IgniteCache<Object, Object> cache = ignite.getOrCreateCache(CACHE);
+        IgniteCache<Object, Object> cache = ignite.cache(DEFAULT_CACHE_NAME);
 
         forceCheckpoint();
 
@@ -157,7 +158,7 @@ public class IgnitePdsPartitionsStateRecoveryTest extends GridCommonAbstractTest
             cache.put(key, payload);
         }
 
-        GridDhtPartitionTopology topology = ignite.cachex(CACHE).context().topology();
+        GridDhtPartitionTopology topology = ignite.cachex(DEFAULT_CACHE_NAME).context().topology();
 
         Assert.assertFalse(topology.hasMovingPartitions());
 
@@ -169,7 +170,7 @@ public class IgnitePdsPartitionsStateRecoveryTest extends GridCommonAbstractTest
 
         awaitPartitionMapExchange();
 
-        topology = ignite.cachex(CACHE).context().topology();
+        topology = ignite.cachex(DEFAULT_CACHE_NAME).context().topology();
 
         Assert.assertFalse("Node restored moving partitions after join to topology.", topology.hasMovingPartitions());
     }

http://git-wip-us.apache.org/repos/asf/ignite/blob/5a856aca/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/IgniteRebalanceScheduleResendPartitionsTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/IgniteRebalanceScheduleResendPartitionsTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/IgniteRebalanceScheduleResendPartitionsTest.java
index 4966da4..df79ce7 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/IgniteRebalanceScheduleResendPartitionsTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/IgniteRebalanceScheduleResendPartitionsTest.java
@@ -27,6 +27,7 @@ import org.apache.ignite.IgniteCache;
 import org.apache.ignite.IgniteDataStreamer;
 import org.apache.ignite.IgniteException;
 import org.apache.ignite.IgniteLogger;
+import org.apache.ignite.cache.CacheAtomicityMode;
 import org.apache.ignite.cache.affinity.rendezvous.RendezvousAffinityFunction;
 import org.apache.ignite.cluster.ClusterNode;
 import org.apache.ignite.configuration.CacheConfiguration;
@@ -46,6 +47,7 @@ import org.apache.ignite.spi.IgniteSpiException;
 import org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi;
 import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
 import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder;
+import org.apache.ignite.testframework.MvccFeatureChecker;
 import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
 import org.junit.Assert;
 import org.junit.Test;
@@ -83,8 +85,8 @@ public class IgniteRebalanceScheduleResendPartitionsTest extends GridCommonAbstr
 
         cfg.setCacheConfiguration(
             new CacheConfiguration(DEFAULT_CACHE_NAME)
-                .setAffinity(
-                    new RendezvousAffinityFunction(false, 32))
+                .setAtomicityMode(CacheAtomicityMode.TRANSACTIONAL)
+                .setAffinity(new RendezvousAffinityFunction(false, 32))
                 .setBackups(1)
         );
 
@@ -116,6 +118,9 @@ public class IgniteRebalanceScheduleResendPartitionsTest extends GridCommonAbstr
      */
     @Test
     public void test() throws Exception {
+        if (MvccFeatureChecker.forcedMvcc())
+            fail("https://issues.apache.org/jira/browse/IGNITE-10421");
+
         Ignite ig0 = startGrids(3);
 
         ig0.cluster().active(true);

http://git-wip-us.apache.org/repos/asf/ignite/blob/5a856aca/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/LocalWacModeNoChangeDuringRebalanceOnNonNodeAssignTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/LocalWacModeNoChangeDuringRebalanceOnNonNodeAssignTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/LocalWacModeNoChangeDuringRebalanceOnNonNodeAssignTest.java
deleted file mode 100644
index 5b28833..0000000
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/LocalWacModeNoChangeDuringRebalanceOnNonNodeAssignTest.java
+++ /dev/null
@@ -1,175 +0,0 @@
-/*
- * 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;
-
-import org.apache.ignite.Ignite;
-import org.apache.ignite.IgniteCheckedException;
-import org.apache.ignite.IgniteDataStreamer;
-import org.apache.ignite.cache.affinity.rendezvous.RendezvousAffinityFunction;
-import org.apache.ignite.configuration.CacheConfiguration;
-import org.apache.ignite.configuration.DataRegionConfiguration;
-import org.apache.ignite.configuration.DataStorageConfiguration;
-import org.apache.ignite.configuration.IgniteConfiguration;
-import org.apache.ignite.internal.IgniteEx;
-import org.apache.ignite.internal.pagemem.wal.WALIterator;
-import org.apache.ignite.internal.pagemem.wal.WALPointer;
-import org.apache.ignite.internal.pagemem.wal.record.MetastoreDataRecord;
-import org.apache.ignite.internal.pagemem.wal.record.WALRecord;
-import org.apache.ignite.internal.processors.cache.persistence.wal.reader.IgniteWalIteratorFactory;
-import org.apache.ignite.internal.util.typedef.internal.U;
-import org.apache.ignite.lang.IgniteBiTuple;
-import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
-import org.apache.ignite.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder;
-import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder;
-import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.JUnit4;
-
-import static java.lang.String.valueOf;
-import static org.apache.ignite.IgniteSystemProperties.IGNITE_DISABLE_WAL_DURING_REBALANCING;
-import static org.apache.ignite.internal.pagemem.wal.record.WALRecord.RecordType.METASTORE_DATA_RECORD;
-import static org.apache.ignite.internal.processors.cache.GridCacheUtils.cacheId;
-import static org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.DFLT_STORE_DIR;
-
-/**
- *
- */
-@RunWith(JUnit4.class)
-public class LocalWacModeNoChangeDuringRebalanceOnNonNodeAssignTest extends GridCommonAbstractTest {
-
-    /** */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
-
-    /** */
-    private final int NODES = 3;
-
-    /** {@inheritDoc} */
-    @Override protected IgniteConfiguration getConfiguration(String name) throws Exception {
-        IgniteConfiguration cfg = super.getConfiguration(name);
-
-        cfg.setConsistentId(name);
-
-        cfg.setDiscoverySpi(new TcpDiscoverySpi().setIpFinder(IP_FINDER));
-
-        cfg.setDataStorageConfiguration(
-            new DataStorageConfiguration()
-                .setWalPath(walPath(name))
-                .setWalArchivePath(walArchivePath(name))
-                .setDefaultDataRegionConfiguration(
-                    new DataRegionConfiguration()
-                        .setMaxSize(DataStorageConfiguration.DFLT_DATA_REGION_INITIAL_SIZE)
-                        .setPersistenceEnabled(true)
-                )
-        );
-
-        cfg.setCacheConfiguration(
-            new CacheConfiguration(DEFAULT_CACHE_NAME)
-                .setAffinity(
-                    new RendezvousAffinityFunction(false, 3))
-        );
-
-        return cfg;
-    }
-
-    /** {@inheritDoc} */
-    @Override protected void beforeTest() throws Exception {
-        super.beforeTest();
-
-        cleanPersistenceDir();
-
-        System.setProperty(IGNITE_DISABLE_WAL_DURING_REBALANCING, "true");
-    }
-
-    /** {@inheritDoc} */
-    @Override protected void afterTest() throws Exception {
-        super.afterTest();
-
-        System.clearProperty(IGNITE_DISABLE_WAL_DURING_REBALANCING);
-    }
-
-    /**
-     * @throws Exception If failed.
-     */
-    @Test
-    public void test() throws Exception {
-        Ignite ig = startGrids(NODES);
-
-        ig.cluster().active(true);
-
-        int entries = 100_000;
-
-        try (IgniteDataStreamer<Integer, Integer> st = ig.dataStreamer(DEFAULT_CACHE_NAME)) {
-            st.allowOverwrite(true);
-
-            for (int i = 0; i < entries; i++)
-                st.addData(i, -i);
-        }
-
-        IgniteEx ig4 = startGrid(NODES);
-
-        ig4.cluster().setBaselineTopology(ig4.context().discovery().topologyVersion());
-
-        IgniteWalIteratorFactory iteratorFactory = new IgniteWalIteratorFactory(log);
-
-        String name = ig4.name();
-
-        try (WALIterator it = iteratorFactory.iterator(walPath(name), walArchivePath(name))) {
-            while (it.hasNext()) {
-                IgniteBiTuple<WALPointer, WALRecord> tup = it.next();
-
-                WALRecord rec = tup.get2();
-
-                if (rec.type() == METASTORE_DATA_RECORD) {
-                    MetastoreDataRecord metastoreDataRecord = (MetastoreDataRecord)rec;
-
-                    String key = metastoreDataRecord.key();
-
-                    if (key.startsWith("grp-wal-") &&
-                        key.contains(valueOf(cacheId(DEFAULT_CACHE_NAME))) &&
-                        metastoreDataRecord.value() != null)
-                        fail("WAL was disabled but should not.");
-                }
-            }
-        }
-    }
-
-    /**
-     *
-     * @param nodeName Node name.
-     * @return Path to WAL work directory.
-     * @throws IgniteCheckedException If failed.
-     */
-    private String walPath(String nodeName) throws IgniteCheckedException {
-        String workDir = U.defaultWorkDirectory();
-
-        return workDir + "/" + DFLT_STORE_DIR + "/" + nodeName + "/wal";
-    }
-
-    /**
-     *
-     * @param nodeName Node name.
-     * @return Path to WAL archive directory.
-     * @throws IgniteCheckedException If failed.
-     */
-    private String walArchivePath(String nodeName) throws IgniteCheckedException {
-        String workDir = U.defaultWorkDirectory();
-
-        return workDir + "/" + DFLT_STORE_DIR + "/" + nodeName + "/walArchive";
-    }
-}

http://git-wip-us.apache.org/repos/asf/ignite/blob/5a856aca/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/LocalWalModeChangeDuringRebalancingSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/LocalWalModeChangeDuringRebalancingSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/LocalWalModeChangeDuringRebalancingSelfTest.java
index 094c678..e2b9975 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/LocalWalModeChangeDuringRebalancingSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/LocalWalModeChangeDuringRebalancingSelfTest.java
@@ -30,6 +30,7 @@ import org.apache.ignite.IgniteCache;
 import org.apache.ignite.IgniteCheckedException;
 import org.apache.ignite.IgniteException;
 import org.apache.ignite.IgniteSystemProperties;
+import org.apache.ignite.cache.CacheAtomicityMode;
 import org.apache.ignite.cache.CacheMode;
 import org.apache.ignite.cluster.ClusterNode;
 import org.apache.ignite.configuration.CacheConfiguration;
@@ -53,6 +54,7 @@ import org.apache.ignite.plugin.extensions.communication.Message;
 import org.apache.ignite.spi.IgniteSpiException;
 import org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi;
 import org.apache.ignite.testframework.GridTestUtils;
+import org.apache.ignite.testframework.MvccFeatureChecker;
 import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
 import org.junit.Assert;
 import org.junit.Test;
@@ -103,11 +105,13 @@ public class LocalWalModeChangeDuringRebalancingSelfTest extends GridCommonAbstr
 
         cfg.setCacheConfiguration(
             new CacheConfiguration(DEFAULT_CACHE_NAME)
+                .setAtomicityMode(CacheAtomicityMode.TRANSACTIONAL)
                 // Test checks internal state before and after rebalance, so it is configured to be triggered manually
                 .setRebalanceDelay(-1)
                 .setBackups(dfltCacheBackupCnt),
 
             new CacheConfiguration(REPL_CACHE)
+                .setAtomicityMode(CacheAtomicityMode.TRANSACTIONAL)
                 .setRebalanceDelay(-1)
                 .setCacheMode(CacheMode.REPLICATED)
         );
@@ -225,6 +229,9 @@ public class LocalWalModeChangeDuringRebalancingSelfTest extends GridCommonAbstr
      */
     @Test
     public void testWalDisabledDuringRebalancing() throws Exception {
+        if (MvccFeatureChecker.forcedMvcc())
+            fail("https://issues.apache.org/jira/browse/IGNITE-10421");
+
         doTestSimple();
     }
 
@@ -233,6 +240,9 @@ public class LocalWalModeChangeDuringRebalancingSelfTest extends GridCommonAbstr
      */
     @Test
     public void testWalNotDisabledIfParameterSetToFalse() throws Exception {
+        if (MvccFeatureChecker.forcedMvcc())
+            fail("https://issues.apache.org/jira/browse/IGNITE-10421");
+
         disableWalDuringRebalancing = false;
 
         doTestSimple();
@@ -372,6 +382,9 @@ public class LocalWalModeChangeDuringRebalancingSelfTest extends GridCommonAbstr
      */
     @Test
     public void testLocalAndGlobalWalStateInterdependence() throws Exception {
+        if (MvccFeatureChecker.forcedMvcc())
+            fail("https://issues.apache.org/jira/browse/IGNITE-10421");
+
         Ignite ignite = startGrids(3);
 
         ignite.cluster().active(true);
@@ -466,6 +479,9 @@ public class LocalWalModeChangeDuringRebalancingSelfTest extends GridCommonAbstr
      */
     @Test
     public void testParallelExchangeDuringRebalance() throws Exception {
+        if (MvccFeatureChecker.forcedMvcc())
+            fail("https://issues.apache.org/jira/browse/IGNITE-10421");
+
         doTestParallelExchange(supplyMessageLatch);
     }
 
@@ -474,6 +490,9 @@ public class LocalWalModeChangeDuringRebalancingSelfTest extends GridCommonAbstr
      */
     @Test
     public void testParallelExchangeDuringCheckpoint() throws Exception {
+        if (MvccFeatureChecker.forcedMvcc())
+            fail("https://issues.apache.org/jira/browse/IGNITE-10421");
+
         doTestParallelExchange(fileIOLatch);
     }
 
@@ -530,6 +549,9 @@ public class LocalWalModeChangeDuringRebalancingSelfTest extends GridCommonAbstr
      */
     @Test
     public void testDataClearedAfterRestartWithDisabledWal() throws Exception {
+        if (MvccFeatureChecker.forcedMvcc())
+            fail("https://issues.apache.org/jira/browse/IGNITE-10421");
+
         Ignite ignite = startGrid(0);
 
         ignite.cluster().active(true);
@@ -638,7 +660,12 @@ public class LocalWalModeChangeDuringRebalancingSelfTest extends GridCommonAbstr
             ThreadLocalRandom rnd = ThreadLocalRandom.current();
 
             do {
-                cache.put(rnd.nextInt(keysCnt), rnd.nextInt());
+                try {
+                    cache.put(rnd.nextInt(keysCnt), rnd.nextInt());
+                }
+                catch (Exception ex) {
+                    MvccFeatureChecker.assertMvccWriteConflict(ex);
+                }
             }
             while (U.currentTimeMillis() < stopTs);
         }, threadCnt, "load-cache");

http://git-wip-us.apache.org/repos/asf/ignite/blob/5a856aca/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/LocalWalModeNoChangeDuringRebalanceOnNonNodeAssignTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/LocalWalModeNoChangeDuringRebalanceOnNonNodeAssignTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/LocalWalModeNoChangeDuringRebalanceOnNonNodeAssignTest.java
new file mode 100644
index 0000000..274deac
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/LocalWalModeNoChangeDuringRebalanceOnNonNodeAssignTest.java
@@ -0,0 +1,211 @@
+/*
+ * 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;
+
+import org.apache.ignite.Ignite;
+import org.apache.ignite.IgniteCheckedException;
+import org.apache.ignite.IgniteDataStreamer;
+import org.apache.ignite.cache.CacheAtomicityMode;
+import org.apache.ignite.cache.affinity.rendezvous.RendezvousAffinityFunction;
+import org.apache.ignite.configuration.CacheConfiguration;
+import org.apache.ignite.configuration.DataRegionConfiguration;
+import org.apache.ignite.configuration.DataStorageConfiguration;
+import org.apache.ignite.configuration.IgniteConfiguration;
+import org.apache.ignite.internal.IgniteEx;
+import org.apache.ignite.internal.pagemem.wal.WALIterator;
+import org.apache.ignite.internal.pagemem.wal.WALPointer;
+import org.apache.ignite.internal.pagemem.wal.record.MetastoreDataRecord;
+import org.apache.ignite.internal.pagemem.wal.record.WALRecord;
+import org.apache.ignite.internal.processors.cache.persistence.wal.reader.IgniteWalIteratorFactory;
+import org.apache.ignite.internal.util.typedef.internal.U;
+import org.apache.ignite.lang.IgniteBiTuple;
+import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder;
+import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
+import org.junit.Ignore;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
+
+import static java.lang.String.valueOf;
+import static org.apache.ignite.IgniteSystemProperties.IGNITE_DISABLE_WAL_DURING_REBALANCING;
+import static org.apache.ignite.internal.pagemem.wal.record.WALRecord.RecordType.METASTORE_DATA_RECORD;
+import static org.apache.ignite.internal.processors.cache.GridCacheUtils.cacheId;
+import static org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.DFLT_STORE_DIR;
+
+/**
+ *
+ */
+@RunWith(JUnit4.class)
+public class LocalWalModeNoChangeDuringRebalanceOnNonNodeAssignTest extends GridCommonAbstractTest {
+    /** */
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
+
+    /** */
+    private final int NODES = 3;
+
+    /** */
+    private CacheAtomicityMode atomicityMode;
+
+    /** {@inheritDoc} */
+    @Override protected IgniteConfiguration getConfiguration(String name) throws Exception {
+        IgniteConfiguration cfg = super.getConfiguration(name);
+
+        cfg.setConsistentId(name);
+
+        cfg.setDiscoverySpi(new TcpDiscoverySpi().setIpFinder(IP_FINDER));
+
+        cfg.setDataStorageConfiguration(
+            new DataStorageConfiguration()
+                .setWalPath(walPath(name))
+                .setWalArchivePath(walArchivePath(name))
+                .setDefaultDataRegionConfiguration(
+                    new DataRegionConfiguration()
+                        .setMaxSize(DataStorageConfiguration.DFLT_DATA_REGION_INITIAL_SIZE)
+                        .setPersistenceEnabled(true)
+                )
+        );
+
+        cfg.setCacheConfiguration(
+            new CacheConfiguration(DEFAULT_CACHE_NAME)
+                .setAtomicityMode(atomicityMode)
+                .setAffinity(new RendezvousAffinityFunction(false, 3))
+        );
+
+        return cfg;
+    }
+
+    /** {@inheritDoc} */
+    @Override protected void beforeTest() throws Exception {
+        super.beforeTest();
+
+        cleanPersistenceDir();
+
+        System.setProperty(IGNITE_DISABLE_WAL_DURING_REBALANCING, "true");
+    }
+
+    /** {@inheritDoc} */
+    @Override protected void afterTest() throws Exception {
+        super.afterTest();
+
+        System.clearProperty(IGNITE_DISABLE_WAL_DURING_REBALANCING);
+
+        stopAllGrids();
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    @Ignore("https://issues.apache.org/jira/browse/IGNITE-10652")
+    @Test
+    public void testAtomic() throws Exception {
+        atomicityMode = CacheAtomicityMode.ATOMIC;
+
+        check();
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    @Ignore("https://issues.apache.org/jira/browse/IGNITE-10652")
+    @Test
+    public void testTx() throws Exception {
+        atomicityMode = CacheAtomicityMode.TRANSACTIONAL;
+
+        check();
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    @Ignore("https://issues.apache.org/jira/browse/IGNITE-10421")
+    @Test
+    public void testMvcc() throws Exception {
+        atomicityMode = CacheAtomicityMode.TRANSACTIONAL_SNAPSHOT;
+
+        check();
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    public void check() throws Exception {
+        Ignite ig = startGridsMultiThreaded(NODES);
+
+        int entries = 100_000;
+
+        try (IgniteDataStreamer<Integer, Integer> st = ig.dataStreamer(DEFAULT_CACHE_NAME)) {
+            st.allowOverwrite(true);
+
+            for (int i = 0; i < entries; i++)
+                st.addData(i, -i);
+        }
+
+        IgniteEx ig4 = startGrid(NODES);
+
+        ig4.cluster().setBaselineTopology(ig4.context().discovery().topologyVersion());
+
+        IgniteWalIteratorFactory iteratorFactory = new IgniteWalIteratorFactory(log);
+
+        String name = ig4.name();
+
+        try (WALIterator it = iteratorFactory.iterator(walPath(name), walArchivePath(name))) {
+            while (it.hasNext()) {
+                IgniteBiTuple<WALPointer, WALRecord> tup = it.next();
+
+                WALRecord rec = tup.get2();
+
+                if (rec.type() == METASTORE_DATA_RECORD) {
+                    MetastoreDataRecord metastoreDataRecord = (MetastoreDataRecord)rec;
+
+                    String key = metastoreDataRecord.key();
+
+                    if (key.startsWith("grp-wal-") &&
+                        key.contains(valueOf(cacheId(DEFAULT_CACHE_NAME))) &&
+                        metastoreDataRecord.value() != null)
+                        fail("WAL was disabled but should not.");
+                }
+            }
+        }
+    }
+
+    /**
+     *
+     * @param nodeName Node name.
+     * @return Path to WAL work directory.
+     * @throws IgniteCheckedException If failed.
+     */
+    private String walPath(String nodeName) throws IgniteCheckedException {
+        String workDir = U.defaultWorkDirectory();
+
+        return workDir + "/" + DFLT_STORE_DIR + "/" + nodeName + "/wal";
+    }
+
+    /**
+     *
+     * @param nodeName Node name.
+     * @return Path to WAL archive directory.
+     * @throws IgniteCheckedException If failed.
+     */
+    private String walArchivePath(String nodeName) throws IgniteCheckedException {
+        String workDir = U.defaultWorkDirectory();
+
+        return workDir + "/" + DFLT_STORE_DIR + "/" + nodeName + "/walArchive";
+    }
+}

http://git-wip-us.apache.org/repos/asf/ignite/blob/5a856aca/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/baseline/ClientAffinityAssignmentWithBaselineTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/baseline/ClientAffinityAssignmentWithBaselineTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/baseline/ClientAffinityAssignmentWithBaselineTest.java
index a404adf..4185361 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/baseline/ClientAffinityAssignmentWithBaselineTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/baseline/ClientAffinityAssignmentWithBaselineTest.java
@@ -49,6 +49,7 @@ import org.apache.ignite.internal.IgniteNodeAttributes;
 import org.apache.ignite.internal.util.typedef.internal.U;
 import org.apache.ignite.lang.IgnitePredicate;
 import org.apache.ignite.testframework.GridTestUtils;
+import org.apache.ignite.testframework.MvccFeatureChecker;
 import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
 import org.apache.ignite.transactions.Transaction;
 import org.apache.ignite.transactions.TransactionConcurrency;
@@ -160,6 +161,9 @@ public class ClientAffinityAssignmentWithBaselineTest extends GridCommonAbstract
 
     /** {@inheritDoc} */
     @Override protected void beforeTest() throws Exception {
+        if (MvccFeatureChecker.forcedMvcc())
+            fail("https://issues.apache.org/jira/browse/IGNITE-10261");
+
         stopAllGrids();
 
         cleanPersistenceDir();
@@ -798,7 +802,7 @@ public class ClientAffinityAssignmentWithBaselineTest extends GridCommonAbstract
 
                 IgniteCache<Integer, String> cache = ig.cache(cacheName).withAllowAtomicOpsInTx();
 
-                boolean pessimistic = r.nextBoolean();
+                boolean pessimistic = atomicityMode(cache) == CacheAtomicityMode.TRANSACTIONAL_SNAPSHOT || r.nextBoolean();
 
                 boolean rollback = r.nextBoolean();
 
@@ -874,7 +878,8 @@ public class ClientAffinityAssignmentWithBaselineTest extends GridCommonAbstract
                 IgniteCache<Integer, String> cache1 = ig.cache(cacheName1);
                 IgniteCache<Integer, String> cache2 = ig.cache(cacheName2);
 
-                boolean pessimistic = r.nextBoolean();
+                boolean pessimistic = atomicityMode(cache1) == CacheAtomicityMode.TRANSACTIONAL_SNAPSHOT ||
+                    atomicityMode(cache2) == CacheAtomicityMode.TRANSACTIONAL_SNAPSHOT || r.nextBoolean();
 
                 boolean rollback = r.nextBoolean();
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/5a856aca/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/IgnitePdsRebalancingOnNotStableTopologyTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/IgnitePdsRebalancingOnNotStableTopologyTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/IgnitePdsRebalancingOnNotStableTopologyTest.java
index 4fd2b79..0798bcb 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/IgnitePdsRebalancingOnNotStableTopologyTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/IgnitePdsRebalancingOnNotStableTopologyTest.java
@@ -33,6 +33,7 @@ import org.apache.ignite.configuration.DataStorageConfiguration;
 import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.configuration.WALMode;
 import org.apache.ignite.internal.util.typedef.internal.U;
+import org.apache.ignite.testframework.MvccFeatureChecker;
 import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
 import org.apache.ignite.testframework.junits.multijvm.IgniteProcessProxy;
 import org.junit.Test;
@@ -53,14 +54,14 @@ public class IgnitePdsRebalancingOnNotStableTopologyTest extends GridCommonAbstr
     /** Cluster size. */
     private static final int CLUSTER_SIZE = 5;
 
-    /** */
-    private static final String CACHE_NAME = "cache1";
-
     /**
      * @throws Exception When fails.
      */
     @Test
     public void test() throws Exception {
+        if (MvccFeatureChecker.forcedMvcc())
+            fail("https://issues.apache.org/jira/browse/IGNITE-10421");
+
         Ignite ex = startGrid(0);
 
         ex.active(true);
@@ -84,7 +85,7 @@ public class IgnitePdsRebalancingOnNotStableTopologyTest extends GridCommonAbstr
 
                     startLatch.countDown();
 
-                    IgniteCache<Object, Object> cache1 = ex1.cache(CACHE_NAME);
+                    IgniteCache<Object, Object> cache1 = ex1.cache(DEFAULT_CACHE_NAME);
 
                     int key = keyCnt.get();
 
@@ -144,7 +145,7 @@ public class IgnitePdsRebalancingOnNotStableTopologyTest extends GridCommonAbstr
 
         checkTopology(CLUSTER_SIZE);
 
-        IgniteCache<Object, Object> cache1 = ex.cache(CACHE_NAME);
+        IgniteCache<Object, Object> cache1 = ex.cache(DEFAULT_CACHE_NAME);
 
         assert keyCnt.get() > 0;
 
@@ -160,7 +161,7 @@ public class IgnitePdsRebalancingOnNotStableTopologyTest extends GridCommonAbstr
 
         cfg.setActiveOnStart(false);
 
-        CacheConfiguration<Integer, Integer> ccfg = new CacheConfiguration<>(CACHE_NAME);
+        CacheConfiguration ccfg = defaultCacheConfiguration();
 
         ccfg.setPartitionLossPolicy(PartitionLossPolicy.READ_ONLY_SAFE);
         ccfg.setWriteSynchronizationMode(CacheWriteSynchronizationMode.FULL_SYNC);

http://git-wip-us.apache.org/repos/asf/ignite/blob/5a856aca/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/IgnitePdsWholeClusterRestartTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/IgnitePdsWholeClusterRestartTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/IgnitePdsWholeClusterRestartTest.java
index 919888af..8fef389 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/IgnitePdsWholeClusterRestartTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/IgnitePdsWholeClusterRestartTest.java
@@ -48,9 +48,6 @@ public class IgnitePdsWholeClusterRestartTest extends GridCommonAbstractTest {
     /** */
     private static final int ENTRIES_COUNT = 1_000;
 
-    /** */
-    public static final String CACHE_NAME = "cache1";
-
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(gridName);
@@ -62,9 +59,8 @@ public class IgnitePdsWholeClusterRestartTest extends GridCommonAbstractTest {
 
         cfg.setDataStorageConfiguration(memCfg);
 
-        CacheConfiguration ccfg1 = new CacheConfiguration();
+        CacheConfiguration ccfg1 = defaultCacheConfiguration();
 
-        ccfg1.setName(CACHE_NAME);
         ccfg1.setAtomicityMode(CacheAtomicityMode.TRANSACTIONAL);
         ccfg1.setRebalanceMode(CacheRebalanceMode.SYNC);
         ccfg1.setWriteSynchronizationMode(CacheWriteSynchronizationMode.FULL_SYNC);
@@ -108,7 +104,7 @@ public class IgnitePdsWholeClusterRestartTest extends GridCommonAbstractTest {
 
         awaitPartitionMapExchange();
 
-        try (IgniteDataStreamer<Object, Object> ds = ignite(0).dataStreamer(CACHE_NAME)) {
+        try (IgniteDataStreamer<Object, Object> ds = ignite(0).dataStreamer(DEFAULT_CACHE_NAME)) {
             for (int i = 0; i < ENTRIES_COUNT; i++)
                 ds.addData(i, i);
         }
@@ -135,9 +131,9 @@ public class IgnitePdsWholeClusterRestartTest extends GridCommonAbstractTest {
                     Ignite ig = ignite(g);
 
                     for (int k = 0; k < ENTRIES_COUNT; k++)
-                        assertEquals("Failed to read [g=" + g + ", part=" + ig.affinity(CACHE_NAME).partition(k) +
-                            ", nodes=" + ig.affinity(CACHE_NAME).mapKeyToPrimaryAndBackups(k) + ']',
-                            k, ig.cache(CACHE_NAME).get(k));
+                        assertEquals("Failed to read [g=" + g + ", part=" + ig.affinity(DEFAULT_CACHE_NAME).partition(k) +
+                            ", nodes=" + ig.affinity(DEFAULT_CACHE_NAME).mapKeyToPrimaryAndBackups(k) + ']',
+                            k, ig.cache(DEFAULT_CACHE_NAME).get(k));
                 }
             }
             finally {

http://git-wip-us.apache.org/repos/asf/ignite/blob/5a856aca/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/SlowHistoricalRebalanceSmallHistoryTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/SlowHistoricalRebalanceSmallHistoryTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/SlowHistoricalRebalanceSmallHistoryTest.java
index 744b532..073c0c9 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/SlowHistoricalRebalanceSmallHistoryTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/SlowHistoricalRebalanceSmallHistoryTest.java
@@ -22,6 +22,7 @@ import org.apache.ignite.IgniteCache;
 import org.apache.ignite.IgniteDataStreamer;
 import org.apache.ignite.IgniteException;
 import org.apache.ignite.IgniteSystemProperties;
+import org.apache.ignite.cache.CacheAtomicityMode;
 import org.apache.ignite.cache.CacheWriteSynchronizationMode;
 import org.apache.ignite.cache.affinity.rendezvous.RendezvousAffinityFunction;
 import org.apache.ignite.cluster.ClusterNode;
@@ -128,8 +129,8 @@ public class SlowHistoricalRebalanceSmallHistoryTest extends GridCommonAbstractT
 
         ig.cluster().active(true);
 
-        ig.getOrCreateCache(new CacheConfiguration<>()
-            .setName(SLOW_REBALANCE_CACHE)
+        ig.getOrCreateCache(new CacheConfiguration<>(SLOW_REBALANCE_CACHE)
+            .setAtomicityMode(CacheAtomicityMode.TRANSACTIONAL)
             .setAffinity(new RendezvousAffinityFunction(false, 1))
             .setBackups(1)
             .setWriteSynchronizationMode(CacheWriteSynchronizationMode.FULL_SYNC)
@@ -146,8 +147,8 @@ public class SlowHistoricalRebalanceSmallHistoryTest extends GridCommonAbstractT
 
         resetBaselineTopology();
 
-        IgniteCache<Object, Object> anotherCache = ig.getOrCreateCache(new CacheConfiguration<>()
-            .setName(REGULAR_CACHE)
+        IgniteCache<Object, Object> anotherCache = ig.getOrCreateCache(new CacheConfiguration<>(REGULAR_CACHE)
+            .setAtomicityMode(CacheAtomicityMode.TRANSACTIONAL)
             .setAffinity(new RendezvousAffinityFunction(false, 1))
             .setBackups(1)
             .setWriteSynchronizationMode(CacheWriteSynchronizationMode.FULL_SYNC)

http://git-wip-us.apache.org/repos/asf/ignite/blob/5a856aca/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/wal/IgniteNodeStoppedDuringDisableWALTest.java
----------------------------------------------------------------------
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 f6dbdd3..23ad2f1 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
@@ -26,7 +26,6 @@ import java.nio.file.attribute.BasicFileAttributes;
 import org.apache.ignite.Ignite;
 import org.apache.ignite.IgniteCheckedException;
 import org.apache.ignite.IgniteDataStreamer;
-import org.apache.ignite.configuration.CacheConfiguration;
 import org.apache.ignite.configuration.DataRegionConfiguration;
 import org.apache.ignite.configuration.DataStorageConfiguration;
 import org.apache.ignite.configuration.IgniteConfiguration;
@@ -41,6 +40,7 @@ import org.apache.ignite.internal.processors.cache.persistence.filename.PdsFolde
 import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
 import org.apache.ignite.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder;
 import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder;
+import org.apache.ignite.testframework.MvccFeatureChecker;
 import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
 import org.junit.Assert;
 import org.junit.Test;
@@ -81,7 +81,7 @@ public class IgniteNodeStoppedDuringDisableWALTest extends GridCommonAbstractTes
 
         cfg.setAutoActivationEnabled(false);
 
-        cfg.setCacheConfiguration(new CacheConfiguration(DEFAULT_CACHE_NAME));
+        cfg.setCacheConfiguration(defaultCacheConfiguration());
 
         return cfg;
     }
@@ -100,6 +100,9 @@ public class IgniteNodeStoppedDuringDisableWALTest extends GridCommonAbstractTes
      */
     @Test
     public void test() throws Exception {
+        if (MvccFeatureChecker.forcedMvcc())
+            fail("https://issues.apache.org/jira/browse/IGNITE-10421");
+
         for (NodeStopPoint nodeStopPoint : NodeStopPoint.values()) {
             testStopNodeWithDisableWAL(nodeStopPoint);
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/5a856aca/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/wal/IgniteWalFlushMultiNodeFailoverAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/wal/IgniteWalFlushMultiNodeFailoverAbstractSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/wal/IgniteWalFlushMultiNodeFailoverAbstractSelfTest.java
index bdce9f3..86ff1f3 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/wal/IgniteWalFlushMultiNodeFailoverAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/wal/IgniteWalFlushMultiNodeFailoverAbstractSelfTest.java
@@ -43,6 +43,7 @@ import org.apache.ignite.internal.processors.cache.persistence.file.RandomAccess
 import org.apache.ignite.internal.processors.cache.persistence.wal.FileWriteAheadLogManager;
 import org.apache.ignite.internal.util.lang.GridAbsPredicate;
 import org.apache.ignite.testframework.GridTestUtils;
+import org.apache.ignite.testframework.MvccFeatureChecker;
 import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
 import org.apache.ignite.transactions.Transaction;
 import org.apache.ignite.transactions.TransactionConcurrency;
@@ -72,6 +73,9 @@ public abstract class IgniteWalFlushMultiNodeFailoverAbstractSelfTest extends Gr
 
     /** {@inheritDoc} */
     @Override protected void beforeTest() throws Exception {
+        if (MvccFeatureChecker.forcedMvcc())
+            fail("https://issues.apache.org/jira/browse/IGNITE-10550");
+
         super.beforeTest();
 
         stopAllGrids();
@@ -170,7 +174,7 @@ public abstract class IgniteWalFlushMultiNodeFailoverAbstractSelfTest extends Gr
         for (int i = 0; i < ITRS; i++) {
             while (!Thread.currentThread().isInterrupted()) {
                 try (Transaction tx = grid.transactions().txStart(
-                        TransactionConcurrency.PESSIMISTIC, TransactionIsolation.READ_COMMITTED)) {
+                        TransactionConcurrency.PESSIMISTIC, TransactionIsolation.REPEATABLE_READ)) {
                     cache.put(i, "testValue" + i);
 
                     tx.commit();

http://git-wip-us.apache.org/repos/asf/ignite/blob/5a856aca/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/wal/IgniteWalHistoryReservationsTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/wal/IgniteWalHistoryReservationsTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/wal/IgniteWalHistoryReservationsTest.java
index 8ac10b2..278862e 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/wal/IgniteWalHistoryReservationsTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/wal/IgniteWalHistoryReservationsTest.java
@@ -38,6 +38,7 @@ import org.apache.ignite.internal.processors.cache.persistence.wal.FileWriteAhea
 import org.apache.ignite.internal.util.lang.GridAbsPredicate;
 import org.apache.ignite.internal.util.typedef.internal.U;
 import org.apache.ignite.testframework.GridTestUtils;
+import org.apache.ignite.testframework.MvccFeatureChecker;
 import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
 import org.junit.Assert;
 import org.junit.Test;
@@ -112,6 +113,8 @@ public class IgniteWalHistoryReservationsTest extends GridCommonAbstractTest {
      */
     @Test
     public void testReservedOnExchange() throws Exception {
+        MvccFeatureChecker.failIfNotSupported(MvccFeatureChecker.Feature.ENTRY_LOCK);
+
         System.setProperty(IGNITE_PDS_WAL_REBALANCE_THRESHOLD, "0");
 
         final int entryCnt = 10_000;
@@ -258,6 +261,9 @@ public class IgniteWalHistoryReservationsTest extends GridCommonAbstractTest {
      */
     @Test
     public void testRemovesArePreloadedIfHistoryIsAvailable() throws Exception {
+        if (MvccFeatureChecker.forcedMvcc())
+            fail("https://issues.apache.org/jira/browse/IGNITE-10551");
+
         int entryCnt = 10_000;
 
         IgniteEx ig0 = (IgniteEx)startGrids(2);
@@ -308,6 +314,9 @@ public class IgniteWalHistoryReservationsTest extends GridCommonAbstractTest {
      */
     @Test
     public void testNodeIsClearedIfHistoryIsUnavailable() throws Exception {
+        if (MvccFeatureChecker.forcedMvcc())
+            fail("https://issues.apache.org/jira/browse/IGNITE-10551");
+
         int entryCnt = 10_000;
 
         IgniteEx ig0 = (IgniteEx)startGrids(2);
@@ -369,6 +378,9 @@ public class IgniteWalHistoryReservationsTest extends GridCommonAbstractTest {
      */
     @Test
     public void testWalHistoryPartiallyRemoved() throws Exception {
+        if (MvccFeatureChecker.forcedMvcc())
+            fail("https://issues.apache.org/jira/browse/IGNITE-10551");
+
         int entryCnt = 10_000;
 
         IgniteEx ig0 = (IgniteEx)startGrids(2);
@@ -409,6 +421,8 @@ public class IgniteWalHistoryReservationsTest extends GridCommonAbstractTest {
      */
     @Test
     public void testNodeLeftDuringExchange() throws Exception {
+        MvccFeatureChecker.failIfNotSupported(MvccFeatureChecker.Feature.ENTRY_LOCK);
+
         System.setProperty(IGNITE_PDS_WAL_REBALANCE_THRESHOLD, "0");
 
         final int entryCnt = 10_000;

http://git-wip-us.apache.org/repos/asf/ignite/blob/5a856aca/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/wal/WalDeletionArchiveAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/wal/WalDeletionArchiveAbstractTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/wal/WalDeletionArchiveAbstractTest.java
index c2296e5..8f79b65 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/wal/WalDeletionArchiveAbstractTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/wal/WalDeletionArchiveAbstractTest.java
@@ -23,6 +23,8 @@ import java.util.stream.Stream;
 import org.apache.ignite.Ignite;
 import org.apache.ignite.IgniteCache;
 import org.apache.ignite.IgniteException;
+import org.apache.ignite.cache.CacheAtomicityMode;
+import org.apache.ignite.configuration.CacheConfiguration;
 import org.apache.ignite.configuration.DataRegionConfiguration;
 import org.apache.ignite.configuration.DataStorageConfiguration;
 import org.apache.ignite.configuration.IgniteConfiguration;
@@ -45,9 +47,6 @@ import static org.apache.ignite.IgniteSystemProperties.IGNITE_PDS_MAX_CHECKPOINT
  */
 @RunWith(JUnit4.class)
 public abstract class WalDeletionArchiveAbstractTest extends GridCommonAbstractTest {
-    /** */
-    public static final String CACHE_NAME = "SomeCache";
-
     /**
      * Start grid with override default configuration via customConfigurator.
      */
@@ -74,6 +73,13 @@ public abstract class WalDeletionArchiveAbstractTest extends GridCommonAbstractT
         return ignite;
     }
 
+    /** */
+    private CacheConfiguration<Integer, Integer> cacheConfiguration() {
+        CacheConfiguration<Integer, Integer> ccfg = new CacheConfiguration<>(DEFAULT_CACHE_NAME);
+
+        return ccfg.setAtomicityMode(CacheAtomicityMode.TRANSACTIONAL);
+    }
+
     /** {@inheritDoc} */
     @Override protected void beforeTest() throws Exception {
         stopAllGrids();
@@ -141,7 +147,7 @@ public abstract class WalDeletionArchiveAbstractTest extends GridCommonAbstractT
 
         long allowedThresholdWalArchiveSize = maxWalArchiveSize / 2;
 
-        IgniteCache<Integer, Integer> cache = ignite.getOrCreateCache(CACHE_NAME);
+        IgniteCache<Integer, Integer> cache = ignite.getOrCreateCache(cacheConfiguration());
 
         //when: put to cache more than 2 MB
         for (int i = 0; i < 500; i++)
@@ -179,7 +185,7 @@ public abstract class WalDeletionArchiveAbstractTest extends GridCommonAbstractT
 
         GridCacheDatabaseSharedManager dbMgr = gridDatabase(ignite);
 
-        IgniteCache<Integer, Integer> cache = ignite.getOrCreateCache(CACHE_NAME);
+        IgniteCache<Integer, Integer> cache = ignite.getOrCreateCache(cacheConfiguration());
 
         for (int i = 0; i < 500; i++)
             cache.put(i, i);
@@ -208,7 +214,7 @@ public abstract class WalDeletionArchiveAbstractTest extends GridCommonAbstractT
 
         GridCacheDatabaseSharedManager dbMgr = gridDatabase(ignite);
 
-        IgniteCache<Integer, Integer> cache = ignite.getOrCreateCache(CACHE_NAME);
+        IgniteCache<Integer, Integer> cache = ignite.getOrCreateCache(cacheConfiguration());
 
         //when: put to cache and do checkpoint
         int testNumberOfCheckpoint = walHistorySize * 2;
@@ -242,7 +248,7 @@ public abstract class WalDeletionArchiveAbstractTest extends GridCommonAbstractT
 
         GridCacheDatabaseSharedManager dbMgr = gridDatabase(ignite);
 
-        IgniteCache<Integer, Integer> cache = ignite.getOrCreateCache(CACHE_NAME);
+        IgniteCache<Integer, Integer> cache = ignite.getOrCreateCache(cacheConfiguration());
 
         //when: put to cache
         for (int i = 0; i < 500; i++) {

http://git-wip-us.apache.org/repos/asf/ignite/blob/5a856aca/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/wal/reader/IgniteWalReaderTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/wal/reader/IgniteWalReaderTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/wal/reader/IgniteWalReaderTest.java
index 9dfd232..8d962d5 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/wal/reader/IgniteWalReaderTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/wal/reader/IgniteWalReaderTest.java
@@ -60,8 +60,10 @@ import org.apache.ignite.internal.pagemem.wal.WALPointer;
 import org.apache.ignite.internal.pagemem.wal.record.DataEntry;
 import org.apache.ignite.internal.pagemem.wal.record.DataRecord;
 import org.apache.ignite.internal.pagemem.wal.record.LazyDataEntry;
+import org.apache.ignite.internal.pagemem.wal.record.LazyMvccDataEntry;
 import org.apache.ignite.internal.pagemem.wal.record.TxRecord;
 import org.apache.ignite.internal.pagemem.wal.record.UnwrapDataEntry;
+import org.apache.ignite.internal.pagemem.wal.record.UnwrapMvccDataEntry;
 import org.apache.ignite.internal.pagemem.wal.record.WALRecord;
 import org.apache.ignite.internal.processors.cache.CacheObject;
 import org.apache.ignite.internal.processors.cache.GridCacheOperation;
@@ -79,6 +81,7 @@ import org.apache.ignite.logger.NullLogger;
 import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
 import org.apache.ignite.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder;
 import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder;
+import org.apache.ignite.testframework.MvccFeatureChecker;
 import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
 import org.apache.ignite.transactions.Transaction;
 import org.jetbrains.annotations.NotNull;
@@ -92,7 +95,7 @@ import static java.util.Arrays.fill;
 import static org.apache.ignite.events.EventType.EVT_WAL_SEGMENT_ARCHIVED;
 import static org.apache.ignite.events.EventType.EVT_WAL_SEGMENT_COMPACTED;
 import static org.apache.ignite.internal.pagemem.wal.record.WALRecord.RecordType.DATA_RECORD;
-import static org.apache.ignite.internal.pagemem.wal.record.WALRecord.RecordType.TX_RECORD;
+import static org.apache.ignite.internal.pagemem.wal.record.WALRecord.RecordType.MVCC_DATA_RECORD;
 import static org.apache.ignite.internal.processors.cache.GridCacheOperation.CREATE;
 import static org.apache.ignite.internal.processors.cache.GridCacheOperation.DELETE;
 import static org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.DFLT_STORE_DIR;
@@ -188,6 +191,9 @@ public class IgniteWalReaderTest extends GridCommonAbstractTest {
 
     /** {@inheritDoc} */
     @Override protected void beforeTest() throws Exception {
+        if (MvccFeatureChecker.forcedMvcc())
+            fail("https://issues.apache.org/jira/browse/IGNITE-10558");
+
         stopAllGrids();
 
         cleanPersistenceDir();
@@ -272,7 +278,7 @@ public class IgniteWalReaderTest extends GridCommonAbstractTest {
 
                 WALRecord walRecord = tup.get2();
 
-                if (walRecord.type() == DATA_RECORD) {
+                if (walRecord.type() == DATA_RECORD || walRecord.type() == MVCC_DATA_RECORD) {
                     DataRecord record = (DataRecord)walRecord;
 
                     for (DataEntry entry : record.writeEntries()) {
@@ -869,6 +875,9 @@ public class IgniteWalReaderTest extends GridCommonAbstractTest {
      */
     @Test
     public void testRemoveOperationPresentedForDataEntryForAtomic() throws Exception {
+        if (MvccFeatureChecker.forcedMvcc())
+            return;
+
         runRemoveOperationTest(CacheAtomicityMode.ATOMIC);
     }
 
@@ -1304,62 +1313,78 @@ public class IgniteWalReaderTest extends GridCommonAbstractTest {
 
                 WALRecord walRecord = tup.get2();
 
-                if (walRecord.type() == DATA_RECORD && walRecord instanceof DataRecord) {
-                    DataRecord dataRecord = (DataRecord)walRecord;
+                WALRecord.RecordType type = walRecord.type();
 
-                    if (dataRecordHnd != null)
-                        dataRecordHnd.apply(dataRecord);
+                //noinspection EnumSwitchStatementWhichMissesCases
+                switch (type) {
+                    case DATA_RECORD:
+                        // Fallthrough.
+                    case MVCC_DATA_RECORD: {
+                        assert walRecord instanceof DataRecord;
 
-                    List<DataEntry> entries = dataRecord.writeEntries();
+                        DataRecord dataRecord = (DataRecord)walRecord;
 
-                    for (DataEntry entry : entries) {
-                        GridCacheVersion globalTxId = entry.nearXidVersion();
+                        if (dataRecordHnd != null)
+                            dataRecordHnd.apply(dataRecord);
 
-                        Object unwrappedKeyObj;
-                        Object unwrappedValObj;
+                        List<DataEntry> entries = dataRecord.writeEntries();
 
-                        if (entry instanceof UnwrapDataEntry) {
-                            UnwrapDataEntry unwrapDataEntry = (UnwrapDataEntry)entry;
-                            unwrappedKeyObj = unwrapDataEntry.unwrappedKey();
-                            unwrappedValObj = unwrapDataEntry.unwrappedValue();
-                        }
-                        else if (entry instanceof LazyDataEntry) {
-                            unwrappedKeyObj = null;
-                            unwrappedValObj = null;
-                            //can't check value
-                        }
-                        else {
-                            final CacheObject val = entry.value();
+                        for (DataEntry entry : entries) {
+                            GridCacheVersion globalTxId = entry.nearXidVersion();
 
-                            unwrappedValObj = val instanceof BinaryObject ? val : val.value(null, false);
+                            Object unwrappedKeyObj;
+                            Object unwrappedValObj;
 
-                            final CacheObject key = entry.key();
+                            if (entry instanceof UnwrapDataEntry || entry instanceof UnwrapMvccDataEntry) {
+                                UnwrapDataEntry unwrapDataEntry = (UnwrapDataEntry)entry;
+                                unwrappedKeyObj = unwrapDataEntry.unwrappedKey();
+                                unwrappedValObj = unwrapDataEntry.unwrappedValue();
+                            }
+                            else if (entry instanceof LazyDataEntry || entry instanceof LazyMvccDataEntry) {
+                                unwrappedKeyObj = null;
+                                unwrappedValObj = null;
+                                //can't check value
+                            }
+                            else {
+                                final CacheObject val = entry.value();
 
-                            unwrappedKeyObj = key instanceof BinaryObject ? key : key.value(null, false);
-                        }
+                                unwrappedValObj = val instanceof BinaryObject ? val : val.value(null, false);
 
-                        if (DUMP_RECORDS)
-                            log.info("//Entry operation " + entry.op() + "; cache Id" + entry.cacheId() + "; " +
-                                "under transaction: " + globalTxId +
-                                //; entry " + entry +
-                                "; Key: " + unwrappedKeyObj +
-                                "; Value: " + unwrappedValObj);
+                                final CacheObject key = entry.key();
+
+                                unwrappedKeyObj = key instanceof BinaryObject ? key : key.value(null, false);
+                            }
+
+                            if (DUMP_RECORDS)
+                                log.info("//Entry operation " + entry.op() + "; cache Id" + entry.cacheId() + "; " +
+                                    "under transaction: " + globalTxId +
+                                    //; entry " + entry +
+                                    "; Key: " + unwrappedKeyObj +
+                                    "; Value: " + unwrappedValObj);
 
-                        if (cacheObjHnd != null && (unwrappedKeyObj != null || unwrappedValObj != null))
-                            cacheObjHnd.apply(unwrappedKeyObj, unwrappedValObj);
+                            if (cacheObjHnd != null && (unwrappedKeyObj != null || unwrappedValObj != null))
+                                cacheObjHnd.apply(unwrappedKeyObj, unwrappedValObj);
 
-                        Integer entriesUnderTx = entriesUnderTxFound.get(globalTxId);
+                            Integer entriesUnderTx = entriesUnderTxFound.get(globalTxId);
 
-                        entriesUnderTxFound.put(globalTxId, entriesUnderTx == null ? 1 : entriesUnderTx + 1);
+                            entriesUnderTxFound.put(globalTxId, entriesUnderTx == null ? 1 : entriesUnderTx + 1);
+                        }
                     }
-                }
-                else if (walRecord.type() == TX_RECORD && walRecord instanceof TxRecord) {
-                    TxRecord txRecord = (TxRecord)walRecord;
-                    GridCacheVersion globalTxId = txRecord.nearXidVersion();
 
-                    if (DUMP_RECORDS)
-                        log.info("//Tx Record, state: " + txRecord.state() +
-                            "; nearTxVersion" + globalTxId);
+                    break;
+
+                    case TX_RECORD:
+                        // Fallthrough
+                    case MVCC_TX_RECORD: {
+                        assert walRecord instanceof TxRecord;
+
+                        TxRecord txRecord = (TxRecord)walRecord;
+                        GridCacheVersion globalTxId = txRecord.nearXidVersion();
+
+                        if (DUMP_RECORDS)
+                            log.info("//Tx Record, state: " + txRecord.state() +
+                                "; nearTxVersion" + globalTxId);
+                    }
                 }
             }
         }

http://git-wip-us.apache.org/repos/asf/ignite/blob/5a856aca/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryAsyncFilterListenerTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryAsyncFilterListenerTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryAsyncFilterListenerTest.java
index 393652c..4f31a4c 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryAsyncFilterListenerTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryAsyncFilterListenerTest.java
@@ -523,7 +523,7 @@ public class CacheContinuousQueryAsyncFilterListenerTest extends GridCommonAbstr
                             try {
                                 assertEquals(val, val0);
 
-                                if (cache0.getConfiguration(CacheConfiguration.class).getAtomicityMode() != ATOMIC) {
+                                if (atomicityMode(cache0) != ATOMIC) {
                                     boolean committed = false;
 
                                     while (!committed && !Thread.currentThread().isInterrupted()) {
@@ -679,7 +679,7 @@ public class CacheContinuousQueryAsyncFilterListenerTest extends GridCommonAbstr
                             try {
                                 assertEquals(val, val0);
 
-                                if (cache0.getConfiguration(CacheConfiguration.class).getAtomicityMode() != ATOMIC) {
+                                if (atomicityMode(cache0) != ATOMIC) {
                                     boolean committed = false;
 
                                     while (!committed && !Thread.currentThread().isInterrupted()) {

http://git-wip-us.apache.org/repos/asf/ignite/blob/5a856aca/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryFactoryFilterRandomOperationTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryFactoryFilterRandomOperationTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryFactoryFilterRandomOperationTest.java
index e0dcf2e..7fadb3b 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryFactoryFilterRandomOperationTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryFactoryFilterRandomOperationTest.java
@@ -281,7 +281,7 @@ public class CacheContinuousQueryFactoryFilterRandomOperationTest extends CacheC
 
         Transaction tx = null;
 
-        CacheAtomicityMode atomicityMode = cache.getConfiguration(CacheConfiguration.class).getAtomicityMode();
+        CacheAtomicityMode atomicityMode = atomicityMode(cache);
 
         boolean mvccEnabled = atomicityMode == TRANSACTIONAL_SNAPSHOT;
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/5a856aca/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryOrderingEventTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryOrderingEventTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryOrderingEventTest.java
index c8acff1..e1d211a 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryOrderingEventTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryOrderingEventTest.java
@@ -377,8 +377,7 @@ public class CacheContinuousQueryOrderingEventTest extends GridCommonAbstractTes
 
                         QueryTestKey key = new QueryTestKey(rnd.nextInt(KEYS));
 
-                        boolean startTx = cache.getConfiguration(CacheConfiguration.class).getAtomicityMode() !=
-                            ATOMIC && rnd.nextBoolean();
+                        boolean startTx = atomicityMode(cache) != ATOMIC && rnd.nextBoolean();
 
                         Transaction tx = null;
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/5a856aca/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryRandomOperationsTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryRandomOperationsTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryRandomOperationsTest.java
index 7a73579..0329cce 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryRandomOperationsTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryRandomOperationsTest.java
@@ -1224,7 +1224,7 @@ public class CacheContinuousQueryRandomOperationsTest extends GridCommonAbstract
 
         Transaction tx = null;
 
-        CacheAtomicityMode atomicityMode = cache.getConfiguration(CacheConfiguration.class).getAtomicityMode();
+        CacheAtomicityMode atomicityMode = atomicityMode(cache);
 
         boolean mvccEnabled = atomicityMode == TRANSACTIONAL_SNAPSHOT;