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

amashenkov 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 b5271a3def4 IGNITE-28311 Massive Integer boxing in index lockers 
(#7834)
b5271a3def4 is described below

commit b5271a3def4e0905c501ce5bed20c54b6f658859
Author: Andrew V. Mashenkov <[email protected]>
AuthorDate: Fri Mar 20 18:28:35 2026 +0300

    IGNITE-28311 Massive Integer boxing in index lockers (#7834)
---
 ...xDistributedTestSingleNodeNoCleanupMessage.java |  6 ++--
 .../apache/ignite/internal/table/TableImpl.java    |  9 +++---
 .../ignite/internal/table/TableViewInternal.java   |  4 +--
 .../distributed/TableIndexStoragesSupplier.java    |  4 +--
 .../replicator/PartitionReplicaListener.java       | 23 +++++++++-------
 .../internal/table/distributed/IndexBaseTest.java  | 10 +++----
 .../table/distributed/StorageCleanupTest.java      |  9 +++---
 .../distributed/StorageUpdateHandlerTest.java      |  9 +++---
 .../gc/AbstractGcUpdateHandlerTest.java            |  4 +--
 .../distributed/index/IndexUpdateHandlerTest.java  | 32 ++++++++++++----------
 .../raft/PartitionCommandListenerTest.java         |  3 +-
 .../PartitionReplicaListenerIndexLockingTest.java  | 19 +++++++------
 ...itionReplicaListenerSortedIndexLockingTest.java | 10 +++----
 .../replication/PartitionReplicaListenerTest.java  | 13 +++++++--
 .../ZonePartitionReplicaListenerTest.java          | 13 +++++++--
 .../storage/InternalTableEstimatedSizeTest.java    |  5 ++--
 .../apache/ignite/distributed/ItTxTestCluster.java | 17 +++++++-----
 .../table/impl/DummyInternalTableImpl.java         | 12 ++++----
 18 files changed, 115 insertions(+), 87 deletions(-)

diff --git 
a/modules/table/src/integrationTest/java/org/apache/ignite/distributed/ItTxDistributedTestSingleNodeNoCleanupMessage.java
 
b/modules/table/src/integrationTest/java/org/apache/ignite/distributed/ItTxDistributedTestSingleNodeNoCleanupMessage.java
index f4af6166011..2bf11c528c6 100644
--- 
a/modules/table/src/integrationTest/java/org/apache/ignite/distributed/ItTxDistributedTestSingleNodeNoCleanupMessage.java
+++ 
b/modules/table/src/integrationTest/java/org/apache/ignite/distributed/ItTxDistributedTestSingleNodeNoCleanupMessage.java
@@ -27,8 +27,8 @@ import static org.junit.jupiter.api.Assertions.assertFalse;
 import static org.junit.jupiter.api.Assertions.assertNull;
 import static org.mockito.Mockito.mock;
 
+import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
 import java.util.List;
-import java.util.Map;
 import java.util.UUID;
 import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.CopyOnWriteArrayList;
@@ -177,9 +177,9 @@ public class ItTxDistributedTestSingleNodeNoCleanupMessage 
extends TxAbstractTes
                     Executor scanRequestExecutor,
                     ZonePartitionId replicationGroupId,
                     int tableId,
-                    Supplier<Map<Integer, IndexLocker>> indexesLockers,
+                    Supplier<Int2ObjectMap<IndexLocker>> indexesLockers,
                     Lazy<TableSchemaAwareIndexStorage> pkIndexStorage,
-                    Supplier<Map<Integer, TableSchemaAwareIndexStorage>> 
secondaryIndexStorages,
+                    Supplier<Int2ObjectMap<TableSchemaAwareIndexStorage>> 
secondaryIndexStorages,
                     ClockService clockService,
                     PendingComparableValuesTracker<HybridTimestamp, Void> 
safeTime,
                     TransactionStateResolver transactionStateResolver,
diff --git 
a/modules/table/src/main/java/org/apache/ignite/internal/table/TableImpl.java 
b/modules/table/src/main/java/org/apache/ignite/internal/table/TableImpl.java
index 967e27ef347..3188e9a3721 100644
--- 
a/modules/table/src/main/java/org/apache/ignite/internal/table/TableImpl.java
+++ 
b/modules/table/src/main/java/org/apache/ignite/internal/table/TableImpl.java
@@ -17,8 +17,9 @@
 
 package org.apache.ignite.internal.table;
 
+import it.unimi.dsi.fastutil.ints.Int2ObjectArrayMap;
+import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
@@ -252,7 +253,7 @@ public class TableImpl implements TableViewInternal {
         return () -> {
             var factories = new ArrayList<>(indexWrapperById.values());
 
-            var adapters = new HashMap<Integer, 
TableSchemaAwareIndexStorage>();
+            Int2ObjectMap<TableSchemaAwareIndexStorage> adapters = new 
Int2ObjectArrayMap<>(factories.size());
 
             for (IndexWrapper factory : factories) {
                 TableSchemaAwareIndexStorage storage = 
factory.getStorage(partitionId);
@@ -267,11 +268,11 @@ public class TableImpl implements TableViewInternal {
     }
 
     @Override
-    public Supplier<Map<Integer, IndexLocker>> indexesLockers(int partId) {
+    public Supplier<Int2ObjectMap<IndexLocker>> indexesLockers(int partId) {
         return () -> {
             List<IndexWrapper> factories = new 
ArrayList<>(indexWrapperById.values());
 
-            Map<Integer, IndexLocker> lockers = new 
HashMap<>(factories.size());
+            Int2ObjectMap<IndexLocker> lockers = new 
Int2ObjectArrayMap<>(factories.size());
 
             for (IndexWrapper factory : factories) {
                 IndexLocker locker = factory.getLocker(partId);
diff --git 
a/modules/table/src/main/java/org/apache/ignite/internal/table/TableViewInternal.java
 
b/modules/table/src/main/java/org/apache/ignite/internal/table/TableViewInternal.java
index cc715d1dbbb..e04fe5f29c9 100644
--- 
a/modules/table/src/main/java/org/apache/ignite/internal/table/TableViewInternal.java
+++ 
b/modules/table/src/main/java/org/apache/ignite/internal/table/TableViewInternal.java
@@ -17,7 +17,7 @@
 
 package org.apache.ignite.internal.table;
 
-import java.util.Map;
+import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
 import java.util.function.Supplier;
 import org.apache.ignite.internal.schema.ColumnsExtractor;
 import org.apache.ignite.internal.schema.SchemaRegistry;
@@ -87,7 +87,7 @@ public interface TableViewInternal extends Table {
     TableIndexStoragesSupplier indexStorageAdapters(int partitionId);
 
     /** Returns a supplier of index locker factories for given partition. */
-    Supplier<Map<Integer, IndexLocker>> indexesLockers(int partId);
+    Supplier<Int2ObjectMap<IndexLocker>> indexesLockers(int partId);
 
     /**
      * Registers the index with given id in a table.
diff --git 
a/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/TableIndexStoragesSupplier.java
 
b/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/TableIndexStoragesSupplier.java
index 39c0844846b..ab36cfd0c1b 100644
--- 
a/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/TableIndexStoragesSupplier.java
+++ 
b/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/TableIndexStoragesSupplier.java
@@ -17,7 +17,7 @@
 
 package org.apache.ignite.internal.table.distributed;
 
-import java.util.Map;
+import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
 
 /** Supplier table index storages. */
 @FunctionalInterface
@@ -27,5 +27,5 @@ public interface TableIndexStoragesSupplier {
      *
      * <p>Waits for the primary key index and all other registered indexes to 
be created.
      */
-    Map<Integer, TableSchemaAwareIndexStorage> get();
+    Int2ObjectMap<TableSchemaAwareIndexStorage> get();
 }
diff --git 
a/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/replicator/PartitionReplicaListener.java
 
b/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/replicator/PartitionReplicaListener.java
index 5c7276e53dd..c817d48540d 100644
--- 
a/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/replicator/PartitionReplicaListener.java
+++ 
b/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/replicator/PartitionReplicaListener.java
@@ -62,6 +62,7 @@ import static 
org.apache.ignite.internal.util.IgniteUtils.inBusyLock;
 import static org.apache.ignite.internal.util.IgniteUtils.inBusyLockAsync;
 import static org.apache.ignite.lang.ErrorGroups.Replicator.CURSOR_CLOSE_ERR;
 
+import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
 import java.nio.ByteBuffer;
 import java.util.ArrayList;
 import java.util.BitSet;
@@ -264,7 +265,7 @@ public class PartitionReplicaListener implements 
ReplicaTableProcessor {
     private final Lazy<TableSchemaAwareIndexStorage> pkIndexStorage;
 
     /** Secondary indices. */
-    private final Supplier<Map<Integer, TableSchemaAwareIndexStorage>> 
secondaryIndexStorages;
+    private final Supplier<Int2ObjectMap<TableSchemaAwareIndexStorage>> 
secondaryIndexStorages;
 
     /** Versioned partition storage. */
     private final MvPartitionStorage mvDataStorage;
@@ -293,7 +294,7 @@ public class PartitionReplicaListener implements 
ReplicaTableProcessor {
     /** Runs async scan tasks for effective tail recursion execution (avoid 
deep recursive calls). */
     private final Executor scanRequestExecutor;
 
-    private final Supplier<Map<Integer, IndexLocker>> indexesLockers;
+    private final Supplier<Int2ObjectMap<IndexLocker>> indexesLockers;
 
     private final ConcurrentMap<UUID, TxCleanupReadyState> 
txCleanupReadyFutures = new ConcurrentHashMap<>();
 
@@ -371,9 +372,9 @@ public class PartitionReplicaListener implements 
ReplicaTableProcessor {
             Executor scanRequestExecutor,
             ZonePartitionId replicationGroupId,
             int tableId,
-            Supplier<Map<Integer, IndexLocker>> indexesLockers,
+            Supplier<Int2ObjectMap<IndexLocker>> indexesLockers,
             Lazy<TableSchemaAwareIndexStorage> pkIndexStorage,
-            Supplier<Map<Integer, TableSchemaAwareIndexStorage>> 
secondaryIndexStorages,
+            Supplier<Int2ObjectMap<TableSchemaAwareIndexStorage>> 
secondaryIndexStorages,
             ClockService clockService,
             PendingComparableValuesTracker<HybridTimestamp, Void> safeTime,
             TransactionStateResolver transactionStateResolver,
@@ -636,10 +637,11 @@ public class PartitionReplicaListener implements 
ReplicaTableProcessor {
                 ? nullCompletedFuture()
                 : safeTime.waitFor(readTimestamp);
 
-        if (request.indexToUse() != null) {
-            TableSchemaAwareIndexStorage indexStorage = 
secondaryIndexStorages.get().get(request.indexToUse());
+        Integer indexToUse = request.indexToUse();
+        if (indexToUse != null) {
+            TableSchemaAwareIndexStorage indexStorage = 
secondaryIndexStorages.get().get(indexToUse.intValue());
 
-            throwsIfIndexNotFound(request.indexToUse(), indexStorage);
+            throwsIfIndexNotFound(indexToUse, indexStorage);
 
             if (request.exactKey() != null) {
                 assert request.lowerBoundPrefix() == null && 
request.upperBoundPrefix() == null : "Index lookup doesn't allow bounds.";
@@ -964,10 +966,11 @@ public class PartitionReplicaListener implements 
ReplicaTableProcessor {
      * @return Listener response.
      */
     private CompletableFuture<List<BinaryRow>> 
processScanRetrieveBatchAction(ReadWriteScanRetrieveBatchReplicaRequest 
request) {
-        if (request.indexToUse() != null) {
-            TableSchemaAwareIndexStorage indexStorage = 
secondaryIndexStorages.get().get(request.indexToUse());
+        Integer indexToUse = request.indexToUse();
+        if (indexToUse != null) {
+            TableSchemaAwareIndexStorage indexStorage = 
secondaryIndexStorages.get().get(indexToUse.intValue());
 
-            throwsIfIndexNotFound(request.indexToUse(), indexStorage);
+            throwsIfIndexNotFound(indexToUse, indexStorage);
 
             if (request.exactKey() != null) {
                 assert request.lowerBoundPrefix() == null && 
request.upperBoundPrefix() == null : "Index lookup doesn't allow bounds.";
diff --git 
a/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/IndexBaseTest.java
 
b/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/IndexBaseTest.java
index bcfacaeaece..fb92b18e403 100644
--- 
a/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/IndexBaseTest.java
+++ 
b/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/IndexBaseTest.java
@@ -20,8 +20,8 @@ package org.apache.ignite.internal.table.distributed;
 import static java.util.Collections.singletonMap;
 import static java.util.stream.Collectors.toList;
 
+import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
 import java.util.List;
-import java.util.Map;
 import java.util.UUID;
 import org.apache.ignite.distributed.TestPartitionDataStorage;
 import org.apache.ignite.internal.binarytuple.BinaryTuple;
@@ -161,10 +161,10 @@ public abstract class IndexBaseTest extends 
BaseMvStoragesTest {
 
         storage = new TestMvPartitionStorage(PARTITION_ID);
 
-        Map<Integer, TableSchemaAwareIndexStorage> indexes = Map.of(
-                pkIndexId, pkStorage,
-                sortedIndexId, sortedIndexStorage,
-                hashIndexId, hashIndexStorage
+        Int2ObjectMap<TableSchemaAwareIndexStorage> indexes = 
Int2ObjectMap.ofEntries(
+                Int2ObjectMap.entry(pkIndexId, pkStorage),
+                Int2ObjectMap.entry(sortedIndexId, sortedIndexStorage),
+                Int2ObjectMap.entry(hashIndexId, hashIndexStorage)
         );
 
         TestPartitionDataStorage partitionDataStorage = new 
TestPartitionDataStorage(tableId, PARTITION_ID, storage);
diff --git 
a/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/StorageCleanupTest.java
 
b/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/StorageCleanupTest.java
index bb1c6f6b856..02e9a4a7fed 100644
--- 
a/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/StorageCleanupTest.java
+++ 
b/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/StorageCleanupTest.java
@@ -31,6 +31,7 @@ import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
 
+import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -163,10 +164,10 @@ public class StorageCleanupTest extends 
BaseMvStoragesTest {
 
         storage = spy(new TestMvPartitionStorage(PARTITION_ID));
 
-        Map<Integer, TableSchemaAwareIndexStorage> indexes = Map.of(
-                pkIndexId, pkStorage,
-                sortedIndexId, sortedIndexStorage,
-                hashIndexId, hashIndexStorage
+        Int2ObjectMap<TableSchemaAwareIndexStorage> indexes = 
Int2ObjectMap.ofEntries(
+                Int2ObjectMap.entry(pkIndexId, pkStorage),
+                Int2ObjectMap.entry(sortedIndexId, sortedIndexStorage),
+                Int2ObjectMap.entry(hashIndexId, hashIndexStorage)
         );
 
         TestPartitionDataStorage partitionDataStorage = new 
TestPartitionDataStorage(tableId, PARTITION_ID, storage);
diff --git 
a/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/StorageUpdateHandlerTest.java
 
b/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/StorageUpdateHandlerTest.java
index c4ce7d6d743..1f1ec0ddb89 100644
--- 
a/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/StorageUpdateHandlerTest.java
+++ 
b/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/StorageUpdateHandlerTest.java
@@ -30,6 +30,7 @@ import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
 
+import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
@@ -165,10 +166,10 @@ public class StorageUpdateHandlerTest extends 
BaseMvStoragesTest {
         lock = spy(new LockByRowId());
         storage = spy(new TestMvPartitionStorage(PARTITION_ID, lock, 
shouldReleaseSupplier));
 
-        Map<Integer, TableSchemaAwareIndexStorage> indexes = Map.of(
-                pkIndexId, pkStorage,
-                sortedIndexId, sortedIndexStorage,
-                hashIndexId, hashIndexStorage
+        Int2ObjectMap<TableSchemaAwareIndexStorage> indexes = 
Int2ObjectMap.ofEntries(
+                Int2ObjectMap.entry(pkIndexId, pkStorage),
+                Int2ObjectMap.entry(sortedIndexId, sortedIndexStorage),
+                Int2ObjectMap.entry(hashIndexId, hashIndexStorage)
         );
 
         var partitionDataStorage = new TestPartitionDataStorage(tableId, 
PARTITION_ID, storage);
diff --git 
a/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/gc/AbstractGcUpdateHandlerTest.java
 
b/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/gc/AbstractGcUpdateHandlerTest.java
index 86d94a9e6a9..ba4c15ecff5 100644
--- 
a/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/gc/AbstractGcUpdateHandlerTest.java
+++ 
b/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/gc/AbstractGcUpdateHandlerTest.java
@@ -32,8 +32,8 @@ import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+import it.unimi.dsi.fastutil.ints.Int2ObjectMaps;
 import java.util.List;
-import java.util.Map;
 import java.util.UUID;
 import java.util.function.BooleanSupplier;
 import java.util.stream.IntStream;
@@ -320,7 +320,7 @@ abstract class AbstractGcUpdateHandlerTest extends 
BaseMvStoragesTest {
 
     private static IndexUpdateHandler createIndexUpdateHandler() {
         // Don’t use mocking to avoid performance degradation for concurrent 
tests.
-        return new 
IndexUpdateHandler(DummyInternalTableImpl.createTableIndexStoragesSupplier(Map.of()))
 {
+        return new 
IndexUpdateHandler(DummyInternalTableImpl.createTableIndexStoragesSupplier(Int2ObjectMaps.emptyMap()))
 {
             @Override
             public void tryRemoveFromIndexes(
                     BinaryRow rowToRemove,
diff --git 
a/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/index/IndexUpdateHandlerTest.java
 
b/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/index/IndexUpdateHandlerTest.java
index 86e57ef806e..b4ee7446f4a 100644
--- 
a/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/index/IndexUpdateHandlerTest.java
+++ 
b/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/index/IndexUpdateHandlerTest.java
@@ -30,8 +30,9 @@ import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
+import it.unimi.dsi.fastutil.ints.Int2ObjectMaps;
 import java.util.List;
-import java.util.Map;
 import java.util.stream.Stream;
 import org.apache.ignite.internal.binarytuple.BinaryTuple;
 import org.apache.ignite.internal.schema.BinaryRow;
@@ -56,7 +57,8 @@ public class IndexUpdateHandlerTest extends 
BaseIgniteAbstractTest {
     void testBuildIndex() {
         TableSchemaAwareIndexStorage indexStorage = createIndexStorage();
 
-        IndexUpdateHandler indexUpdateHandler = new 
IndexUpdateHandler(indexStoragesSupplier(Map.of(INDEX_ID, indexStorage)));
+        IndexUpdateHandler indexUpdateHandler = new IndexUpdateHandler(
+                indexStoragesSupplier(Int2ObjectMaps.singleton(INDEX_ID, 
indexStorage)));
 
         BinaryRowAndRowId row0 = new BinaryRowAndRowId(mock(BinaryRow.class), 
new RowId(PARTITION_ID));
         BinaryRowAndRowId row1 = new BinaryRowAndRowId(mock(BinaryRow.class), 
new RowId(PARTITION_ID));
@@ -86,7 +88,7 @@ public class IndexUpdateHandlerTest extends 
BaseIgniteAbstractTest {
 
         doThrow(StorageDestroyedException.class).when(indexStorage).put(any(), 
any());
 
-        var indexUpdateHandler = new 
IndexUpdateHandler(indexStoragesSupplier(Map.of(INDEX_ID, indexStorage)));
+        var indexUpdateHandler = new 
IndexUpdateHandler(indexStoragesSupplier(Int2ObjectMaps.singleton(INDEX_ID, 
indexStorage)));
 
         var row = mock(BinaryRow.class);
         var rowId = new RowId(PARTITION_ID);
@@ -102,7 +104,7 @@ public class IndexUpdateHandlerTest extends 
BaseIgniteAbstractTest {
 
         doThrow(StorageException.class).when(indexStorage).put(any(), any());
 
-        var indexUpdateHandler = new 
IndexUpdateHandler(indexStoragesSupplier(Map.of(INDEX_ID, indexStorage)));
+        var indexUpdateHandler = new 
IndexUpdateHandler(indexStoragesSupplier(Int2ObjectMaps.singleton(INDEX_ID, 
indexStorage)));
 
         assertThrows(
                 StorageException.class,
@@ -116,7 +118,7 @@ public class IndexUpdateHandlerTest extends 
BaseIgniteAbstractTest {
 
         doThrow(StorageDestroyedException.class).when(indexStorage).put(any(), 
any());
 
-        var indexUpdateHandler = new 
IndexUpdateHandler(indexStoragesSupplier(Map.of(INDEX_ID, indexStorage)));
+        var indexUpdateHandler = new 
IndexUpdateHandler(indexStoragesSupplier(Int2ObjectMaps.singleton(INDEX_ID, 
indexStorage)));
 
         var row = mock(BinaryRow.class);
         var rowId = new RowId(PARTITION_ID);
@@ -133,7 +135,7 @@ public class IndexUpdateHandlerTest extends 
BaseIgniteAbstractTest {
 
         doThrow(StorageException.class).when(indexStorage).put(any(), any());
 
-        var indexUpdateHandler = new 
IndexUpdateHandler(indexStoragesSupplier(Map.of(INDEX_ID, indexStorage)));
+        var indexUpdateHandler = new 
IndexUpdateHandler(indexStoragesSupplier(Int2ObjectMaps.singleton(INDEX_ID, 
indexStorage)));
 
         assertThrows(StorageException.class, () -> 
indexUpdateHandler.addToIndex(mock(BinaryRow.class), new RowId(PARTITION_ID), 
INDEX_ID));
     }
@@ -146,7 +148,7 @@ public class IndexUpdateHandlerTest extends 
BaseIgniteAbstractTest {
         doThrow(StorageDestroyedException.class).when(indexStorage).put(any(), 
any());
         
doThrow(StorageDestroyedException.class).when(storage).setNextRowIdToBuild(any());
 
-        var indexUpdateHandler = new 
IndexUpdateHandler(indexStoragesSupplier(Map.of(INDEX_ID, indexStorage)));
+        var indexUpdateHandler = new 
IndexUpdateHandler(indexStoragesSupplier(Int2ObjectMaps.singleton(INDEX_ID, 
indexStorage)));
 
         var row = mock(BinaryRow.class);
         var rowId = new RowId(PARTITION_ID);
@@ -165,7 +167,7 @@ public class IndexUpdateHandlerTest extends 
BaseIgniteAbstractTest {
 
         doThrow(StorageException.class).when(indexStorage).put(any(), any());
 
-        var indexUpdateHandler = new 
IndexUpdateHandler(indexStoragesSupplier(Map.of(INDEX_ID, indexStorage)));
+        var indexUpdateHandler = new 
IndexUpdateHandler(indexStoragesSupplier(Int2ObjectMaps.singleton(INDEX_ID, 
indexStorage)));
 
         var rowId = new RowId(PARTITION_ID);
         var binaryRowAndRowId = new BinaryRowAndRowId(mock(BinaryRow.class), 
rowId);
@@ -187,7 +189,7 @@ public class IndexUpdateHandlerTest extends 
BaseIgniteAbstractTest {
 
         
doThrow(StorageDestroyedException.class).when(storage).getNextRowIdToBuild();
 
-        var indexUpdateHandler = new 
IndexUpdateHandler(indexStoragesSupplier(Map.of(INDEX_ID, indexStorage)));
+        var indexUpdateHandler = new 
IndexUpdateHandler(indexStoragesSupplier(Int2ObjectMaps.singleton(INDEX_ID, 
indexStorage)));
 
         assertNull(indexUpdateHandler.getNextRowIdToBuildIndex(INDEX_ID));
         assertNull(indexUpdateHandler.getNextRowIdToBuildIndex(INDEX_ID + 1));
@@ -202,7 +204,7 @@ public class IndexUpdateHandlerTest extends 
BaseIgniteAbstractTest {
 
         doThrow(StorageException.class).when(storage).getNextRowIdToBuild();
 
-        var indexUpdateHandler = new 
IndexUpdateHandler(indexStoragesSupplier(Map.of(INDEX_ID, indexStorage)));
+        var indexUpdateHandler = new 
IndexUpdateHandler(indexStoragesSupplier(Int2ObjectMaps.singleton(INDEX_ID, 
indexStorage)));
 
         assertThrows(StorageException.class, () -> 
indexUpdateHandler.getNextRowIdToBuildIndex(INDEX_ID));
     }
@@ -216,7 +218,7 @@ public class IndexUpdateHandlerTest extends 
BaseIgniteAbstractTest {
 
         var rowId = new RowId(PARTITION_ID);
 
-        var indexUpdateHandler = new 
IndexUpdateHandler(indexStoragesSupplier(Map.of(INDEX_ID, indexStorage)));
+        var indexUpdateHandler = new 
IndexUpdateHandler(indexStoragesSupplier(Int2ObjectMaps.singleton(INDEX_ID, 
indexStorage)));
 
         assertDoesNotThrow(() -> 
indexUpdateHandler.setNextRowIdToBuildIndex(INDEX_ID, rowId));
         assertDoesNotThrow(() -> 
indexUpdateHandler.setNextRowIdToBuildIndex(INDEX_ID + 1, rowId));
@@ -233,7 +235,7 @@ public class IndexUpdateHandlerTest extends 
BaseIgniteAbstractTest {
 
         var rowId = new RowId(PARTITION_ID);
 
-        var indexUpdateHandler = new 
IndexUpdateHandler(indexStoragesSupplier(Map.of(INDEX_ID, indexStorage)));
+        var indexUpdateHandler = new 
IndexUpdateHandler(indexStoragesSupplier(Int2ObjectMaps.singleton(INDEX_ID, 
indexStorage)));
 
         assertThrows(StorageException.class, () -> 
indexUpdateHandler.setNextRowIdToBuildIndex(INDEX_ID, rowId));
     }
@@ -246,7 +248,7 @@ public class IndexUpdateHandlerTest extends 
BaseIgniteAbstractTest {
         
doThrow(StorageDestroyedException.class).when(indexStorage).remove(any(), 
any());
         
when(columnsExtractor.extractColumns(any())).thenReturn(mock(BinaryTuple.class));
 
-        var indexUpdateHandler = new 
IndexUpdateHandler(indexStoragesSupplier(Map.of(INDEX_ID, indexStorage)));
+        var indexUpdateHandler = new 
IndexUpdateHandler(indexStoragesSupplier(Int2ObjectMaps.singleton(INDEX_ID, 
indexStorage)));
 
         var row = mock(BinaryRow.class);
         var rowId = new RowId(PARTITION_ID);
@@ -264,7 +266,7 @@ public class IndexUpdateHandlerTest extends 
BaseIgniteAbstractTest {
         doThrow(StorageException.class).when(indexStorage).remove(any(), 
any());
         
when(columnsExtractor.extractColumns(any())).thenReturn(mock(BinaryTuple.class));
 
-        var indexUpdateHandler = new 
IndexUpdateHandler(indexStoragesSupplier(Map.of(INDEX_ID, indexStorage)));
+        var indexUpdateHandler = new 
IndexUpdateHandler(indexStoragesSupplier(Int2ObjectMaps.singleton(INDEX_ID, 
indexStorage)));
 
         var row = mock(BinaryRow.class);
         var rowId = new RowId(PARTITION_ID);
@@ -289,7 +291,7 @@ public class IndexUpdateHandlerTest extends 
BaseIgniteAbstractTest {
         return indexStorage;
     }
 
-    private static TableIndexStoragesSupplier 
indexStoragesSupplier(Map<Integer, TableSchemaAwareIndexStorage> 
indexStorageById) {
+    private static TableIndexStoragesSupplier 
indexStoragesSupplier(Int2ObjectMap<TableSchemaAwareIndexStorage> 
indexStorageById) {
         return () -> indexStorageById;
     }
 }
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 613b5361dda..4d6b06cdeba 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
@@ -46,6 +46,7 @@ import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+import it.unimi.dsi.fastutil.ints.Int2ObjectMaps;
 import java.nio.ByteBuffer;
 import java.util.ArrayList;
 import java.util.Collections;
@@ -220,7 +221,7 @@ public class PartitionCommandListenerTest extends 
BaseIgniteAbstractTest {
         int indexId = pkStorage.id();
 
         indexUpdateHandler = spy(new IndexUpdateHandler(
-                
DummyInternalTableImpl.createTableIndexStoragesSupplier(Map.of(indexId, 
pkStorage))
+                
DummyInternalTableImpl.createTableIndexStoragesSupplier(Int2ObjectMaps.singleton(indexId,
 pkStorage))
         ));
 
         storageUpdateHandler = spy(new StorageUpdateHandler(
diff --git 
a/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/replication/PartitionReplicaListenerIndexLockingTest.java
 
b/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/replication/PartitionReplicaListenerIndexLockingTest.java
index 91859e8034f..8dc3e18b68f 100644
--- 
a/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/replication/PartitionReplicaListenerIndexLockingTest.java
+++ 
b/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/replication/PartitionReplicaListenerIndexLockingTest.java
@@ -46,11 +46,12 @@ import static org.mockito.Mockito.doAnswer;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
+import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
+import it.unimi.dsi.fastutil.ints.Int2ObjectMaps;
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Locale;
-import java.util.Map;
 import java.util.Objects;
 import java.util.UUID;
 import java.util.concurrent.CompletableFuture;
@@ -228,7 +229,7 @@ public class PartitionReplicaListenerIndexLockingTest 
extends IgniteAbstractTest
         PendingComparableValuesTracker<HybridTimestamp, Void> safeTime = new 
PendingComparableValuesTracker<>(CLOCK.now());
 
         IndexUpdateHandler indexUpdateHandler = new IndexUpdateHandler(
-                
DummyInternalTableImpl.createTableIndexStoragesSupplier(Map.of(pkStorage.get().id(),
 pkStorage.get()))
+                
DummyInternalTableImpl.createTableIndexStoragesSupplier(Int2ObjectMaps.singleton(pkStorage.get().id(),
 pkStorage.get()))
         );
 
         TestPartitionDataStorage partitionDataStorage = new 
TestPartitionDataStorage(TABLE_ID, PART_ID, TEST_MV_PARTITION_STORAGE);
@@ -259,15 +260,15 @@ public class PartitionReplicaListenerIndexLockingTest 
extends IgniteAbstractTest
                 Runnable::run,
                 new ZonePartitionId(ZONE_ID, PART_ID),
                 TABLE_ID,
-                () -> Map.of(
-                        pkLocker.id(), pkLocker,
-                        hashIndexLocker.id(), hashIndexLocker,
-                        sortedIndexLocker.id(), sortedIndexLocker
+                () -> Int2ObjectMap.ofEntries(
+                        Int2ObjectMap.entry(pkLocker.id(), pkLocker),
+                        Int2ObjectMap.entry(hashIndexLocker.id(), 
hashIndexLocker),
+                        Int2ObjectMap.entry(sortedIndexLocker.id(), 
sortedIndexLocker)
                 ),
                 pkStorage,
-                () -> Map.of(
-                        sortedIndexLocker.id(), sortedIndexStorage,
-                        hashIndexLocker.id(), hashIndexStorage
+                () -> Int2ObjectMap.ofEntries(
+                        Int2ObjectMap.entry(sortedIndexLocker.id(), 
sortedIndexStorage),
+                        Int2ObjectMap.entry(hashIndexLocker.id(), 
hashIndexStorage)
                 ),
                 CLOCK_SERVICE,
                 safeTime,
diff --git 
a/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/replication/PartitionReplicaListenerSortedIndexLockingTest.java
 
b/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/replication/PartitionReplicaListenerSortedIndexLockingTest.java
index 056847698ed..1da1c1da85e 100644
--- 
a/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/replication/PartitionReplicaListenerSortedIndexLockingTest.java
+++ 
b/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/replication/PartitionReplicaListenerSortedIndexLockingTest.java
@@ -47,11 +47,11 @@ import static org.mockito.Mockito.doAnswer;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
+import it.unimi.dsi.fastutil.ints.Int2ObjectMaps;
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Locale;
-import java.util.Map;
 import java.util.Objects;
 import java.util.UUID;
 import java.util.concurrent.CompletableFuture;
@@ -201,7 +201,7 @@ public class PartitionReplicaListenerSortedIndexLockingTest 
extends IgniteAbstra
         PendingComparableValuesTracker<HybridTimestamp, Void> safeTime = new 
PendingComparableValuesTracker<>(CLOCK.now());
 
         IndexUpdateHandler indexUpdateHandler = new IndexUpdateHandler(
-                
DummyInternalTableImpl.createTableIndexStoragesSupplier(Map.of(pkStorage.get().id(),
 pkStorage.get()))
+                
DummyInternalTableImpl.createTableIndexStoragesSupplier(Int2ObjectMaps.singleton(pkStorage.get().id(),
 pkStorage.get()))
         );
 
         TestPartitionDataStorage partitionDataStorage = new 
TestPartitionDataStorage(TABLE_ID, PART_ID, TEST_MV_PARTITION_STORAGE);
@@ -234,11 +234,9 @@ public class 
PartitionReplicaListenerSortedIndexLockingTest extends IgniteAbstra
                 Runnable::run,
                 new ZonePartitionId(ZONE_ID, PART_ID),
                 TABLE_ID,
-                () -> Map.of(
-                        pkLocker.id(), pkLocker
-                ),
+                () -> Int2ObjectMaps.singleton(pkLocker.id(), pkLocker),
                 pkStorage,
-                () -> Map.of(),
+                Int2ObjectMaps::emptyMap,
                 CLOCK_SERVICE,
                 safeTime,
                 mock(TransactionStateResolver.class),
diff --git 
a/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/replication/PartitionReplicaListenerTest.java
 
b/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/replication/PartitionReplicaListenerTest.java
index 1ec87c9b292..3f40636db2e 100644
--- 
a/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/replication/PartitionReplicaListenerTest.java
+++ 
b/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/replication/PartitionReplicaListenerTest.java
@@ -92,6 +92,8 @@ import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
+import it.unimi.dsi.fastutil.ints.Int2ObjectMaps;
 import it.unimi.dsi.fastutil.ints.IntList;
 import java.nio.ByteBuffer;
 import java.util.Arrays;
@@ -591,7 +593,7 @@ public class PartitionReplicaListenerTest extends 
IgniteAbstractTest {
         IndexLocker hashIndexLocker = new HashIndexLocker(hashIndexId, false, 
lockManager, row2Tuple);
 
         IndexUpdateHandler indexUpdateHandler = new IndexUpdateHandler(
-                
DummyInternalTableImpl.createTableIndexStoragesSupplier(Map.of(pkStorage().id(),
 pkStorage()))
+                
DummyInternalTableImpl.createTableIndexStoragesSupplier(Int2ObjectMaps.singleton(pkStorage().id(),
 pkStorage()))
         );
 
         CatalogIndexDescriptor indexDescriptor = 
mock(CatalogIndexDescriptor.class);
@@ -665,9 +667,14 @@ public class PartitionReplicaListenerTest extends 
IgniteAbstractTest {
                 Runnable::run,
                 new ZonePartitionId(tableDescriptor.zoneId(), PART_ID),
                 TABLE_ID,
-                () -> Map.of(pkLocker.id(), pkLocker, sortedIndexId, 
sortedIndexLocker, hashIndexId, hashIndexLocker),
+                () -> Int2ObjectMap.ofEntries(
+                        Int2ObjectMap.entry(pkLocker.id(), pkLocker),
+                        Int2ObjectMap.entry(sortedIndexId, sortedIndexLocker),
+                        Int2ObjectMap.entry(hashIndexId, hashIndexLocker)),
                 pkStorageSupplier,
-                () -> Map.of(sortedIndexId, sortedIndexStorage, hashIndexId, 
hashIndexStorage),
+                () -> Int2ObjectMap.ofEntries(
+                        Int2ObjectMap.entry(sortedIndexId, sortedIndexStorage),
+                        Int2ObjectMap.entry(hashIndexId, hashIndexStorage)),
                 clockService,
                 safeTimeClock,
                 transactionStateResolver,
diff --git 
a/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/replication/ZonePartitionReplicaListenerTest.java
 
b/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/replication/ZonePartitionReplicaListenerTest.java
index 1ffffb15ac5..b0ddc123a86 100644
--- 
a/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/replication/ZonePartitionReplicaListenerTest.java
+++ 
b/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/replication/ZonePartitionReplicaListenerTest.java
@@ -71,6 +71,8 @@ import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
+import it.unimi.dsi.fastutil.ints.Int2ObjectMaps;
 import it.unimi.dsi.fastutil.ints.IntList;
 import java.nio.ByteBuffer;
 import java.util.ArrayList;
@@ -559,7 +561,7 @@ public class ZonePartitionReplicaListenerTest extends 
IgniteAbstractTest {
         IndexLocker hashIndexLocker = new HashIndexLocker(hashIndexId, false, 
lockManager, row2Tuple);
 
         IndexUpdateHandler indexUpdateHandler = new IndexUpdateHandler(
-                
DummyInternalTableImpl.createTableIndexStoragesSupplier(Map.of(pkStorage().id(),
 pkStorage()))
+                
DummyInternalTableImpl.createTableIndexStoragesSupplier(Int2ObjectMaps.singleton(pkStorage().id(),
 pkStorage()))
         );
 
         pkIndexDescriptor = mock(CatalogIndexDescriptor.class);
@@ -668,9 +670,14 @@ public class ZonePartitionReplicaListenerTest extends 
IgniteAbstractTest {
                 Runnable::run,
                 new ZonePartitionId(tableDescriptor.zoneId(), PART_ID),
                 TABLE_ID,
-                () -> Map.of(pkLocker.id(), pkLocker, sortedIndexId, 
sortedIndexLocker, hashIndexId, hashIndexLocker),
+                () -> Int2ObjectMap.ofEntries(
+                        Int2ObjectMap.entry(pkLocker.id(), pkLocker),
+                        Int2ObjectMap.entry(sortedIndexId, sortedIndexLocker),
+                        Int2ObjectMap.entry(hashIndexId, hashIndexLocker)),
                 pkStorageSupplier,
-                () -> Map.of(sortedIndexId, sortedIndexStorage, hashIndexId, 
hashIndexStorage),
+                () -> Int2ObjectMap.ofEntries(
+                        Int2ObjectMap.entry(sortedIndexId, sortedIndexStorage),
+                        Int2ObjectMap.entry(hashIndexId, hashIndexStorage)),
                 clockService,
                 safeTimeTracker,
                 transactionStateResolver,
diff --git 
a/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/storage/InternalTableEstimatedSizeTest.java
 
b/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/storage/InternalTableEstimatedSizeTest.java
index 12797dd12f6..c900bfdb91e 100644
--- 
a/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/storage/InternalTableEstimatedSizeTest.java
+++ 
b/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/storage/InternalTableEstimatedSizeTest.java
@@ -42,6 +42,7 @@ import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+import it.unimi.dsi.fastutil.ints.Int2ObjectMaps;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.HashMap;
@@ -330,9 +331,9 @@ public class InternalTableEstimatedSizeTest extends 
BaseIgniteAbstractTest {
                 ForkJoinPool.commonPool(),
                 new ZonePartitionId(ZONE_ID, partId),
                 TABLE_ID,
-                Map::of,
+                Int2ObjectMaps::emptyMap,
                 new Lazy<>(() -> null),
-                Map::of,
+                Int2ObjectMaps::emptyMap,
                 clockService,
                 new 
PendingComparableValuesTracker<>(HybridTimestamp.MIN_VALUE),
                 transactionStateResolver,
diff --git 
a/modules/table/src/testFixtures/java/org/apache/ignite/distributed/ItTxTestCluster.java
 
b/modules/table/src/testFixtures/java/org/apache/ignite/distributed/ItTxTestCluster.java
index 000c34dc4ec..9e440becf70 100644
--- 
a/modules/table/src/testFixtures/java/org/apache/ignite/distributed/ItTxTestCluster.java
+++ 
b/modules/table/src/testFixtures/java/org/apache/ignite/distributed/ItTxTestCluster.java
@@ -43,6 +43,8 @@ import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.when;
 
+import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
+import it.unimi.dsi.fastutil.ints.Int2ObjectMaps;
 import java.nio.file.Path;
 import java.util.ArrayList;
 import java.util.Collection;
@@ -776,7 +778,8 @@ public class ItTxTestCluster {
                 PartitionDataStorage partitionDataStorage = new 
TestPartitionDataStorage(tableId, partId, mvPartStorage);
 
                 IndexUpdateHandler indexUpdateHandler = new IndexUpdateHandler(
-                        
DummyInternalTableImpl.createTableIndexStoragesSupplier(Map.of(pkStorage.get().id(),
 pkStorage.get()))
+                        
DummyInternalTableImpl.createTableIndexStoragesSupplier(
+                                Int2ObjectMaps.singleton(pkStorage.get().id(), 
pkStorage.get()))
                 );
 
                 StorageUpdateHandler storageUpdateHandler = new 
StorageUpdateHandler(
@@ -814,9 +817,9 @@ public class ItTxTestCluster {
                                 txManagers.get(assignment),
                                 new ZonePartitionId(predefinedZoneId, partId),
                                 tableId,
-                                () -> Map.of(pkLocker.id(), pkLocker),
+                                () -> Int2ObjectMaps.singleton(pkLocker.id(), 
pkLocker),
                                 pkStorage,
-                                Map::of,
+                                Int2ObjectMaps::emptyMap,
                                 clockServices.get(assignment),
                                 safeTime,
                                 txStateStorage,
@@ -951,9 +954,9 @@ public class ItTxTestCluster {
             TxManager txManager,
             ZonePartitionId zonePartitionId,
             int tableId,
-            Supplier<Map<Integer, IndexLocker>> indexesLockers,
+            Supplier<Int2ObjectMap<IndexLocker>> indexesLockers,
             Lazy<TableSchemaAwareIndexStorage> pkIndexStorage,
-            Supplier<Map<Integer, TableSchemaAwareIndexStorage>> 
secondaryIndexStorages,
+            Supplier<Int2ObjectMap<TableSchemaAwareIndexStorage>> 
secondaryIndexStorages,
             ClockService clockService,
             PendingComparableValuesTracker<HybridTimestamp, Void> safeTime,
             TxStatePartitionStorage txStatePartitionStorage,
@@ -1067,9 +1070,9 @@ public class ItTxTestCluster {
             Executor scanRequestExecutor,
             ZonePartitionId replicationGroupId,
             int tableId,
-            Supplier<Map<Integer, IndexLocker>> indexesLockers,
+            Supplier<Int2ObjectMap<IndexLocker>> indexesLockers,
             Lazy<TableSchemaAwareIndexStorage> pkIndexStorage,
-            Supplier<Map<Integer, TableSchemaAwareIndexStorage>> 
secondaryIndexStorages,
+            Supplier<Int2ObjectMap<TableSchemaAwareIndexStorage>> 
secondaryIndexStorages,
             ClockService clockService,
             PendingComparableValuesTracker<HybridTimestamp, Void> safeTime,
             TransactionStateResolver transactionStateResolver,
diff --git 
a/modules/table/src/testFixtures/java/org/apache/ignite/internal/table/impl/DummyInternalTableImpl.java
 
b/modules/table/src/testFixtures/java/org/apache/ignite/internal/table/impl/DummyInternalTableImpl.java
index d44eb9f8286..428cc88459a 100644
--- 
a/modules/table/src/testFixtures/java/org/apache/ignite/internal/table/impl/DummyInternalTableImpl.java
+++ 
b/modules/table/src/testFixtures/java/org/apache/ignite/internal/table/impl/DummyInternalTableImpl.java
@@ -33,10 +33,11 @@ import static org.mockito.Mockito.lenient;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
+import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
+import it.unimi.dsi.fastutil.ints.Int2ObjectMaps;
 import java.io.Serializable;
 import java.util.Collections;
 import java.util.List;
-import java.util.Map;
 import java.util.UUID;
 import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.Executor;
@@ -443,7 +444,8 @@ public class DummyInternalTableImpl extends 
InternalTableImpl {
         safeTime = new SafeTimeValuesTracker(HybridTimestamp.MIN_VALUE);
 
         PartitionDataStorage partitionDataStorage = new 
TestPartitionDataStorage(tableId, PART_ID, mvPartStorage);
-        TableIndexStoragesSupplier indexes = 
createTableIndexStoragesSupplier(Map.of(pkStorage.get().id(), pkStorage.get()));
+        TableIndexStoragesSupplier indexes = createTableIndexStoragesSupplier(
+                Int2ObjectMaps.singleton(pkStorage.get().id(), 
pkStorage.get()));
 
         IndexUpdateHandler indexUpdateHandler = new 
IndexUpdateHandler(indexes);
 
@@ -484,9 +486,9 @@ public class DummyInternalTableImpl extends 
InternalTableImpl {
                 Runnable::run,
                 zonePartitionId,
                 tableId,
-                () -> Map.of(pkLocker.id(), pkLocker),
+                () -> Int2ObjectMaps.singleton(pkLocker.id(), pkLocker),
                 pkStorage,
-                Map::of,
+                Int2ObjectMaps::emptyMap,
                 CLOCK_SERVICE,
                 safeTime,
                 transactionStateResolver,
@@ -740,7 +742,7 @@ public class DummyInternalTableImpl extends 
InternalTableImpl {
      *
      * @param indexes Index storage by ID.
      */
-    public static TableIndexStoragesSupplier 
createTableIndexStoragesSupplier(Map<Integer, TableSchemaAwareIndexStorage> 
indexes) {
+    public static TableIndexStoragesSupplier 
createTableIndexStoragesSupplier(Int2ObjectMap<TableSchemaAwareIndexStorage> 
indexes) {
         return () -> indexes;
     }
 


Reply via email to