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())
);