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