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

apolovtsev 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 8aa7016620 IGNITE-21811 Cleanup in RocksDbClusterStateStorage (#3441)
8aa7016620 is described below

commit 8aa7016620c0c3d9d6420a4f0e4be238a89fed94
Author: Alexander Polovtcev <[email protected]>
AuthorDate: Wed Mar 20 09:44:10 2024 +0200

    IGNITE-21811 Cleanup in RocksDbClusterStateStorage (#3441)
---
 .../management/raft/CmgStorageException.java}      | 13 ++--
 .../raft/RocksDbClusterStateStorage.java           | 72 ++++++++++++++--------
 .../AbstractClusterStateStorageManagerTest.java    | 21 +++----
 .../raft/AbstractClusterStateStorageTest.java      | 38 +++++++-----
 .../RocksDbClusterStateStorageManagerTest.java     |  4 +-
 .../raft/RocksDbClusterStateStorageTest.java       |  4 +-
 .../raft/TestClusterStateStorageManagerTest.java   |  2 +-
 .../raft/TestClusterStateStorageTest.java          |  2 +-
 .../internal/cluster/management/MockNode.java      |  2 +-
 .../runner/app/ItIgniteNodeRestartTest.java        |  6 +-
 .../org/apache/ignite/internal/app/IgniteImpl.java |  2 +-
 11 files changed, 95 insertions(+), 71 deletions(-)

diff --git 
a/modules/cluster-management/src/test/java/org/apache/ignite/internal/cluster/management/raft/RocksDbClusterStateStorageTest.java
 
b/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/raft/CmgStorageException.java
similarity index 69%
copy from 
modules/cluster-management/src/test/java/org/apache/ignite/internal/cluster/management/raft/RocksDbClusterStateStorageTest.java
copy to 
modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/raft/CmgStorageException.java
index 904f8b7018..208cda88f0 100644
--- 
a/modules/cluster-management/src/test/java/org/apache/ignite/internal/cluster/management/raft/RocksDbClusterStateStorageTest.java
+++ 
b/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/raft/CmgStorageException.java
@@ -17,12 +17,15 @@
 
 package org.apache.ignite.internal.cluster.management.raft;
 
+import static org.apache.ignite.lang.ErrorGroups.Common.INTERNAL_ERR;
+
+import org.apache.ignite.internal.lang.IgniteInternalException;
+
 /**
- * Test class for {@link RocksDbClusterStateStorage}.
+ * Exception used by {@link RocksDbClusterStateStorage} to signal about errors.
  */
-public class RocksDbClusterStateStorageTest extends 
AbstractClusterStateStorageTest {
-    @Override
-    ClusterStateStorage createStorage() {
-        return new RocksDbClusterStateStorage(workDir);
+public class CmgStorageException extends IgniteInternalException {
+    public CmgStorageException(String msg, Throwable cause) {
+        super(INTERNAL_ERR, msg, cause);
     }
 }
diff --git 
a/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/raft/RocksDbClusterStateStorage.java
 
b/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/raft/RocksDbClusterStateStorage.java
index fe3c40a344..b92fa6ce80 100644
--- 
a/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/raft/RocksDbClusterStateStorage.java
+++ 
b/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/raft/RocksDbClusterStateStorage.java
@@ -29,11 +29,13 @@ import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 import java.util.concurrent.TimeUnit;
 import java.util.function.BiFunction;
-import org.apache.ignite.internal.lang.IgniteInternalException;
+import org.apache.ignite.internal.logger.IgniteLogger;
+import org.apache.ignite.internal.logger.Loggers;
 import org.apache.ignite.internal.rocksdb.ColumnFamily;
 import org.apache.ignite.internal.rocksdb.RocksIteratorAdapter;
 import org.apache.ignite.internal.rocksdb.RocksUtils;
 import org.apache.ignite.internal.rocksdb.snapshot.RocksSnapshotManager;
+import org.apache.ignite.internal.thread.NamedThreadFactory;
 import org.apache.ignite.internal.util.Cursor;
 import org.apache.ignite.internal.util.IgniteUtils;
 import org.jetbrains.annotations.Nullable;
@@ -50,15 +52,16 @@ import org.rocksdb.WriteOptions;
  * {@link ClusterStateStorage} implementation based on RocksDB.
  */
 public class RocksDbClusterStateStorage implements ClusterStateStorage {
+    private static final IgniteLogger LOG = 
Loggers.forClass(RocksDbClusterStateStorage.class);
+
     /** Thread-pool for snapshot operations execution. */
-    private final ExecutorService snapshotExecutor = 
Executors.newFixedThreadPool(2);
+    private final ExecutorService snapshotExecutor;
 
     /** Path to the rocksdb database. */
     private final Path dbPath;
 
     /** RockDB options. */
-    @Nullable
-    private volatile Options options;
+    private final Options options = new Options().setCreateIfMissing(true);
 
     /** RocksDb instance. */
     @Nullable
@@ -68,25 +71,38 @@ public class RocksDbClusterStateStorage implements 
ClusterStateStorage {
 
     private final Object snapshotRestoreLock = new Object();
 
-    public RocksDbClusterStateStorage(Path dbPath) {
+    /**
+     * Creates a new instance.
+     *
+     * @param dbPath Path to the database.
+     * @param nodeName Ignite node name.
+     */
+    public RocksDbClusterStateStorage(Path dbPath, String nodeName) {
         this.dbPath = dbPath;
+        this.snapshotExecutor = Executors.newSingleThreadExecutor(
+                NamedThreadFactory.create(nodeName, 
"cluster-state-snapshot-executor", LOG)
+        );
     }
 
     @Override
     public CompletableFuture<Void> start() {
-        options = new Options().setCreateIfMissing(true);
+        init();
+
+        return nullCompletedFuture();
+    }
 
+    private void init() {
         try {
-            db = RocksDB.open(options, dbPath.toString());
+            RocksDB db = RocksDB.open(options, dbPath.toString());
 
             ColumnFamily defaultCf = ColumnFamily.wrap(db, 
db.getDefaultColumnFamily());
 
             snapshotManager = new RocksSnapshotManager(db, 
List.of(fullRange(defaultCf)), snapshotExecutor);
+
+            this.db = db;
         } catch (RocksDBException e) {
-            throw new IgniteInternalException("Failed to start the storage", 
e);
+            throw new CmgStorageException("Failed to start the storage", e);
         }
-
-        return nullCompletedFuture();
     }
 
     @Override
@@ -94,7 +110,7 @@ public class RocksDbClusterStateStorage implements 
ClusterStateStorage {
         try {
             return db.get(key);
         } catch (RocksDBException e) {
-            throw new IgniteInternalException("Unable to get data from Rocks 
DB", e);
+            throw new CmgStorageException("Unable to get data from Rocks DB", 
e);
         }
     }
 
@@ -103,7 +119,7 @@ public class RocksDbClusterStateStorage implements 
ClusterStateStorage {
         try {
             db.put(key, value);
         } catch (RocksDBException e) {
-            throw new IgniteInternalException("Unable to put data into Rocks 
DB", e);
+            throw new CmgStorageException("Unable to put data into Rocks DB", 
e);
         }
     }
 
@@ -123,7 +139,7 @@ public class RocksDbClusterStateStorage implements 
ClusterStateStorage {
 
             db.write(options, batch);
         } catch (RocksDBException e) {
-            throw new IgniteInternalException("Unable to replace data in Rocks 
DB", e);
+            throw new CmgStorageException("Unable to replace data in Rocks 
DB", e);
         }
     }
 
@@ -132,7 +148,7 @@ public class RocksDbClusterStateStorage implements 
ClusterStateStorage {
         try {
             db.delete(key);
         } catch (RocksDBException e) {
-            throw new IgniteInternalException("Unable to remove data from 
Rocks DB", e);
+            throw new CmgStorageException("Unable to remove data from Rocks 
DB", e);
         }
     }
 
@@ -148,7 +164,7 @@ public class RocksDbClusterStateStorage implements 
ClusterStateStorage {
 
             db.write(options, batch);
         } catch (RocksDBException e) {
-            throw new IgniteInternalException("Unable to remove data from 
Rocks DB", e);
+            throw new CmgStorageException("Unable to remove data from Rocks 
DB", e);
         }
     }
 
@@ -187,9 +203,9 @@ public class RocksDbClusterStateStorage implements 
ClusterStateStorage {
     @Override
     public void restoreSnapshot(Path snapshotPath) {
         synchronized (snapshotRestoreLock) {
-            destroy();
+            destroyDb();
 
-            start();
+            init();
 
             snapshotManager.restoreSnapshot(snapshotPath);
         }
@@ -197,23 +213,27 @@ public class RocksDbClusterStateStorage implements 
ClusterStateStorage {
 
     @Override
     public void destroy() {
-        try (Options options = new Options()) {
-            stop();
+        IgniteUtils.shutdownAndAwaitTermination(snapshotExecutor, 10, 
TimeUnit.SECONDS);
 
-            RocksDB.destroyDB(dbPath.toString(), options);
-        } catch (Exception e) {
-            throw new IgniteInternalException("Unable to clear RocksDB 
instance", e);
-        }
+        destroyDb();
+
+        options.close();
     }
 
     @Override
     public void stop() {
         IgniteUtils.shutdownAndAwaitTermination(snapshotExecutor, 10, 
TimeUnit.SECONDS);
 
-        RocksUtils.closeAll(options, db);
+        RocksUtils.closeAll(db, options);
+    }
 
-        db = null;
+    private void destroyDb() {
+        db.close();
 
-        options = null;
+        try {
+            RocksDB.destroyDB(dbPath.toString(), options);
+        } catch (RocksDBException e) {
+            throw new CmgStorageException("Unable to stop the RocksDB 
instance", e);
+        }
     }
 }
diff --git 
a/modules/cluster-management/src/test/java/org/apache/ignite/internal/cluster/management/raft/AbstractClusterStateStorageManagerTest.java
 
b/modules/cluster-management/src/test/java/org/apache/ignite/internal/cluster/management/raft/AbstractClusterStateStorageManagerTest.java
index 2972285cab..ee523e6bbd 100644
--- 
a/modules/cluster-management/src/test/java/org/apache/ignite/internal/cluster/management/raft/AbstractClusterStateStorageManagerTest.java
+++ 
b/modules/cluster-management/src/test/java/org/apache/ignite/internal/cluster/management/raft/AbstractClusterStateStorageManagerTest.java
@@ -18,6 +18,7 @@
 package org.apache.ignite.internal.cluster.management.raft;
 
 import static 
org.apache.ignite.internal.cluster.management.ClusterTag.clusterTag;
+import static 
org.apache.ignite.internal.testframework.IgniteTestUtils.testNodeName;
 import static 
org.apache.ignite.internal.testframework.matchers.CompletableFutureMatcher.willCompleteSuccessfully;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.Matchers.containsInAnyOrder;
@@ -33,35 +34,29 @@ import java.util.Set;
 import org.apache.ignite.internal.cluster.management.ClusterTag;
 import 
org.apache.ignite.internal.cluster.management.network.messages.CmgMessagesFactory;
 import org.apache.ignite.internal.cluster.management.topology.api.LogicalNode;
-import org.apache.ignite.internal.network.ClusterNodeImpl;
 import org.apache.ignite.internal.properties.IgniteProductVersion;
-import org.apache.ignite.internal.testframework.WorkDirectory;
-import org.apache.ignite.internal.testframework.WorkDirectoryExtension;
+import org.apache.ignite.internal.testframework.IgniteAbstractTest;
 import org.apache.ignite.network.NetworkAddress;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.extension.ExtendWith;
+import org.junit.jupiter.api.TestInfo;
 
 /**
  * Tests for {@link RaftStorageManager}.
  */
-@ExtendWith(WorkDirectoryExtension.class)
-public abstract class AbstractClusterStateStorageManagerTest {
+public abstract class AbstractClusterStateStorageManagerTest extends 
IgniteAbstractTest {
     private RaftStorageManager storageManager;
 
     private ClusterStateStorage storage;
 
     private final CmgMessagesFactory msgFactory = new CmgMessagesFactory();
 
-    @WorkDirectory
-    Path workDir;
-
-    abstract ClusterStateStorage clusterStateStorage();
+    abstract ClusterStateStorage clusterStateStorage(String nodeName);
 
     @BeforeEach
-    void setUp() {
-        storage = clusterStateStorage();
+    void setUp(TestInfo testInfo) {
+        storage = clusterStateStorage(testNodeName(testInfo, 0));
 
         storage.start();
 
@@ -137,8 +132,6 @@ public abstract class 
AbstractClusterStateStorageManagerTest {
 
         storageManager.putClusterState(newState);
 
-        new ClusterNodeImpl("nonono", "nononono", new 
NetworkAddress("localhost", 123));
-
         storageManager.restoreSnapshot(snapshotDir);
 
         assertThat(storageManager.getClusterState(), is(equalTo(state)));
diff --git 
a/modules/cluster-management/src/test/java/org/apache/ignite/internal/cluster/management/raft/AbstractClusterStateStorageTest.java
 
b/modules/cluster-management/src/test/java/org/apache/ignite/internal/cluster/management/raft/AbstractClusterStateStorageTest.java
index 2e0a5b5631..7d28ee8d60 100644
--- 
a/modules/cluster-management/src/test/java/org/apache/ignite/internal/cluster/management/raft/AbstractClusterStateStorageTest.java
+++ 
b/modules/cluster-management/src/test/java/org/apache/ignite/internal/cluster/management/raft/AbstractClusterStateStorageTest.java
@@ -19,7 +19,8 @@ package org.apache.ignite.internal.cluster.management.raft;
 
 import static java.nio.charset.StandardCharsets.UTF_8;
 import static java.util.stream.Collectors.toList;
-import static 
org.apache.ignite.internal.testframework.matchers.CompletableFutureMatcher.willBe;
+import static 
org.apache.ignite.internal.testframework.IgniteTestUtils.testNodeName;
+import static 
org.apache.ignite.internal.testframework.matchers.CompletableFutureMatcher.willCompleteSuccessfully;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.Matchers.contains;
 import static org.hamcrest.Matchers.containsInAnyOrder;
@@ -34,29 +35,24 @@ import java.nio.file.Path;
 import java.util.List;
 import java.util.concurrent.CompletableFuture;
 import org.apache.ignite.internal.rocksdb.RocksUtils;
-import org.apache.ignite.internal.testframework.WorkDirectory;
-import org.apache.ignite.internal.testframework.WorkDirectoryExtension;
+import org.apache.ignite.internal.testframework.IgniteAbstractTest;
 import org.apache.ignite.internal.util.Cursor;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.extension.ExtendWith;
+import org.junit.jupiter.api.TestInfo;
 
 /**
  * Base class for testing {@link ClusterStateStorage} implementations.
  */
-@ExtendWith(WorkDirectoryExtension.class)
-public abstract class AbstractClusterStateStorageTest {
-    @WorkDirectory
-    protected Path workDir;
-
+public abstract class AbstractClusterStateStorageTest extends 
IgniteAbstractTest {
     private ClusterStateStorage storage;
 
-    abstract ClusterStateStorage createStorage();
+    abstract ClusterStateStorage createStorage(String nodeName);
 
     @BeforeEach
-    void setUp() {
-        storage = createStorage();
+    void setUp(TestInfo testInfo) {
+        storage = createStorage(testNodeName(testInfo, 0));
 
         storage.start();
     }
@@ -280,7 +276,7 @@ public abstract class AbstractClusterStateStorageTest {
      * Tests the {@link ClusterStateStorage#destroy()} method.
      */
     @Test
-    void testDestroy() {
+    void testDestroy(TestInfo testInfo) {
         byte[] key = "key".getBytes(UTF_8);
 
         byte[] value = "value".getBytes(UTF_8);
@@ -291,6 +287,8 @@ public abstract class AbstractClusterStateStorageTest {
 
         storage.destroy();
 
+        storage = createStorage(testNodeName(testInfo, 0));
+
         storage.start();
 
         assertThat(storage.get(key), is(nullValue()));
@@ -304,7 +302,7 @@ public abstract class AbstractClusterStateStorageTest {
      * Tests creating and restoring snapshots.
      */
     @Test
-    void testSnapshot() throws IOException {
+    void testSnapshot(TestInfo testInfo) throws IOException {
         Path snapshotDir = workDir.resolve("snapshot");
 
         Files.createDirectory(snapshotDir);
@@ -318,10 +316,12 @@ public abstract class AbstractClusterStateStorageTest {
         storage.put(key1, value1);
         storage.put(key2, value2);
 
-        assertThat(storage.snapshot(snapshotDir), 
willBe(nullValue(Void.class)));
+        assertThat(storage.snapshot(snapshotDir), willCompleteSuccessfully());
 
         storage.destroy();
 
+        storage = createStorage(testNodeName(testInfo, 0));
+
         storage.start();
 
         assertThat(storage.get(key1), is(nullValue()));
@@ -331,6 +331,14 @@ public abstract class AbstractClusterStateStorageTest {
 
         assertThat(storage.get(key1), is(value1));
         assertThat(storage.get(key2), is(value2));
+
+        // Try restoring a snapshot a second time.
+        assertThat(storage.snapshot(snapshotDir), willCompleteSuccessfully());
+
+        storage.restoreSnapshot(snapshotDir);
+
+        assertThat(storage.get(key1), is(value1));
+        assertThat(storage.get(key2), is(value2));
     }
 
     /**
diff --git 
a/modules/cluster-management/src/test/java/org/apache/ignite/internal/cluster/management/raft/RocksDbClusterStateStorageManagerTest.java
 
b/modules/cluster-management/src/test/java/org/apache/ignite/internal/cluster/management/raft/RocksDbClusterStateStorageManagerTest.java
index 7da6769ee9..f9066c09ce 100644
--- 
a/modules/cluster-management/src/test/java/org/apache/ignite/internal/cluster/management/raft/RocksDbClusterStateStorageManagerTest.java
+++ 
b/modules/cluster-management/src/test/java/org/apache/ignite/internal/cluster/management/raft/RocksDbClusterStateStorageManagerTest.java
@@ -22,7 +22,7 @@ package org.apache.ignite.internal.cluster.management.raft;
  */
 public class RocksDbClusterStateStorageManagerTest extends 
AbstractClusterStateStorageManagerTest {
     @Override
-    ClusterStateStorage clusterStateStorage() {
-        return new RocksDbClusterStateStorage(workDir);
+    ClusterStateStorage clusterStateStorage(String nodeName) {
+        return new RocksDbClusterStateStorage(workDir, nodeName);
     }
 }
diff --git 
a/modules/cluster-management/src/test/java/org/apache/ignite/internal/cluster/management/raft/RocksDbClusterStateStorageTest.java
 
b/modules/cluster-management/src/test/java/org/apache/ignite/internal/cluster/management/raft/RocksDbClusterStateStorageTest.java
index 904f8b7018..bdfe114497 100644
--- 
a/modules/cluster-management/src/test/java/org/apache/ignite/internal/cluster/management/raft/RocksDbClusterStateStorageTest.java
+++ 
b/modules/cluster-management/src/test/java/org/apache/ignite/internal/cluster/management/raft/RocksDbClusterStateStorageTest.java
@@ -22,7 +22,7 @@ package org.apache.ignite.internal.cluster.management.raft;
  */
 public class RocksDbClusterStateStorageTest extends 
AbstractClusterStateStorageTest {
     @Override
-    ClusterStateStorage createStorage() {
-        return new RocksDbClusterStateStorage(workDir);
+    ClusterStateStorage createStorage(String nodeName) {
+        return new RocksDbClusterStateStorage(workDir, nodeName);
     }
 }
diff --git 
a/modules/cluster-management/src/test/java/org/apache/ignite/internal/cluster/management/raft/TestClusterStateStorageManagerTest.java
 
b/modules/cluster-management/src/test/java/org/apache/ignite/internal/cluster/management/raft/TestClusterStateStorageManagerTest.java
index 9991d95cd9..801c8e81ba 100644
--- 
a/modules/cluster-management/src/test/java/org/apache/ignite/internal/cluster/management/raft/TestClusterStateStorageManagerTest.java
+++ 
b/modules/cluster-management/src/test/java/org/apache/ignite/internal/cluster/management/raft/TestClusterStateStorageManagerTest.java
@@ -22,7 +22,7 @@ package org.apache.ignite.internal.cluster.management.raft;
  */
 public class TestClusterStateStorageManagerTest extends 
AbstractClusterStateStorageManagerTest {
     @Override
-    ClusterStateStorage clusterStateStorage() {
+    ClusterStateStorage clusterStateStorage(String nodeName) {
         return new TestClusterStateStorage();
     }
 }
diff --git 
a/modules/cluster-management/src/test/java/org/apache/ignite/internal/cluster/management/raft/TestClusterStateStorageTest.java
 
b/modules/cluster-management/src/test/java/org/apache/ignite/internal/cluster/management/raft/TestClusterStateStorageTest.java
index 79c222fd5b..f96606a2fe 100644
--- 
a/modules/cluster-management/src/test/java/org/apache/ignite/internal/cluster/management/raft/TestClusterStateStorageTest.java
+++ 
b/modules/cluster-management/src/test/java/org/apache/ignite/internal/cluster/management/raft/TestClusterStateStorageTest.java
@@ -22,7 +22,7 @@ package org.apache.ignite.internal.cluster.management.raft;
  */
 public class TestClusterStateStorageTest extends 
AbstractClusterStateStorageTest {
     @Override
-    ClusterStateStorage createStorage() {
+    ClusterStateStorage createStorage(String nodeName) {
         return new TestClusterStateStorage();
     }
 }
diff --git 
a/modules/cluster-management/src/testFixtures/java/org/apache/ignite/internal/cluster/management/MockNode.java
 
b/modules/cluster-management/src/testFixtures/java/org/apache/ignite/internal/cluster/management/MockNode.java
index 8db7c05a7f..5652010d7e 100644
--- 
a/modules/cluster-management/src/testFixtures/java/org/apache/ignite/internal/cluster/management/MockNode.java
+++ 
b/modules/cluster-management/src/testFixtures/java/org/apache/ignite/internal/cluster/management/MockNode.java
@@ -109,7 +109,7 @@ public class MockNode {
 
         Loza raftManager = new Loza(clusterService, raftConfiguration, 
workDir, new HybridClockImpl());
 
-        var clusterStateStorage = new 
RocksDbClusterStateStorage(workDir.resolve("cmg"));
+        var clusterStateStorage = new 
RocksDbClusterStateStorage(workDir.resolve("cmg"), clusterService.nodeName());
 
         var logicalTopologyService = new 
LogicalTopologyImpl(clusterStateStorage);
 
diff --git 
a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ItIgniteNodeRestartTest.java
 
b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ItIgniteNodeRestartTest.java
index 19f7f0fb77..a536f060d4 100644
--- 
a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ItIgniteNodeRestartTest.java
+++ 
b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ItIgniteNodeRestartTest.java
@@ -253,12 +253,12 @@ public class ItIgniteNodeRestartTest extends 
BaseIgniteRestartTest {
     /**
      * Interceptor of {@link MetaStorageManager#invoke(Condition, Collection, 
Collection)}.
      */
-    private Map<Integer, InvokeInterceptor> metaStorageInvokeInterceptorByNode 
= new ConcurrentHashMap<>();
+    private final Map<Integer, InvokeInterceptor> 
metaStorageInvokeInterceptorByNode = new ConcurrentHashMap<>();
 
     /**
      * Mocks the data nodes returned by {@link 
DistributionZoneManager#dataNodes(long, int, int)} method on different nodes.
      */
-    private Map<Integer, Supplier<CompletableFuture<Set<String>>>> 
dataNodesMockByNode = new ConcurrentHashMap<>();
+    private final Map<Integer, Supplier<CompletableFuture<Set<String>>>> 
dataNodesMockByNode = new ConcurrentHashMap<>();
 
     @BeforeEach
     public void beforeTest() {
@@ -341,7 +341,7 @@ public class ItIgniteNodeRestartTest extends 
BaseIgniteRestartTest {
 
         var raftMgr = new Loza(clusterSvc, raftConfiguration, dir, 
hybridClock, raftGroupEventsClientListener);
 
-        var clusterStateStorage = new 
RocksDbClusterStateStorage(dir.resolve("cmg"));
+        var clusterStateStorage = new 
RocksDbClusterStateStorage(dir.resolve("cmg"), name);
 
         var logicalTopology = new LogicalTopologyImpl(clusterStateStorage);
 
diff --git 
a/modules/runner/src/main/java/org/apache/ignite/internal/app/IgniteImpl.java 
b/modules/runner/src/main/java/org/apache/ignite/internal/app/IgniteImpl.java
index 09d3b3c5f3..1627d80b6b 100644
--- 
a/modules/runner/src/main/java/org/apache/ignite/internal/app/IgniteImpl.java
+++ 
b/modules/runner/src/main/java/org/apache/ignite/internal/app/IgniteImpl.java
@@ -494,7 +494,7 @@ public class IgniteImpl implements Ignite {
         );
 
         // TODO: IGNITE-16841 - use common RocksDB instance to store cluster 
state as well.
-        clusterStateStorage = new 
RocksDbClusterStateStorage(workDir.resolve(CMG_DB_PATH));
+        clusterStateStorage = new 
RocksDbClusterStateStorage(workDir.resolve(CMG_DB_PATH), name);
 
         var logicalTopology = new LogicalTopologyImpl(clusterStateStorage);
 

Reply via email to