You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by ib...@apache.org on 2022/09/30 14:41:19 UTC

[ignite-3] branch main updated: IGNITE-17788 Specified comparison order introduced for RowId (#1143)

This is an automated email from the ASF dual-hosted git repository.

ibessonov pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/ignite-3.git


The following commit(s) were added to refs/heads/main by this push:
     new 5009b4d4f0 IGNITE-17788 Specified comparison order introduced for RowId (#1143)
5009b4d4f0 is described below

commit 5009b4d4f0f9bb3841482ea56fa1bb90071f1b8e
Author: ibessonov <be...@gmail.com>
AuthorDate: Fri Sep 30 17:41:13 2022 +0300

    IGNITE-17788 Specified comparison order introduced for RowId (#1143)
---
 .../sql/engine/exec/MockedStructuresTest.java      | 18 ++++++-------
 modules/storage-api/README.md                      |  2 +-
 .../internal/storage/MvPartitionStorage.java       |  3 ++-
 .../org/apache/ignite/internal/storage/RowId.java  | 13 ++++++++-
 .../storage/TestMvPartitionStorageTest.java        |  6 ++---
 ...torageTest.java => TestMvTableStorageTest.java} | 18 ++++++-------
 .../storage/index/TestHashIndexStorageTest.java    | 12 ++++-----
 .../storage/index/TestSortedIndexStorageTest.java  | 12 ++++-----
 ...nite.internal.configuration.ConfigurationModule |  2 +-
 ...pache.ignite.internal.storage.DataStorageModule |  2 +-
 .../TestDataStorageModule.java}                    | 10 +++----
 .../TestMvPartitionStorage.java}                   | 10 +++----
 .../TestMvTableStorage.java}                       |  8 +++---
 .../TestStorageEngine.java}                        | 12 ++++-----
 ...orageEngineDistributedConfigurationModule.java} | 10 +++----
 .../TestDataStorageConfigurationSchema.java}       | 10 +++----
 .../storage/rocksdb/RocksDbMvPartitionStorage.java | 31 +++++++++++++++-------
 .../ignite/distributed/ItTablePersistenceTest.java |  4 +--
 .../distributed/ItTxDistributedTestSingleNode.java |  4 +--
 .../org/apache/ignite/internal/table/Example.java  |  4 +--
 .../internal/table/InteropOperationsTest.java      |  4 +--
 .../table/KeyValueBinaryViewOperationsTest.java    |  4 +--
 .../KeyValueViewOperationsSimpleSchemaTest.java    |  4 +--
 .../internal/table/KeyValueViewOperationsTest.java |  4 +--
 .../table/RecordBinaryViewOperationsTest.java      |  4 +--
 .../internal/table/RecordViewOperationsTest.java   |  4 +--
 .../internal/table/SchemaValidationTest.java       |  4 +--
 .../apache/ignite/internal/table/TxLocalTest.java  |  6 ++---
 .../raft/PartitionCommandListenerTest.java         |  4 +--
 29 files changed, 127 insertions(+), 102 deletions(-)

diff --git a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/MockedStructuresTest.java b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/MockedStructuresTest.java
index 6ab73fc3a0..d3c183d764 100644
--- a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/MockedStructuresTest.java
+++ b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/MockedStructuresTest.java
@@ -82,10 +82,10 @@ import org.apache.ignite.internal.sql.engine.property.PropertiesHolder;
 import org.apache.ignite.internal.sql.engine.session.SessionId;
 import org.apache.ignite.internal.storage.DataStorageManager;
 import org.apache.ignite.internal.storage.DataStorageModules;
-import org.apache.ignite.internal.storage.chm.TestConcurrentHashMapDataStorageModule;
-import org.apache.ignite.internal.storage.chm.TestConcurrentHashMapStorageEngine;
-import org.apache.ignite.internal.storage.chm.schema.TestConcurrentHashMapDataStorageConfigurationSchema;
-import org.apache.ignite.internal.storage.chm.schema.TestConcurrentHashMapDataStorageView;
+import org.apache.ignite.internal.storage.impl.TestDataStorageModule;
+import org.apache.ignite.internal.storage.impl.TestStorageEngine;
+import org.apache.ignite.internal.storage.impl.schema.TestDataStorageConfigurationSchema;
+import org.apache.ignite.internal.storage.impl.schema.TestDataStorageView;
 import org.apache.ignite.internal.storage.rocksdb.RocksDbDataStorageModule;
 import org.apache.ignite.internal.storage.rocksdb.configuration.schema.RocksDbDataStorageConfigurationSchema;
 import org.apache.ignite.internal.storage.rocksdb.configuration.schema.RocksDbDataStorageView;
@@ -175,7 +175,7 @@ public class MockedStructuresTest extends IgniteAbstractTest {
                     SortedIndexConfigurationSchema.class,
                     UnknownDataStorageConfigurationSchema.class,
                     RocksDbDataStorageConfigurationSchema.class,
-                    TestConcurrentHashMapDataStorageConfigurationSchema.class,
+                    TestDataStorageConfigurationSchema.class,
                     ConstantValueDefaultConfigurationSchema.class,
                     FunctionCallDefaultConfigurationSchema.class,
                     NullValueDefaultConfigurationSchema.class,
@@ -254,7 +254,7 @@ public class MockedStructuresTest extends IgniteAbstractTest {
 
         DataStorageModules dataStorageModules = new DataStorageModules(List.of(
                 new RocksDbDataStorageModule(),
-                new TestConcurrentHashMapDataStorageModule()
+                new TestDataStorageModule()
         ));
 
         dataStorageManager = new DataStorageManager(
@@ -284,7 +284,7 @@ public class MockedStructuresTest extends IgniteAbstractTest {
                 tm,
                 () -> dataStorageModules.collectSchemasFields(List.of(
                         RocksDbDataStorageConfigurationSchema.class,
-                        TestConcurrentHashMapDataStorageConfigurationSchema.class
+                        TestDataStorageConfigurationSchema.class
                 ))
         );
 
@@ -561,11 +561,11 @@ public class MockedStructuresTest extends IgniteAbstractTest {
                 String.format(
                         "CREATE TABLE %s (c1 int PRIMARY KEY, c2 varbinary(255)) engine %s",
                         method + 1,
-                        TestConcurrentHashMapStorageEngine.ENGINE_NAME
+                        TestStorageEngine.ENGINE_NAME
                 )
         )));
 
-        assertThat(tableView(method + 1).dataStorage(), instanceOf(TestConcurrentHashMapDataStorageView.class));
+        assertThat(tableView(method + 1).dataStorage(), instanceOf(TestDataStorageView.class));
 
         // With existing engine in mixed case
         assertDoesNotThrow(() -> readFirst(queryProc.queryAsync(
diff --git a/modules/storage-api/README.md b/modules/storage-api/README.md
index bec72b5bd6..9ec4017743 100644
--- a/modules/storage-api/README.md
+++ b/modules/storage-api/README.md
@@ -22,7 +22,7 @@ To add a new data storage you need:
     * Implementation of `org.apache.ignite.internal.storage.DataStorageModule`;
     * Implementation of `org.apache.ignite.internal.configuration.ConfigurationModule`.
 
-Take `org.apache.ignite.internal.storage.chm.TestConcurrentHashMapStorageEngine` as an example.
+Take `org.apache.ignite.internal.storage.impl.TestStorageEngine` as an example.
 
 ## Usage
 
diff --git a/modules/storage-api/src/main/java/org/apache/ignite/internal/storage/MvPartitionStorage.java b/modules/storage-api/src/main/java/org/apache/ignite/internal/storage/MvPartitionStorage.java
index dafa7e9282..99ac8134a8 100644
--- a/modules/storage-api/src/main/java/org/apache/ignite/internal/storage/MvPartitionStorage.java
+++ b/modules/storage-api/src/main/java/org/apache/ignite/internal/storage/MvPartitionStorage.java
@@ -37,7 +37,8 @@ import org.jetbrains.annotations.Nullable;
  *
  * <p>All timestamps in the chain must go in decreasing order, giving us a N2O (newest to oldest) order of search.
  *
- * <p>Each MvPartitionStorage instance represents exactly one partition.
+ * <p>Each MvPartitionStorage instance represents exactly one partition. All RowIds within a partition are sorted consistently with the
+ * {@link RowId#compareTo} comparison order.
  */
 public interface MvPartitionStorage extends AutoCloseable {
     /**
diff --git a/modules/storage-api/src/main/java/org/apache/ignite/internal/storage/RowId.java b/modules/storage-api/src/main/java/org/apache/ignite/internal/storage/RowId.java
index 72adcb42a5..42b6cc463b 100644
--- a/modules/storage-api/src/main/java/org/apache/ignite/internal/storage/RowId.java
+++ b/modules/storage-api/src/main/java/org/apache/ignite/internal/storage/RowId.java
@@ -25,7 +25,7 @@ import org.apache.ignite.internal.tx.Timestamp;
  *
  * @see MvPartitionStorage
  */
-public final class RowId {
+public final class RowId implements Comparable<RowId> {
     /** Partition id. Short type reduces payload when transferring an object over network. */
     private final short partitionId;
 
@@ -106,6 +106,17 @@ public final class RowId {
         return result;
     }
 
+    @Override
+    public int compareTo(RowId rowId) {
+        int cmp = Short.compareUnsigned(partitionId, rowId.partitionId);
+
+        if (cmp != 0) {
+            return cmp;
+        }
+
+        return uuid.compareTo(rowId.uuid);
+    }
+
     @Override
     public String toString() {
         return "RowId [partitionId=" + partitionId() + ", uuid=" + uuid + ']';
diff --git a/modules/storage-api/src/test/java/org/apache/ignite/internal/storage/TestMvPartitionStorageTest.java b/modules/storage-api/src/test/java/org/apache/ignite/internal/storage/TestMvPartitionStorageTest.java
index 0a7e380780..11dd05822a 100644
--- a/modules/storage-api/src/test/java/org/apache/ignite/internal/storage/TestMvPartitionStorageTest.java
+++ b/modules/storage-api/src/test/java/org/apache/ignite/internal/storage/TestMvPartitionStorageTest.java
@@ -17,16 +17,16 @@
 
 package org.apache.ignite.internal.storage;
 
-import org.apache.ignite.internal.storage.chm.TestConcurrentHashMapMvPartitionStorage;
+import org.apache.ignite.internal.storage.impl.TestMvPartitionStorage;
 
 /**
- * MV partition storage test implementation for {@link TestConcurrentHashMapMvPartitionStorage} class.
+ * MV partition storage test implementation for {@link TestMvPartitionStorage} class.
  */
 public class TestMvPartitionStorageTest extends AbstractMvPartitionStorageTest {
     /**
      * Creates new instance.
      */
     public TestMvPartitionStorageTest() {
-        storage = new TestConcurrentHashMapMvPartitionStorage(PARTITION_ID);
+        storage = new TestMvPartitionStorage(PARTITION_ID);
     }
 }
diff --git a/modules/storage-api/src/test/java/org/apache/ignite/internal/storage/ConcurrentHashMapMvTableStorageTest.java b/modules/storage-api/src/test/java/org/apache/ignite/internal/storage/TestMvTableStorageTest.java
similarity index 77%
rename from modules/storage-api/src/test/java/org/apache/ignite/internal/storage/ConcurrentHashMapMvTableStorageTest.java
rename to modules/storage-api/src/test/java/org/apache/ignite/internal/storage/TestMvTableStorageTest.java
index ba8db5dd0a..5290b8e172 100644
--- a/modules/storage-api/src/test/java/org/apache/ignite/internal/storage/ConcurrentHashMapMvTableStorageTest.java
+++ b/modules/storage-api/src/test/java/org/apache/ignite/internal/storage/TestMvTableStorageTest.java
@@ -25,36 +25,36 @@ import org.apache.ignite.configuration.schemas.table.TablesConfiguration;
 import org.apache.ignite.configuration.schemas.table.UnlimitedBudgetConfigurationSchema;
 import org.apache.ignite.internal.configuration.testframework.ConfigurationExtension;
 import org.apache.ignite.internal.configuration.testframework.InjectConfiguration;
-import org.apache.ignite.internal.storage.chm.TestConcurrentHashMapMvTableStorage;
-import org.apache.ignite.internal.storage.chm.TestConcurrentHashMapStorageEngine;
-import org.apache.ignite.internal.storage.chm.schema.TestConcurrentHashMapDataStorageConfigurationSchema;
+import org.apache.ignite.internal.storage.impl.TestMvTableStorage;
+import org.apache.ignite.internal.storage.impl.TestStorageEngine;
+import org.apache.ignite.internal.storage.impl.schema.TestDataStorageConfigurationSchema;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.extension.ExtendWith;
 
 /**
- * Class for testing the {@link TestConcurrentHashMapMvTableStorage} class.
+ * Class for testing the {@link TestMvTableStorage} class.
  */
 @ExtendWith(ConfigurationExtension.class)
-public class ConcurrentHashMapMvTableStorageTest extends AbstractMvTableStorageTest {
-    private TestConcurrentHashMapMvTableStorage storage;
+public class TestMvTableStorageTest extends AbstractMvTableStorageTest {
+    private TestMvTableStorage storage;
 
     @BeforeEach
     void setUp(
             @InjectConfiguration(
                     polymorphicExtensions = {
-                            TestConcurrentHashMapDataStorageConfigurationSchema.class,
+                            TestDataStorageConfigurationSchema.class,
                             UnknownDataStorageConfigurationSchema.class,
                             HashIndexConfigurationSchema.class,
                             SortedIndexConfigurationSchema.class,
                             NullValueDefaultConfigurationSchema.class,
                             UnlimitedBudgetConfigurationSchema.class
                     },
-                    value = "mock.tables.foo.dataStorage.name = " + TestConcurrentHashMapStorageEngine.ENGINE_NAME
+                    value = "mock.tables.foo.dataStorage.name = " + TestStorageEngine.ENGINE_NAME
             )
             TablesConfiguration tablesConfig
     ) {
-        storage = new TestConcurrentHashMapMvTableStorage(tablesConfig.tables().get("foo"), tablesConfig);
+        storage = new TestMvTableStorage(tablesConfig.tables().get("foo"), tablesConfig);
 
         storage.start();
 
diff --git a/modules/storage-api/src/test/java/org/apache/ignite/internal/storage/index/TestHashIndexStorageTest.java b/modules/storage-api/src/test/java/org/apache/ignite/internal/storage/index/TestHashIndexStorageTest.java
index 63bf55d84a..b8bd599601 100644
--- a/modules/storage-api/src/test/java/org/apache/ignite/internal/storage/index/TestHashIndexStorageTest.java
+++ b/modules/storage-api/src/test/java/org/apache/ignite/internal/storage/index/TestHashIndexStorageTest.java
@@ -25,9 +25,9 @@ import org.apache.ignite.configuration.schemas.table.TablesConfiguration;
 import org.apache.ignite.configuration.schemas.table.UnlimitedBudgetConfigurationSchema;
 import org.apache.ignite.internal.configuration.testframework.ConfigurationExtension;
 import org.apache.ignite.internal.configuration.testframework.InjectConfiguration;
-import org.apache.ignite.internal.storage.chm.TestConcurrentHashMapMvTableStorage;
-import org.apache.ignite.internal.storage.chm.TestConcurrentHashMapStorageEngine;
-import org.apache.ignite.internal.storage.chm.schema.TestConcurrentHashMapDataStorageConfigurationSchema;
+import org.apache.ignite.internal.storage.impl.TestMvTableStorage;
+import org.apache.ignite.internal.storage.impl.TestStorageEngine;
+import org.apache.ignite.internal.storage.impl.schema.TestDataStorageConfigurationSchema;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.extension.ExtendWith;
 
@@ -40,19 +40,19 @@ public class TestHashIndexStorageTest extends AbstractHashIndexStorageTest {
     void setUp(
             @InjectConfiguration(
                     polymorphicExtensions = {
-                            TestConcurrentHashMapDataStorageConfigurationSchema.class,
+                            TestDataStorageConfigurationSchema.class,
                             UnknownDataStorageConfigurationSchema.class,
                             HashIndexConfigurationSchema.class,
                             NullValueDefaultConfigurationSchema.class,
                             UnlimitedBudgetConfigurationSchema.class
                     },
-                    value = "mock.tables.foo.dataStorage.name = " + TestConcurrentHashMapStorageEngine.ENGINE_NAME
+                    value = "mock.tables.foo.dataStorage.name = " + TestStorageEngine.ENGINE_NAME
             )
             TablesConfiguration tablesConfig
     ) {
         TableConfiguration tableConfig = tablesConfig.tables().get("foo");
 
-        var storage = new TestConcurrentHashMapMvTableStorage(tableConfig, tablesConfig);
+        var storage = new TestMvTableStorage(tableConfig, tablesConfig);
 
         initialize(storage, tablesConfig);
     }
diff --git a/modules/storage-api/src/test/java/org/apache/ignite/internal/storage/index/TestSortedIndexStorageTest.java b/modules/storage-api/src/test/java/org/apache/ignite/internal/storage/index/TestSortedIndexStorageTest.java
index 9ad702c8f0..d6fb22b1b0 100644
--- a/modules/storage-api/src/test/java/org/apache/ignite/internal/storage/index/TestSortedIndexStorageTest.java
+++ b/modules/storage-api/src/test/java/org/apache/ignite/internal/storage/index/TestSortedIndexStorageTest.java
@@ -25,9 +25,9 @@ import org.apache.ignite.configuration.schemas.table.TablesConfiguration;
 import org.apache.ignite.configuration.schemas.table.UnlimitedBudgetConfigurationSchema;
 import org.apache.ignite.internal.configuration.testframework.ConfigurationExtension;
 import org.apache.ignite.internal.configuration.testframework.InjectConfiguration;
-import org.apache.ignite.internal.storage.chm.TestConcurrentHashMapMvTableStorage;
-import org.apache.ignite.internal.storage.chm.TestConcurrentHashMapStorageEngine;
-import org.apache.ignite.internal.storage.chm.schema.TestConcurrentHashMapDataStorageConfigurationSchema;
+import org.apache.ignite.internal.storage.impl.TestMvTableStorage;
+import org.apache.ignite.internal.storage.impl.TestStorageEngine;
+import org.apache.ignite.internal.storage.impl.schema.TestDataStorageConfigurationSchema;
 import org.apache.ignite.internal.storage.index.impl.TestSortedIndexStorage;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.extension.ExtendWith;
@@ -41,19 +41,19 @@ public class TestSortedIndexStorageTest extends AbstractSortedIndexStorageTest {
     void setUp(
             @InjectConfiguration(
                     polymorphicExtensions = {
-                            TestConcurrentHashMapDataStorageConfigurationSchema.class,
+                            TestDataStorageConfigurationSchema.class,
                             UnknownDataStorageConfigurationSchema.class,
                             SortedIndexConfigurationSchema.class,
                             NullValueDefaultConfigurationSchema.class,
                             UnlimitedBudgetConfigurationSchema.class
                     },
-                    value = "mock.tables.foo.dataStorage.name = " + TestConcurrentHashMapStorageEngine.ENGINE_NAME
+                    value = "mock.tables.foo.dataStorage.name = " + TestStorageEngine.ENGINE_NAME
             )
             TablesConfiguration tablesConfig
     ) {
         TableConfiguration tableConfig = tablesConfig.tables().get("foo");
 
-        var storage = new TestConcurrentHashMapMvTableStorage(tableConfig, tablesConfig);
+        var storage = new TestMvTableStorage(tableConfig, tablesConfig);
 
         initialize(storage, tablesConfig);
     }
diff --git a/modules/storage-api/src/test/resources/META-INF/services/org.apache.ignite.internal.configuration.ConfigurationModule b/modules/storage-api/src/test/resources/META-INF/services/org.apache.ignite.internal.configuration.ConfigurationModule
index 83b99e9cbf..130a51d4f3 100644
--- a/modules/storage-api/src/test/resources/META-INF/services/org.apache.ignite.internal.configuration.ConfigurationModule
+++ b/modules/storage-api/src/test/resources/META-INF/services/org.apache.ignite.internal.configuration.ConfigurationModule
@@ -14,4 +14,4 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 #
-org.apache.ignite.internal.storage.chm.TestConcurrentHashMapStorageEngineDistributedConfigurationModule
+org.apache.ignite.internal.storage.impl.TestStorageEngineDistributedConfigurationModule
diff --git a/modules/storage-api/src/test/resources/META-INF/services/org.apache.ignite.internal.storage.DataStorageModule b/modules/storage-api/src/test/resources/META-INF/services/org.apache.ignite.internal.storage.DataStorageModule
index 6147e8c256..f06c52d7e8 100644
--- a/modules/storage-api/src/test/resources/META-INF/services/org.apache.ignite.internal.storage.DataStorageModule
+++ b/modules/storage-api/src/test/resources/META-INF/services/org.apache.ignite.internal.storage.DataStorageModule
@@ -14,4 +14,4 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 #
-org.apache.ignite.internal.storage.chm.TestConcurrentHashMapDataStorageModule
+org.apache.ignite.internal.storage.impl.TestDataStorageModule
diff --git a/modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/chm/TestConcurrentHashMapDataStorageModule.java b/modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/impl/TestDataStorageModule.java
similarity index 81%
rename from modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/chm/TestConcurrentHashMapDataStorageModule.java
rename to modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/impl/TestDataStorageModule.java
index b8e1856898..55fcaa8dfb 100644
--- a/modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/chm/TestConcurrentHashMapDataStorageModule.java
+++ b/modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/impl/TestDataStorageModule.java
@@ -15,9 +15,9 @@
  * limitations under the License.
  */
 
-package org.apache.ignite.internal.storage.chm;
+package org.apache.ignite.internal.storage.impl;
 
-import static org.apache.ignite.internal.storage.chm.TestConcurrentHashMapStorageEngine.ENGINE_NAME;
+import static org.apache.ignite.internal.storage.impl.TestStorageEngine.ENGINE_NAME;
 
 import java.nio.file.Path;
 import org.apache.ignite.internal.components.LongJvmPauseDetector;
@@ -28,9 +28,9 @@ import org.apache.ignite.internal.storage.engine.StorageEngine;
 import org.jetbrains.annotations.Nullable;
 
 /**
- * Implementation for creating {@link TestConcurrentHashMapStorageEngine}s.
+ * Implementation for creating {@link TestStorageEngine}s.
  */
-public class TestConcurrentHashMapDataStorageModule implements DataStorageModule {
+public class TestDataStorageModule implements DataStorageModule {
     /** {@inheritDoc} */
     @Override
     public String name() {
@@ -45,6 +45,6 @@ public class TestConcurrentHashMapDataStorageModule implements DataStorageModule
             Path storagePath,
             @Nullable LongJvmPauseDetector longJvmPauseDetector
     ) throws StorageException {
-        return new TestConcurrentHashMapStorageEngine();
+        return new TestStorageEngine();
     }
 }
diff --git a/modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/chm/TestConcurrentHashMapMvPartitionStorage.java b/modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/impl/TestMvPartitionStorage.java
similarity index 98%
rename from modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/chm/TestConcurrentHashMapMvPartitionStorage.java
rename to modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/impl/TestMvPartitionStorage.java
index 74d57ef11d..ab70242ab4 100644
--- a/modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/chm/TestConcurrentHashMapMvPartitionStorage.java
+++ b/modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/impl/TestMvPartitionStorage.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.ignite.internal.storage.chm;
+package org.apache.ignite.internal.storage.impl;
 
 import java.util.Iterator;
 import java.util.Map.Entry;
@@ -23,8 +23,8 @@ import java.util.NoSuchElementException;
 import java.util.Objects;
 import java.util.UUID;
 import java.util.concurrent.CompletableFuture;
-import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentMap;
+import java.util.concurrent.ConcurrentSkipListMap;
 import java.util.function.BiConsumer;
 import java.util.function.Predicate;
 import java.util.stream.Stream;
@@ -42,14 +42,14 @@ import org.jetbrains.annotations.Nullable;
 /**
  * Test implementation of MV partition storage.
  */
-public class TestConcurrentHashMapMvPartitionStorage implements MvPartitionStorage {
-    private final ConcurrentMap<RowId, VersionChain> map = new ConcurrentHashMap<>();
+public class TestMvPartitionStorage implements MvPartitionStorage {
+    private final ConcurrentMap<RowId, VersionChain> map = new ConcurrentSkipListMap<>();
 
     private long lastAppliedIndex = 0;
 
     private final int partitionId;
 
-    public TestConcurrentHashMapMvPartitionStorage(int partitionId) {
+    public TestMvPartitionStorage(int partitionId) {
         this.partitionId = partitionId;
     }
 
diff --git a/modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/chm/TestConcurrentHashMapMvTableStorage.java b/modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/impl/TestMvTableStorage.java
similarity index 94%
rename from modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/chm/TestConcurrentHashMapMvTableStorage.java
rename to modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/impl/TestMvTableStorage.java
index f835947c86..6a74c781cf 100644
--- a/modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/chm/TestConcurrentHashMapMvTableStorage.java
+++ b/modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/impl/TestMvTableStorage.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.ignite.internal.storage.chm;
+package org.apache.ignite.internal.storage.impl;
 
 import java.util.Map;
 import java.util.UUID;
@@ -37,7 +37,7 @@ import org.jetbrains.annotations.Nullable;
 /**
  * Test table storage implementation.
  */
-public class TestConcurrentHashMapMvTableStorage implements MvTableStorage {
+public class TestMvTableStorage implements MvTableStorage {
     private final Map<Integer, MvPartitionStorage> partitions = new ConcurrentHashMap<>();
 
     private final Map<UUID, SortedIndices> sortedIndicesById = new ConcurrentHashMap<>();
@@ -83,14 +83,14 @@ public class TestConcurrentHashMapMvTableStorage implements MvTableStorage {
     }
 
     /** Costructor. */
-    public TestConcurrentHashMapMvTableStorage(TableConfiguration tableCfg, TablesConfiguration tablesCfg) {
+    public TestMvTableStorage(TableConfiguration tableCfg, TablesConfiguration tablesCfg) {
         this.tableCfg = tableCfg;
         this.tablesCfg = tablesCfg;
     }
 
     @Override
     public MvPartitionStorage getOrCreateMvPartition(int partitionId) throws StorageException {
-        return partitions.computeIfAbsent(partitionId, TestConcurrentHashMapMvPartitionStorage::new);
+        return partitions.computeIfAbsent(partitionId, TestMvPartitionStorage::new);
     }
 
     @Override
diff --git a/modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/chm/TestConcurrentHashMapStorageEngine.java b/modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/impl/TestStorageEngine.java
similarity index 84%
rename from modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/chm/TestConcurrentHashMapStorageEngine.java
rename to modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/impl/TestStorageEngine.java
index 9e2aa172ed..9a9f4acacd 100644
--- a/modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/chm/TestConcurrentHashMapStorageEngine.java
+++ b/modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/impl/TestStorageEngine.java
@@ -15,9 +15,9 @@
  * limitations under the License.
  */
 
-package org.apache.ignite.internal.storage.chm;
+package org.apache.ignite.internal.storage.impl;
 
-import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentSkipListMap;
 import org.apache.ignite.configuration.schemas.table.TableConfiguration;
 import org.apache.ignite.configuration.schemas.table.TablesConfiguration;
 import org.apache.ignite.internal.storage.StorageException;
@@ -25,11 +25,11 @@ import org.apache.ignite.internal.storage.engine.MvTableStorage;
 import org.apache.ignite.internal.storage.engine.StorageEngine;
 
 /**
- * Test implementation of the {@link StorageEngine} based on class {@link ConcurrentHashMap}.
+ * Test implementation of the {@link StorageEngine} based on class {@link ConcurrentSkipListMap}.
  */
-public class TestConcurrentHashMapStorageEngine implements StorageEngine {
+public class TestStorageEngine implements StorageEngine {
     /** Engine name. */
-    public static final String ENGINE_NAME = "test_chm";
+    public static final String ENGINE_NAME = "test";
 
     /** {@inheritDoc} */
     @Override
@@ -50,6 +50,6 @@ public class TestConcurrentHashMapStorageEngine implements StorageEngine {
 
         assert dataStorageName.equals(ENGINE_NAME) : dataStorageName;
 
-        return new TestConcurrentHashMapMvTableStorage(tableCfg, tablesCfg);
+        return new TestMvTableStorage(tableCfg, tablesCfg);
     }
 }
diff --git a/modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/chm/TestConcurrentHashMapStorageEngineDistributedConfigurationModule.java b/modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/impl/TestStorageEngineDistributedConfigurationModule.java
similarity index 75%
rename from modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/chm/TestConcurrentHashMapStorageEngineDistributedConfigurationModule.java
rename to modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/impl/TestStorageEngineDistributedConfigurationModule.java
index 3f89fa697b..aee2f061ca 100644
--- a/modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/chm/TestConcurrentHashMapStorageEngineDistributedConfigurationModule.java
+++ b/modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/impl/TestStorageEngineDistributedConfigurationModule.java
@@ -15,18 +15,18 @@
  * limitations under the License.
  */
 
-package org.apache.ignite.internal.storage.chm;
+package org.apache.ignite.internal.storage.impl;
 
 import java.util.Collection;
 import java.util.List;
 import org.apache.ignite.configuration.annotation.ConfigurationType;
 import org.apache.ignite.internal.configuration.ConfigurationModule;
-import org.apache.ignite.internal.storage.chm.schema.TestConcurrentHashMapDataStorageConfigurationSchema;
+import org.apache.ignite.internal.storage.impl.schema.TestDataStorageConfigurationSchema;
 
 /**
- * Implementation for {@link TestConcurrentHashMapStorageEngine}.
+ * Implementation for {@link TestStorageEngine}.
  */
-public class TestConcurrentHashMapStorageEngineDistributedConfigurationModule implements ConfigurationModule {
+public class TestStorageEngineDistributedConfigurationModule implements ConfigurationModule {
     /** {@inheritDoc} */
     @Override
     public ConfigurationType type() {
@@ -36,6 +36,6 @@ public class TestConcurrentHashMapStorageEngineDistributedConfigurationModule im
     /** {@inheritDoc} */
     @Override
     public Collection<Class<?>> polymorphicSchemaExtensions() {
-        return List.of(TestConcurrentHashMapDataStorageConfigurationSchema.class);
+        return List.of(TestDataStorageConfigurationSchema.class);
     }
 }
diff --git a/modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/chm/schema/TestConcurrentHashMapDataStorageConfigurationSchema.java b/modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/impl/schema/TestDataStorageConfigurationSchema.java
similarity index 70%
rename from modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/chm/schema/TestConcurrentHashMapDataStorageConfigurationSchema.java
rename to modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/impl/schema/TestDataStorageConfigurationSchema.java
index 18503b78a5..29aad9c886 100644
--- a/modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/chm/schema/TestConcurrentHashMapDataStorageConfigurationSchema.java
+++ b/modules/storage-api/src/testFixtures/java/org/apache/ignite/internal/storage/impl/schema/TestDataStorageConfigurationSchema.java
@@ -15,17 +15,17 @@
  * limitations under the License.
  */
 
-package org.apache.ignite.internal.storage.chm.schema;
+package org.apache.ignite.internal.storage.impl.schema;
 
-import static org.apache.ignite.internal.storage.chm.TestConcurrentHashMapStorageEngine.ENGINE_NAME;
+import static org.apache.ignite.internal.storage.impl.TestStorageEngine.ENGINE_NAME;
 
 import org.apache.ignite.configuration.annotation.PolymorphicConfigInstance;
 import org.apache.ignite.configuration.schemas.store.DataStorageConfigurationSchema;
-import org.apache.ignite.internal.storage.chm.TestConcurrentHashMapStorageEngine;
+import org.apache.ignite.internal.storage.impl.TestStorageEngine;
 
 /**
- * Data storage configuration for {@link TestConcurrentHashMapStorageEngine}.
+ * Data storage configuration for {@link TestStorageEngine}.
  */
 @PolymorphicConfigInstance(ENGINE_NAME)
-public class TestConcurrentHashMapDataStorageConfigurationSchema extends DataStorageConfigurationSchema {
+public class TestDataStorageConfigurationSchema extends DataStorageConfigurationSchema {
 }
diff --git a/modules/storage-rocksdb/src/main/java/org/apache/ignite/internal/storage/rocksdb/RocksDbMvPartitionStorage.java b/modules/storage-rocksdb/src/main/java/org/apache/ignite/internal/storage/rocksdb/RocksDbMvPartitionStorage.java
index 83f07b9574..a1a49e5392 100644
--- a/modules/storage-rocksdb/src/main/java/org/apache/ignite/internal/storage/rocksdb/RocksDbMvPartitionStorage.java
+++ b/modules/storage-rocksdb/src/main/java/org/apache/ignite/internal/storage/rocksdb/RocksDbMvPartitionStorage.java
@@ -673,7 +673,7 @@ public class RocksDbMvPartitionStorage implements MvPartitionStorage {
         // Comparison starts from the position of the row id.
         keyByf.position(ROW_ID_OFFSET);
 
-        return rowId.mostSignificantBits() == keyByf.getLong() && rowId.leastSignificantBits() == keyByf.getLong();
+        return rowId.mostSignificantBits() == normalize(keyByf.getLong()) && rowId.leastSignificantBits() == normalize(keyByf.getLong());
     }
 
     @Override
@@ -861,8 +861,8 @@ public class RocksDbMvPartitionStorage implements MvPartitionStorage {
             private ReadResult next;
 
             private void setKeyBuffer(ByteBuffer keyBuf, RowId rowId, HybridTimestamp timestamp) {
-                keyBuf.putLong(ROW_ID_OFFSET, rowId.mostSignificantBits());
-                keyBuf.putLong(ROW_ID_OFFSET + Long.BYTES, rowId.leastSignificantBits());
+                keyBuf.putLong(ROW_ID_OFFSET, normalize(rowId.mostSignificantBits()));
+                keyBuf.putLong(ROW_ID_OFFSET + Long.BYTES, normalize(rowId.leastSignificantBits()));
 
                 putTimestamp(keyBuf.position(ROW_PREFIX_SIZE), timestamp);
 
@@ -918,10 +918,8 @@ public class RocksDbMvPartitionStorage implements MvPartitionStorage {
                     it.key(directBuffer.position(0));
 
                     directBuffer.position(ROW_ID_OFFSET);
-                    long msb = directBuffer.getLong();
-                    long lsb = directBuffer.getLong();
 
-                    var rowId = new RowId(partitionId, msb, lsb);
+                    RowId rowId = getRowId(directBuffer);
 
                     setKeyBuffer(seekKeyBuf, rowId, timestamp);
 
@@ -996,6 +994,10 @@ public class RocksDbMvPartitionStorage implements MvPartitionStorage {
         buf.position(0);
     }
 
+    private RowId getRowId(ByteBuffer readKeyBuf) {
+        return new RowId(partitionId, normalize(readKeyBuf.getLong()), normalize(readKeyBuf.getLong()));
+    }
+
     @Override
     public long rowsCount() {
         try (
@@ -1035,7 +1037,7 @@ public class RocksDbMvPartitionStorage implements MvPartitionStorage {
                 if (!isTombstone(valueBytes, valueHasTxId)) {
                     ByteBuffer keyBuf = ByteBuffer.wrap(keyBytes).order(KEY_BYTE_ORDER).position(ROW_ID_OFFSET);
 
-                    RowId rowId = new RowId(partitionId, keyBuf.getLong(), keyBuf.getLong());
+                    RowId rowId = getRowId(keyBuf);
 
                     BinaryRow binaryRow = wrapValueIntoBinaryRow(valueBytes, valueHasTxId);
 
@@ -1091,12 +1093,23 @@ public class RocksDbMvPartitionStorage implements MvPartitionStorage {
         ByteBuffer keyBuf = HEAP_KEY_BUFFER.get().position(0);
 
         keyBuf.putShort((short) rowId.partitionId());
-        keyBuf.putLong(rowId.mostSignificantBits());
-        keyBuf.putLong(rowId.leastSignificantBits());
+        keyBuf.putLong(normalize(rowId.mostSignificantBits()));
+        keyBuf.putLong(normalize(rowId.leastSignificantBits()));
 
         return keyBuf;
     }
 
+    /**
+     * Converts signed long into a new long value, that when written in Big Endian, will preserve the comparison order if compared
+     * lexicographically as an array of unsigned bytes. For example, values {@code -1} and {@code 0}, when written in BE, will become
+     * {@code 0xFF..F} and {@code 0x00..0}, and lose their ascending order.
+     *
+     * <p/>Flipping the sign bit will change the situation: {@code -1 -> 0x7F..F} and {@code 0 -> 0x80..0}.
+     */
+    private static long normalize(long value) {
+        return value ^ (1L << 63);
+    }
+
     /**
      * Writes a timestamp into a byte buffer, in descending lexicographical bytes order.
      */
diff --git a/modules/table/src/integrationTest/java/org/apache/ignite/distributed/ItTablePersistenceTest.java b/modules/table/src/integrationTest/java/org/apache/ignite/distributed/ItTablePersistenceTest.java
index 01571b2cf5..1466037fec 100644
--- a/modules/table/src/integrationTest/java/org/apache/ignite/distributed/ItTablePersistenceTest.java
+++ b/modules/table/src/integrationTest/java/org/apache/ignite/distributed/ItTablePersistenceTest.java
@@ -38,8 +38,8 @@ import org.apache.ignite.internal.schema.NativeTypes;
 import org.apache.ignite.internal.schema.SchemaDescriptor;
 import org.apache.ignite.internal.schema.row.Row;
 import org.apache.ignite.internal.schema.row.RowAssembler;
-import org.apache.ignite.internal.storage.chm.TestConcurrentHashMapMvPartitionStorage;
 import org.apache.ignite.internal.storage.engine.MvTableStorage;
+import org.apache.ignite.internal.storage.impl.TestMvPartitionStorage;
 import org.apache.ignite.internal.table.distributed.TableTxManagerImpl;
 import org.apache.ignite.internal.table.distributed.raft.PartitionListener;
 import org.apache.ignite.internal.table.distributed.storage.InternalTableImpl;
@@ -214,7 +214,7 @@ public class ItTablePersistenceTest extends ItAbstractListenerSnapshotTest<Parti
 
                     PartitionListener listener = new PartitionListener(
                             UUID.randomUUID(),
-                            new VersionedRowStore(new TestConcurrentHashMapMvPartitionStorage(0), txManager));
+                            new VersionedRowStore(new TestMvPartitionStorage(0), txManager));
 
                     paths.put(listener, workDir);
 
diff --git a/modules/table/src/integrationTest/java/org/apache/ignite/distributed/ItTxDistributedTestSingleNode.java b/modules/table/src/integrationTest/java/org/apache/ignite/distributed/ItTxDistributedTestSingleNode.java
index 20947f34a0..46d1629ca3 100644
--- a/modules/table/src/integrationTest/java/org/apache/ignite/distributed/ItTxDistributedTestSingleNode.java
+++ b/modules/table/src/integrationTest/java/org/apache/ignite/distributed/ItTxDistributedTestSingleNode.java
@@ -40,8 +40,8 @@ import org.apache.ignite.internal.logger.Loggers;
 import org.apache.ignite.internal.raft.Loza;
 import org.apache.ignite.internal.raft.server.RaftGroupOptions;
 import org.apache.ignite.internal.raft.server.impl.JraftServerImpl;
-import org.apache.ignite.internal.storage.chm.TestConcurrentHashMapMvPartitionStorage;
 import org.apache.ignite.internal.storage.engine.MvTableStorage;
+import org.apache.ignite.internal.storage.impl.TestMvPartitionStorage;
 import org.apache.ignite.internal.table.TableImpl;
 import org.apache.ignite.internal.table.TxAbstractTest;
 import org.apache.ignite.internal.table.distributed.TableTxManagerImpl;
@@ -280,7 +280,7 @@ public class ItTxDistributedTestSingleNode extends TxAbstractTest {
                         grpId,
                         partNodes,
                         () -> new PartitionListener(tblId,
-                                new VersionedRowStore(new TestConcurrentHashMapMvPartitionStorage(0), txManagers.get(node))),
+                                new VersionedRowStore(new TestMvPartitionStorage(0), txManagers.get(node))),
                         RaftGroupOptions.defaults()
                 );
             }
diff --git a/modules/table/src/test/java/org/apache/ignite/internal/table/Example.java b/modules/table/src/test/java/org/apache/ignite/internal/table/Example.java
index e839afd0ad..e4d6021cc2 100644
--- a/modules/table/src/test/java/org/apache/ignite/internal/table/Example.java
+++ b/modules/table/src/test/java/org/apache/ignite/internal/table/Example.java
@@ -27,7 +27,7 @@ import org.apache.ignite.binary.BinaryObjects;
 import org.apache.ignite.internal.schema.Column;
 import org.apache.ignite.internal.schema.NativeTypes;
 import org.apache.ignite.internal.schema.SchemaDescriptor;
-import org.apache.ignite.internal.storage.chm.TestConcurrentHashMapMvPartitionStorage;
+import org.apache.ignite.internal.storage.impl.TestMvPartitionStorage;
 import org.apache.ignite.internal.table.distributed.storage.VersionedRowStore;
 import org.apache.ignite.internal.table.impl.DummyInternalTableImpl;
 import org.apache.ignite.internal.tx.impl.HeapLockManager;
@@ -56,7 +56,7 @@ public class Example {
         TxManagerImpl txManager = new TxManagerImpl(null, new HeapLockManager());
 
         return Collections.singletonList(new TableImpl(new DummyInternalTableImpl(new VersionedRowStore(
-                new TestConcurrentHashMapMvPartitionStorage(0), txManager), txManager, new AtomicLong()), null));
+                new TestMvPartitionStorage(0), txManager), txManager, new AtomicLong()), null));
     }
 
     /**
diff --git a/modules/table/src/test/java/org/apache/ignite/internal/table/InteropOperationsTest.java b/modules/table/src/test/java/org/apache/ignite/internal/table/InteropOperationsTest.java
index fbf26abe54..7d2b63ef71 100644
--- a/modules/table/src/test/java/org/apache/ignite/internal/table/InteropOperationsTest.java
+++ b/modules/table/src/test/java/org/apache/ignite/internal/table/InteropOperationsTest.java
@@ -45,7 +45,7 @@ import org.apache.ignite.internal.schema.NativeTypes;
 import org.apache.ignite.internal.schema.SchemaDescriptor;
 import org.apache.ignite.internal.schema.SchemaRegistry;
 import org.apache.ignite.internal.schema.marshaller.RecordMarshallerTest;
-import org.apache.ignite.internal.storage.chm.TestConcurrentHashMapMvPartitionStorage;
+import org.apache.ignite.internal.storage.impl.TestMvPartitionStorage;
 import org.apache.ignite.internal.table.distributed.raft.PartitionListener;
 import org.apache.ignite.internal.table.distributed.storage.VersionedRowStore;
 import org.apache.ignite.internal.table.impl.DummyInternalTableImpl;
@@ -122,7 +122,7 @@ public class InteropOperationsTest {
         AtomicLong raftIndex = new AtomicLong();
 
         INT_TABLE = new DummyInternalTableImpl(
-                new VersionedRowStore(new TestConcurrentHashMapMvPartitionStorage(0), txManager),
+                new VersionedRowStore(new TestMvPartitionStorage(0), txManager),
                 txManager,
                 raftIndex
         );
diff --git a/modules/table/src/test/java/org/apache/ignite/internal/table/KeyValueBinaryViewOperationsTest.java b/modules/table/src/test/java/org/apache/ignite/internal/table/KeyValueBinaryViewOperationsTest.java
index 50d306b85c..b921ca97c1 100644
--- a/modules/table/src/test/java/org/apache/ignite/internal/table/KeyValueBinaryViewOperationsTest.java
+++ b/modules/table/src/test/java/org/apache/ignite/internal/table/KeyValueBinaryViewOperationsTest.java
@@ -31,7 +31,7 @@ import java.util.concurrent.atomic.AtomicLong;
 import org.apache.ignite.internal.schema.Column;
 import org.apache.ignite.internal.schema.NativeTypes;
 import org.apache.ignite.internal.schema.SchemaDescriptor;
-import org.apache.ignite.internal.storage.chm.TestConcurrentHashMapMvPartitionStorage;
+import org.apache.ignite.internal.storage.impl.TestMvPartitionStorage;
 import org.apache.ignite.internal.table.distributed.raft.PartitionListener;
 import org.apache.ignite.internal.table.distributed.storage.VersionedRowStore;
 import org.apache.ignite.internal.table.impl.DummyInternalTableImpl;
@@ -467,7 +467,7 @@ public class KeyValueBinaryViewOperationsTest {
         AtomicLong raftIndex = new AtomicLong();
 
         DummyInternalTableImpl table = new DummyInternalTableImpl(
-                new VersionedRowStore(new TestConcurrentHashMapMvPartitionStorage(0), txManager),
+                new VersionedRowStore(new TestMvPartitionStorage(0), txManager),
                 txManager,
                 raftIndex
         );
diff --git a/modules/table/src/test/java/org/apache/ignite/internal/table/KeyValueViewOperationsSimpleSchemaTest.java b/modules/table/src/test/java/org/apache/ignite/internal/table/KeyValueViewOperationsSimpleSchemaTest.java
index 4c1a9d0ced..5bd7f72d43 100644
--- a/modules/table/src/test/java/org/apache/ignite/internal/table/KeyValueViewOperationsSimpleSchemaTest.java
+++ b/modules/table/src/test/java/org/apache/ignite/internal/table/KeyValueViewOperationsSimpleSchemaTest.java
@@ -40,7 +40,7 @@ import org.apache.ignite.internal.schema.NativeTypeSpec;
 import org.apache.ignite.internal.schema.NativeTypes;
 import org.apache.ignite.internal.schema.SchemaDescriptor;
 import org.apache.ignite.internal.schema.SchemaTestUtils;
-import org.apache.ignite.internal.storage.chm.TestConcurrentHashMapMvPartitionStorage;
+import org.apache.ignite.internal.storage.impl.TestMvPartitionStorage;
 import org.apache.ignite.internal.table.distributed.raft.PartitionListener;
 import org.apache.ignite.internal.table.distributed.storage.VersionedRowStore;
 import org.apache.ignite.internal.table.impl.DummyInternalTableImpl;
@@ -722,7 +722,7 @@ public class KeyValueViewOperationsSimpleSchemaTest {
         AtomicLong raftIndex = new AtomicLong();
 
         DummyInternalTableImpl table = new DummyInternalTableImpl(
-                new VersionedRowStore(new TestConcurrentHashMapMvPartitionStorage(0), txManager),
+                new VersionedRowStore(new TestMvPartitionStorage(0), txManager),
                 txManager,
                 raftIndex
         );
diff --git a/modules/table/src/test/java/org/apache/ignite/internal/table/KeyValueViewOperationsTest.java b/modules/table/src/test/java/org/apache/ignite/internal/table/KeyValueViewOperationsTest.java
index eb487b9fa1..6a1c4de5ee 100644
--- a/modules/table/src/test/java/org/apache/ignite/internal/table/KeyValueViewOperationsTest.java
+++ b/modules/table/src/test/java/org/apache/ignite/internal/table/KeyValueViewOperationsTest.java
@@ -50,7 +50,7 @@ import org.apache.ignite.internal.schema.NativeTypeSpec;
 import org.apache.ignite.internal.schema.NativeTypes;
 import org.apache.ignite.internal.schema.SchemaDescriptor;
 import org.apache.ignite.internal.schema.testobjects.TestObjectWithAllTypes;
-import org.apache.ignite.internal.storage.chm.TestConcurrentHashMapMvPartitionStorage;
+import org.apache.ignite.internal.storage.impl.TestMvPartitionStorage;
 import org.apache.ignite.internal.table.distributed.raft.PartitionListener;
 import org.apache.ignite.internal.table.distributed.storage.VersionedRowStore;
 import org.apache.ignite.internal.table.impl.DummyInternalTableImpl;
@@ -637,7 +637,7 @@ public class KeyValueViewOperationsTest {
         AtomicLong raftIndex = new AtomicLong();
 
         DummyInternalTableImpl table = new DummyInternalTableImpl(
-                new VersionedRowStore(new TestConcurrentHashMapMvPartitionStorage(0), txManager),
+                new VersionedRowStore(new TestMvPartitionStorage(0), txManager),
                 txManager,
                 raftIndex
         );
diff --git a/modules/table/src/test/java/org/apache/ignite/internal/table/RecordBinaryViewOperationsTest.java b/modules/table/src/test/java/org/apache/ignite/internal/table/RecordBinaryViewOperationsTest.java
index 0e8841b15e..ab15c8708f 100644
--- a/modules/table/src/test/java/org/apache/ignite/internal/table/RecordBinaryViewOperationsTest.java
+++ b/modules/table/src/test/java/org/apache/ignite/internal/table/RecordBinaryViewOperationsTest.java
@@ -35,7 +35,7 @@ import org.apache.ignite.internal.schema.InvalidTypeException;
 import org.apache.ignite.internal.schema.NativeTypes;
 import org.apache.ignite.internal.schema.SchemaDescriptor;
 import org.apache.ignite.internal.schema.SchemaMismatchException;
-import org.apache.ignite.internal.storage.chm.TestConcurrentHashMapMvPartitionStorage;
+import org.apache.ignite.internal.storage.impl.TestMvPartitionStorage;
 import org.apache.ignite.internal.table.distributed.raft.PartitionListener;
 import org.apache.ignite.internal.table.distributed.storage.VersionedRowStore;
 import org.apache.ignite.internal.table.impl.DummyInternalTableImpl;
@@ -698,7 +698,7 @@ public class RecordBinaryViewOperationsTest {
         AtomicLong raftIndex = new AtomicLong();
 
         DummyInternalTableImpl table = new DummyInternalTableImpl(
-                new VersionedRowStore(new TestConcurrentHashMapMvPartitionStorage(0), txManager),
+                new VersionedRowStore(new TestMvPartitionStorage(0), txManager),
                 txManager,
                 raftIndex
         );
diff --git a/modules/table/src/test/java/org/apache/ignite/internal/table/RecordViewOperationsTest.java b/modules/table/src/test/java/org/apache/ignite/internal/table/RecordViewOperationsTest.java
index 41f0b9ece8..bec97ef77b 100644
--- a/modules/table/src/test/java/org/apache/ignite/internal/table/RecordViewOperationsTest.java
+++ b/modules/table/src/test/java/org/apache/ignite/internal/table/RecordViewOperationsTest.java
@@ -48,7 +48,7 @@ import org.apache.ignite.internal.schema.NativeTypeSpec;
 import org.apache.ignite.internal.schema.NativeTypes;
 import org.apache.ignite.internal.schema.SchemaDescriptor;
 import org.apache.ignite.internal.schema.testobjects.TestObjectWithAllTypes;
-import org.apache.ignite.internal.storage.chm.TestConcurrentHashMapMvPartitionStorage;
+import org.apache.ignite.internal.storage.impl.TestMvPartitionStorage;
 import org.apache.ignite.internal.table.distributed.raft.PartitionListener;
 import org.apache.ignite.internal.table.distributed.storage.VersionedRowStore;
 import org.apache.ignite.internal.table.impl.DummyInternalTableImpl;
@@ -308,7 +308,7 @@ public class RecordViewOperationsTest {
         AtomicLong raftIndex = new AtomicLong();
 
         DummyInternalTableImpl table = new DummyInternalTableImpl(
-                new VersionedRowStore(new TestConcurrentHashMapMvPartitionStorage(0), txManager),
+                new VersionedRowStore(new TestMvPartitionStorage(0), txManager),
                 txManager,
                 raftIndex
         );
diff --git a/modules/table/src/test/java/org/apache/ignite/internal/table/SchemaValidationTest.java b/modules/table/src/test/java/org/apache/ignite/internal/table/SchemaValidationTest.java
index 629e03a854..356a28e853 100644
--- a/modules/table/src/test/java/org/apache/ignite/internal/table/SchemaValidationTest.java
+++ b/modules/table/src/test/java/org/apache/ignite/internal/table/SchemaValidationTest.java
@@ -28,7 +28,7 @@ import org.apache.ignite.internal.schema.InvalidTypeException;
 import org.apache.ignite.internal.schema.NativeTypes;
 import org.apache.ignite.internal.schema.SchemaDescriptor;
 import org.apache.ignite.internal.schema.SchemaMismatchException;
-import org.apache.ignite.internal.storage.chm.TestConcurrentHashMapMvPartitionStorage;
+import org.apache.ignite.internal.storage.impl.TestMvPartitionStorage;
 import org.apache.ignite.internal.table.distributed.raft.PartitionListener;
 import org.apache.ignite.internal.table.distributed.storage.VersionedRowStore;
 import org.apache.ignite.internal.table.impl.DummyInternalTableImpl;
@@ -68,7 +68,7 @@ public class SchemaValidationTest {
         AtomicLong raftIndex = new AtomicLong();
 
         DummyInternalTableImpl table = new DummyInternalTableImpl(
-                new VersionedRowStore(new TestConcurrentHashMapMvPartitionStorage(0), txManager),
+                new VersionedRowStore(new TestMvPartitionStorage(0), txManager),
                 txManager,
                 raftIndex
         );
diff --git a/modules/table/src/test/java/org/apache/ignite/internal/table/TxLocalTest.java b/modules/table/src/test/java/org/apache/ignite/internal/table/TxLocalTest.java
index a3ae44b8cb..7792bcc74e 100644
--- a/modules/table/src/test/java/org/apache/ignite/internal/table/TxLocalTest.java
+++ b/modules/table/src/test/java/org/apache/ignite/internal/table/TxLocalTest.java
@@ -22,7 +22,7 @@ import static org.mockito.Answers.RETURNS_DEEP_STUBS;
 import java.util.List;
 import java.util.concurrent.atomic.AtomicLong;
 import java.util.function.Function;
-import org.apache.ignite.internal.storage.chm.TestConcurrentHashMapMvPartitionStorage;
+import org.apache.ignite.internal.storage.impl.TestMvPartitionStorage;
 import org.apache.ignite.internal.table.distributed.raft.PartitionListener;
 import org.apache.ignite.internal.table.distributed.storage.VersionedRowStore;
 import org.apache.ignite.internal.table.impl.DummyInternalTableImpl;
@@ -65,7 +65,7 @@ public class TxLocalTest extends TxAbstractTest {
         AtomicLong accountsRaftIndex = new AtomicLong();
 
         DummyInternalTableImpl table = new DummyInternalTableImpl(
-                new VersionedRowStore(new TestConcurrentHashMapMvPartitionStorage(0), txManager),
+                new VersionedRowStore(new TestMvPartitionStorage(0), txManager),
                 txManager,
                 accountsRaftIndex
         );
@@ -74,7 +74,7 @@ public class TxLocalTest extends TxAbstractTest {
 
         AtomicLong customersRaftIndex = new AtomicLong();
         DummyInternalTableImpl table2 = new DummyInternalTableImpl(
-                new VersionedRowStore(new TestConcurrentHashMapMvPartitionStorage(0), txManager),
+                new VersionedRowStore(new TestMvPartitionStorage(0), txManager),
                 txManager,
                 customersRaftIndex
         );
diff --git a/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/raft/PartitionCommandListenerTest.java b/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/raft/PartitionCommandListenerTest.java
index ebc8d243b5..5a6c34506d 100644
--- a/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/raft/PartitionCommandListenerTest.java
+++ b/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/raft/PartitionCommandListenerTest.java
@@ -43,7 +43,7 @@ import org.apache.ignite.internal.schema.NativeTypes;
 import org.apache.ignite.internal.schema.SchemaDescriptor;
 import org.apache.ignite.internal.schema.row.Row;
 import org.apache.ignite.internal.schema.row.RowAssembler;
-import org.apache.ignite.internal.storage.chm.TestConcurrentHashMapMvPartitionStorage;
+import org.apache.ignite.internal.storage.impl.TestMvPartitionStorage;
 import org.apache.ignite.internal.table.distributed.command.DeleteAllCommand;
 import org.apache.ignite.internal.table.distributed.command.DeleteCommand;
 import org.apache.ignite.internal.table.distributed.command.DeleteExactAllCommand;
@@ -108,7 +108,7 @@ public class PartitionCommandListenerTest {
         Mockito.when(clusterService.topologyService().localMember().address()).thenReturn(addr);
 
         versionedRowStore = new VersionedRowStore(
-                new TestConcurrentHashMapMvPartitionStorage(0),
+                new TestMvPartitionStorage(0),
                 new TxManagerImpl(clusterService, new HeapLockManager())
         );