You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by sa...@apache.org on 2023/11/29 13:38:31 UTC
(ignite-3) branch storage-profiles updated: IGNITE-20564 Storage profile configurations (#2897)
This is an automated email from the ASF dual-hosted git repository.
sanpwc pushed a commit to branch storage-profiles
in repository https://gitbox.apache.org/repos/asf/ignite-3.git
The following commit(s) were added to refs/heads/storage-profiles by this push:
new 7748175d03 IGNITE-20564 Storage profile configurations (#2897)
7748175d03 is described below
commit 7748175d036b57f2f2a753b7dddfbcd92c2fbe40
Author: Kirill Gusakov <kg...@gmail.com>
AuthorDate: Wed Nov 29 16:38:25 2023 +0300
IGNITE-20564 Storage profile configurations (#2897)
---
.../repl/executor/ItIgnitePicocliCommandsTest.java | 2 +-
modules/cluster-management/build.gradle | 2 ++
.../cluster/management/NodeAttributes.java | 5 ++--
.../management/NodeAttributesCollector.java | 15 ++++++------
.../ClusterManagementConfigurationModule.java | 2 +-
.../management/raft/CmgRaftGroupListener.java | 2 +-
.../raft/commands/ClusterNodeMessage.java | 3 ++-
.../management/topology/api/LogicalNode.java | 25 ++++++++++---------
.../management/BaseItClusterManagementTest.java | 8 +++----
.../internal/cluster/management/MockNode.java | 4 ++--
modules/metastorage/build.gradle | 1 +
.../ItMetaStorageMultipleNodesAbstractTest.java | 6 ++---
.../metastorage/impl/ItMetaStorageWatchTest.java | 6 ++---
modules/page-memory/build.gradle | 1 +
modules/runner/build.gradle | 2 ++
.../internal/compute/ItLogicalTopologyTest.java | 17 ++++++-------
.../ItDistributedConfigurationPropertiesTest.java | 6 ++---
.../ItDistributedConfigurationStorageTest.java | 6 ++---
.../runner/app/ItIgniteNodeRestartTest.java | 6 ++---
.../org/apache/ignite/internal/app/IgniteImpl.java | 4 ++--
.../sql/engine/framework/TestBuilders.java | 2 +-
modules/storage-configuration/README.md | 1 +
.../build.gradle} | 28 ++++++++++------------
.../DummyStorageEngineConfigurationSchema.java} | 20 +++++-----------
.../DummyStorageProfileConfigurationSchema.java} | 20 +++++-----------
.../StorageEngineConfigurationSchema.java} | 22 +++++++----------
.../StorageProfileConfigurationSchema.java | 19 ++++++++-------
.../StoragesConfigurationModule.java} | 19 +++++++++++----
.../StoragesConfigurationSchema.java} | 23 ++++++++++++------
modules/storage-rocksdb/build.gradle | 1 +
.../internal/systemview/SystemViewManagerTest.java | 2 +-
modules/table/build.gradle | 1 +
.../rebalance/ItRebalanceDistributedTest.java | 16 +++++++++----
settings.gradle | 2 ++
34 files changed, 161 insertions(+), 138 deletions(-)
diff --git a/modules/cli/src/integrationTest/java/org/apache/ignite/internal/cli/core/repl/executor/ItIgnitePicocliCommandsTest.java b/modules/cli/src/integrationTest/java/org/apache/ignite/internal/cli/core/repl/executor/ItIgnitePicocliCommandsTest.java
index 0549a0d7c8..33c21ebeb6 100644
--- a/modules/cli/src/integrationTest/java/org/apache/ignite/internal/cli/core/repl/executor/ItIgnitePicocliCommandsTest.java
+++ b/modules/cli/src/integrationTest/java/org/apache/ignite/internal/cli/core/repl/executor/ItIgnitePicocliCommandsTest.java
@@ -275,7 +275,7 @@ public class ItIgnitePicocliCommandsTest extends CliCommandTestInitializedIntegr
"aimem",
"aipersist",
"rocksDb",
- "storageProfiles"
+ "storages"
)
);
}
diff --git a/modules/cluster-management/build.gradle b/modules/cluster-management/build.gradle
index 071979b27a..eb9cd45867 100644
--- a/modules/cluster-management/build.gradle
+++ b/modules/cluster-management/build.gradle
@@ -37,6 +37,7 @@ dependencies {
implementation project(':ignite-raft-api')
implementation project(':ignite-vault')
implementation project(':ignite-rocksdb-common')
+ implementation project(':ignite-storage-configuration')
implementation project(':ignite-security')
implementation libs.jetbrains.annotations
implementation libs.fastutil.core
@@ -54,6 +55,7 @@ dependencies {
testFixturesImplementation project(':ignite-core')
testFixturesImplementation project(':ignite-raft')
testFixturesImplementation project(':ignite-raft-api')
+ testFixturesImplementation project(':ignite-storage-configuration')
testFixturesImplementation project(':ignite-vault')
testFixturesImplementation project(':ignite-security')
testFixturesImplementation testFixtures(project(':ignite-core'))
diff --git a/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/NodeAttributes.java b/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/NodeAttributes.java
index 71e556d2d2..19024eacb8 100644
--- a/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/NodeAttributes.java
+++ b/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/NodeAttributes.java
@@ -17,6 +17,7 @@
package org.apache.ignite.internal.cluster.management;
+import java.util.List;
import java.util.Map;
import org.apache.ignite.internal.cluster.management.topology.api.LogicalNode;
@@ -39,7 +40,7 @@ public interface NodeAttributes {
Map<String, String> systemAttributes();
/**
- * TODO: add java doc https://issues.apache.org/jira/browse/IGNITE-20564
+ * List of storage profiles, which the node supports.
*/
- Map<String, String> storageProfiles();
+ List<String> storageProfiles();
}
diff --git a/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/NodeAttributesCollector.java b/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/NodeAttributesCollector.java
index 8cdf0d8647..2fde99e3a9 100644
--- a/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/NodeAttributesCollector.java
+++ b/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/NodeAttributesCollector.java
@@ -25,8 +25,8 @@ import java.util.stream.Collectors;
import org.apache.ignite.configuration.NamedListView;
import org.apache.ignite.internal.cluster.management.configuration.NodeAttributeView;
import org.apache.ignite.internal.cluster.management.configuration.NodeAttributesConfiguration;
-import org.apache.ignite.internal.cluster.management.configuration.StorageProfileView;
-import org.apache.ignite.internal.cluster.management.configuration.StorageProfilesConfiguration;
+import org.apache.ignite.internal.storage.configurations.StorageProfileView;
+import org.apache.ignite.internal.storage.configurations.StoragesConfiguration;
/**
* This class is responsible for retrieving local node attributes
@@ -37,11 +37,11 @@ public class NodeAttributesCollector implements NodeAttributes {
private final NodeAttributesConfiguration nodeAttributesConfiguration;
- private final StorageProfilesConfiguration storageProfilesConfiguration;
+ private final StoragesConfiguration storageProfilesConfiguration;
public NodeAttributesCollector(
NodeAttributesConfiguration nodeAttributesConfiguration,
- StorageProfilesConfiguration storageProfilesConfiguration
+ StoragesConfiguration storageProfilesConfiguration
) {
this.nodeAttributesConfiguration = nodeAttributesConfiguration;
this.storageProfilesConfiguration = storageProfilesConfiguration;
@@ -65,11 +65,12 @@ public class NodeAttributesCollector implements NodeAttributes {
/** {@inheritDoc} */
@Override
- public Map<String, String> storageProfiles() {
- NamedListView<StorageProfileView> storageProfiles = storageProfilesConfiguration.storageProfiles().value();
+ public List<String> storageProfiles() {
+ NamedListView<StorageProfileView> storageProfiles = storageProfilesConfiguration.profiles().value();
return storageProfiles.stream()
- .collect(Collectors.toUnmodifiableMap(StorageProfileView::name, StorageProfileView::engine));
+ .map(StorageProfileView::name)
+ .collect(Collectors.toList());
}
/** {@inheritDoc} */
diff --git a/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/configuration/ClusterManagementConfigurationModule.java b/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/configuration/ClusterManagementConfigurationModule.java
index a2eb334271..03abb39af8 100644
--- a/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/configuration/ClusterManagementConfigurationModule.java
+++ b/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/configuration/ClusterManagementConfigurationModule.java
@@ -36,6 +36,6 @@ public class ClusterManagementConfigurationModule implements ConfigurationModule
@Override
public Collection<RootKey<?, ?>> rootKeys() {
- return List.of(ClusterManagementConfiguration.KEY, NodeAttributesConfiguration.KEY, StorageProfilesConfiguration.KEY);
+ return List.of(ClusterManagementConfiguration.KEY, NodeAttributesConfiguration.KEY);
}
}
diff --git a/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/raft/CmgRaftGroupListener.java b/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/raft/CmgRaftGroupListener.java
index 7ee6868cfe..dbc24580bc 100644
--- a/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/raft/CmgRaftGroupListener.java
+++ b/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/raft/CmgRaftGroupListener.java
@@ -229,7 +229,7 @@ public class CmgRaftGroupListener implements RaftGroupListener {
// Nodes will be removed from a topology, so it is safe to set nodeAttributes to the default value
Set<LogicalNode> logicalNodes = nodes.stream()
- .map(n -> new LogicalNode(n, Collections.emptyMap(), Collections.emptyMap(), Collections.emptyMap()))
+ .map(n -> new LogicalNode(n, Collections.emptyMap(), Collections.emptyMap(), Collections.emptyList()))
.collect(Collectors.toSet());
logicalTopology.removeNodes(logicalNodes);
diff --git a/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/raft/commands/ClusterNodeMessage.java b/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/raft/commands/ClusterNodeMessage.java
index bc257dfde4..3d969580d6 100644
--- a/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/raft/commands/ClusterNodeMessage.java
+++ b/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/raft/commands/ClusterNodeMessage.java
@@ -18,6 +18,7 @@
package org.apache.ignite.internal.cluster.management.raft.commands;
import java.io.Serializable;
+import java.util.List;
import java.util.Map;
import org.apache.ignite.internal.cluster.management.network.messages.CmgMessageGroup;
import org.apache.ignite.network.ClusterNode;
@@ -51,5 +52,5 @@ public interface ClusterNodeMessage extends NetworkMessage, Serializable {
Map<String, String> systemAttributes();
@Nullable
- Map<String, String> storageProfiles();
+ List<String> storageProfiles();
}
diff --git a/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/topology/api/LogicalNode.java b/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/topology/api/LogicalNode.java
index 530e71e5a2..31fe7711f8 100644
--- a/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/topology/api/LogicalNode.java
+++ b/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/topology/api/LogicalNode.java
@@ -18,6 +18,7 @@
package org.apache.ignite.internal.cluster.management.topology.api;
import java.util.Collections;
+import java.util.List;
import java.util.Map;
import org.apache.ignite.internal.tostring.IgniteToStringInclude;
import org.apache.ignite.internal.tostring.S;
@@ -41,9 +42,11 @@ public class LogicalNode extends ClusterNodeImpl {
@IgniteToStringInclude
private final Map<String, String> systemAttributes;
- // TODO: add javadoc https://issues.apache.org/jira/browse/IGNITE-20564
+ /**
+ * List of storage profiles, which the node supports.
+ */
@IgniteToStringInclude
- private final Map<String, String> storageProfiles;
+ private final List<String> storageProfiles;
/**
* Constructor.
@@ -61,7 +64,7 @@ public class LogicalNode extends ClusterNodeImpl {
this.userAttributes = Collections.emptyMap();
this.systemAttributes = Collections.emptyMap();
- this.storageProfiles = Collections.emptyMap();
+ this.storageProfiles = Collections.emptyList();
}
/**
@@ -71,7 +74,7 @@ public class LogicalNode extends ClusterNodeImpl {
* @param userAttributes Node attributes defined in configuration.
*/
public LogicalNode(ClusterNode clusterNode, Map<String, String> userAttributes) {
- this(clusterNode, userAttributes, Collections.emptyMap(), Collections.emptyMap());
+ this(clusterNode, userAttributes, Collections.emptyMap(), Collections.emptyList());
}
/**
@@ -80,19 +83,19 @@ public class LogicalNode extends ClusterNodeImpl {
* @param clusterNode Represents a node in a cluster.
* @param userAttributes Node attributes defined in configuration.
* @param systemAttributes Internal node attributes provided by system components at startup.
- * @param storageProfiles TODO: add javadoc https://issues.apache.org/jira/browse/IGNITE-20564
+ * @param storageProfiles List of storage profiles, which the node supports.
*/
public LogicalNode(
ClusterNode clusterNode,
Map<String, String> userAttributes,
Map<String, String> systemAttributes,
- Map<String, String> storageProfiles
+ List<String> storageProfiles
) {
super(clusterNode.id(), clusterNode.name(), clusterNode.address(), clusterNode.nodeMetadata());
this.userAttributes = userAttributes == null ? Collections.emptyMap() : userAttributes;
this.systemAttributes = systemAttributes == null ? Collections.emptyMap() : systemAttributes;
- this.storageProfiles = storageProfiles == null ? Collections.emptyMap() : storageProfiles;
+ this.storageProfiles = storageProfiles == null ? Collections.emptyList() : (List<String>) storageProfiles;
}
/**
@@ -101,7 +104,7 @@ public class LogicalNode extends ClusterNodeImpl {
* @param clusterNode Represents a node in a cluster.
*/
public LogicalNode(ClusterNode clusterNode) {
- this(clusterNode, Collections.emptyMap(), Collections.emptyMap(), Collections.emptyMap());
+ this(clusterNode, Collections.emptyMap(), Collections.emptyMap(), Collections.emptyList());
}
/**
@@ -123,11 +126,11 @@ public class LogicalNode extends ClusterNodeImpl {
}
/**
- * TODO: add java doc https://issues.apache.org/jira/browse/IGNITE-20564.
+ * Returns the list of storage profiles, which the node supports.
*
- * @return add java doc https://issues.apache.org/jira/browse/IGNITE-20564.
+ * @return List of storage profiles, which the node supports.
*/
- public Map<String, String> storageProfiles() {
+ public List<String> storageProfiles() {
return storageProfiles;
}
diff --git a/modules/cluster-management/src/testFixtures/java/org/apache/ignite/internal/cluster/management/BaseItClusterManagementTest.java b/modules/cluster-management/src/testFixtures/java/org/apache/ignite/internal/cluster/management/BaseItClusterManagementTest.java
index f8d622a4d5..26347ad821 100644
--- a/modules/cluster-management/src/testFixtures/java/org/apache/ignite/internal/cluster/management/BaseItClusterManagementTest.java
+++ b/modules/cluster-management/src/testFixtures/java/org/apache/ignite/internal/cluster/management/BaseItClusterManagementTest.java
@@ -28,10 +28,10 @@ import java.util.stream.IntStream;
import java.util.stream.Stream;
import org.apache.ignite.internal.cluster.management.configuration.ClusterManagementConfiguration;
import org.apache.ignite.internal.cluster.management.configuration.NodeAttributesConfiguration;
-import org.apache.ignite.internal.cluster.management.configuration.StorageProfilesConfiguration;
import org.apache.ignite.internal.configuration.testframework.ConfigurationExtension;
import org.apache.ignite.internal.configuration.testframework.InjectConfiguration;
import org.apache.ignite.internal.raft.configuration.RaftConfiguration;
+import org.apache.ignite.internal.storage.configurations.StoragesConfiguration;
import org.apache.ignite.internal.testframework.BaseIgniteAbstractTest;
import org.apache.ignite.internal.util.IgniteUtils;
import org.apache.ignite.network.NetworkAddress;
@@ -56,7 +56,7 @@ public abstract class BaseItClusterManagementTest extends BaseIgniteAbstractTest
private static NodeAttributesConfiguration userNodeAttributes;
@InjectConfiguration
- private static StorageProfilesConfiguration storageProfilesConfiguration;
+ private static StoragesConfiguration storagesConfiguration;
protected static List<MockNode> createNodes(int numNodes, TestInfo testInfo, Path workDir) {
StaticNodeFinder nodeFinder = createNodeFinder(numNodes);
@@ -70,7 +70,7 @@ public abstract class BaseItClusterManagementTest extends BaseIgniteAbstractTest
raftConfiguration,
cmgConfiguration,
userNodeAttributes,
- storageProfilesConfiguration
+ storagesConfiguration
))
.collect(toList());
@@ -85,7 +85,7 @@ public abstract class BaseItClusterManagementTest extends BaseIgniteAbstractTest
raftConfiguration,
cmgConfiguration,
userNodeAttributes,
- storageProfilesConfiguration
+ storagesConfiguration
);
cluster.add(node);
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 fb30286d21..8e744a0cef 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
@@ -29,7 +29,6 @@ import java.util.Set;
import java.util.concurrent.CompletableFuture;
import org.apache.ignite.internal.cluster.management.configuration.ClusterManagementConfiguration;
import org.apache.ignite.internal.cluster.management.configuration.NodeAttributesConfiguration;
-import org.apache.ignite.internal.cluster.management.configuration.StorageProfilesConfiguration;
import org.apache.ignite.internal.cluster.management.raft.RocksDbClusterStateStorage;
import org.apache.ignite.internal.cluster.management.topology.LogicalTopologyImpl;
import org.apache.ignite.internal.cluster.management.topology.api.LogicalNode;
@@ -39,6 +38,7 @@ import org.apache.ignite.internal.hlc.HybridClockImpl;
import org.apache.ignite.internal.manager.IgniteComponent;
import org.apache.ignite.internal.raft.Loza;
import org.apache.ignite.internal.raft.configuration.RaftConfiguration;
+import org.apache.ignite.internal.storage.configurations.StoragesConfiguration;
import org.apache.ignite.internal.util.ReverseIterator;
import org.apache.ignite.internal.vault.VaultManager;
import org.apache.ignite.internal.vault.persistence.PersistentVaultService;
@@ -86,7 +86,7 @@ public class MockNode {
RaftConfiguration raftConfiguration,
ClusterManagementConfiguration cmgConfiguration,
NodeAttributesConfiguration nodeAttributes,
- StorageProfilesConfiguration storageProfilesConfiguration
+ StoragesConfiguration storageProfilesConfiguration
) {
this.testInfo = testInfo;
this.nodeFinder = nodeFinder;
diff --git a/modules/metastorage/build.gradle b/modules/metastorage/build.gradle
index cb6078b479..f36ef9cbbd 100644
--- a/modules/metastorage/build.gradle
+++ b/modules/metastorage/build.gradle
@@ -52,6 +52,7 @@ dependencies {
integrationTestImplementation project(':ignite-rest')
integrationTestImplementation project(':ignite-raft')
integrationTestImplementation project(":ignite-raft-api")
+ integrationTestImplementation project(':ignite-storage-configuration')
integrationTestImplementation project(":ignite-vault")
integrationTestImplementation project(":ignite-security")
integrationTestImplementation testFixtures(project(':ignite-core'))
diff --git a/modules/metastorage/src/integrationTest/java/org/apache/ignite/internal/metastorage/impl/ItMetaStorageMultipleNodesAbstractTest.java b/modules/metastorage/src/integrationTest/java/org/apache/ignite/internal/metastorage/impl/ItMetaStorageMultipleNodesAbstractTest.java
index b66bffdd01..22c140359f 100644
--- a/modules/metastorage/src/integrationTest/java/org/apache/ignite/internal/metastorage/impl/ItMetaStorageMultipleNodesAbstractTest.java
+++ b/modules/metastorage/src/integrationTest/java/org/apache/ignite/internal/metastorage/impl/ItMetaStorageMultipleNodesAbstractTest.java
@@ -48,7 +48,6 @@ import org.apache.ignite.internal.cluster.management.ClusterManagementGroupManag
import org.apache.ignite.internal.cluster.management.NodeAttributesCollector;
import org.apache.ignite.internal.cluster.management.configuration.ClusterManagementConfiguration;
import org.apache.ignite.internal.cluster.management.configuration.NodeAttributesConfiguration;
-import org.apache.ignite.internal.cluster.management.configuration.StorageProfilesConfiguration;
import org.apache.ignite.internal.cluster.management.raft.ClusterStateStorage;
import org.apache.ignite.internal.cluster.management.raft.TestClusterStateStorage;
import org.apache.ignite.internal.cluster.management.topology.LogicalTopologyImpl;
@@ -75,6 +74,7 @@ import org.apache.ignite.internal.raft.Peer;
import org.apache.ignite.internal.raft.client.TopologyAwareRaftGroupServiceFactory;
import org.apache.ignite.internal.raft.configuration.RaftConfiguration;
import org.apache.ignite.internal.raft.service.RaftGroupService;
+import org.apache.ignite.internal.storage.configurations.StoragesConfiguration;
import org.apache.ignite.internal.testframework.IgniteAbstractTest;
import org.apache.ignite.internal.util.IgniteUtils;
import org.apache.ignite.internal.vault.VaultManager;
@@ -109,7 +109,7 @@ public abstract class ItMetaStorageMultipleNodesAbstractTest extends IgniteAbstr
private static NodeAttributesConfiguration nodeAttributes;
@InjectConfiguration
- private static StorageProfilesConfiguration storageProfilesConfiguration;
+ private static StoragesConfiguration storagesConfiguration;
/**
* Large interval to effectively disable idle safe time propagation.
@@ -170,7 +170,7 @@ public abstract class ItMetaStorageMultipleNodesAbstractTest extends IgniteAbstr
clusterStateStorage,
logicalTopology,
cmgConfiguration,
- new NodeAttributesCollector(nodeAttributes, storageProfilesConfiguration)
+ new NodeAttributesCollector(nodeAttributes, storagesConfiguration)
);
var logicalTopologyService = new LogicalTopologyServiceImpl(logicalTopology, cmgManager);
diff --git a/modules/metastorage/src/integrationTest/java/org/apache/ignite/internal/metastorage/impl/ItMetaStorageWatchTest.java b/modules/metastorage/src/integrationTest/java/org/apache/ignite/internal/metastorage/impl/ItMetaStorageWatchTest.java
index e8e501ebc3..98fbff6ce1 100644
--- a/modules/metastorage/src/integrationTest/java/org/apache/ignite/internal/metastorage/impl/ItMetaStorageWatchTest.java
+++ b/modules/metastorage/src/integrationTest/java/org/apache/ignite/internal/metastorage/impl/ItMetaStorageWatchTest.java
@@ -51,7 +51,6 @@ import org.apache.ignite.internal.cluster.management.ClusterManagementGroupManag
import org.apache.ignite.internal.cluster.management.NodeAttributesCollector;
import org.apache.ignite.internal.cluster.management.configuration.ClusterManagementConfiguration;
import org.apache.ignite.internal.cluster.management.configuration.NodeAttributesConfiguration;
-import org.apache.ignite.internal.cluster.management.configuration.StorageProfilesConfiguration;
import org.apache.ignite.internal.cluster.management.raft.TestClusterStateStorage;
import org.apache.ignite.internal.cluster.management.topology.LogicalTopologyImpl;
import org.apache.ignite.internal.cluster.management.topology.LogicalTopologyServiceImpl;
@@ -75,6 +74,7 @@ import org.apache.ignite.internal.metastorage.server.persistence.RocksDbKeyValue
import org.apache.ignite.internal.raft.Loza;
import org.apache.ignite.internal.raft.client.TopologyAwareRaftGroupServiceFactory;
import org.apache.ignite.internal.raft.configuration.RaftConfiguration;
+import org.apache.ignite.internal.storage.configurations.StoragesConfiguration;
import org.apache.ignite.internal.testframework.IgniteAbstractTest;
import org.apache.ignite.internal.util.IgniteUtils;
import org.apache.ignite.internal.vault.VaultManager;
@@ -100,7 +100,7 @@ public class ItMetaStorageWatchTest extends IgniteAbstractTest {
private static NodeAttributesConfiguration nodeAttributes;
@InjectConfiguration
- private static StorageProfilesConfiguration storageProfilesConfiguration;
+ private static StoragesConfiguration storagesConfiguration;
@InjectConfiguration
private static MetaStorageConfiguration metaStorageConfiguration;
@@ -159,7 +159,7 @@ public class ItMetaStorageWatchTest extends IgniteAbstractTest {
clusterStateStorage,
logicalTopology,
cmgConfiguration,
- new NodeAttributesCollector(nodeAttributes, storageProfilesConfiguration)
+ new NodeAttributesCollector(nodeAttributes, storagesConfiguration)
);
components.add(cmgManager);
diff --git a/modules/page-memory/build.gradle b/modules/page-memory/build.gradle
index 479cdbd996..ce426fbbac 100644
--- a/modules/page-memory/build.gradle
+++ b/modules/page-memory/build.gradle
@@ -25,6 +25,7 @@ dependencies {
implementation project(':ignite-api')
implementation project(':ignite-core')
implementation project(':ignite-storage-api')
+ implementation project(':ignite-storage-configuration')
implementation project(':ignite-configuration-api')
implementation project(':ignite-file-io')
implementation libs.jetbrains.annotations
diff --git a/modules/runner/build.gradle b/modules/runner/build.gradle
index 59eaa149ec..2644614ea7 100644
--- a/modules/runner/build.gradle
+++ b/modules/runner/build.gradle
@@ -61,6 +61,7 @@ dependencies {
implementation project(':ignite-sql-engine')
implementation project(':ignite-client-handler')
implementation project(':ignite-compute')
+ implementation project(':ignite-storage-configuration')
implementation project(':ignite-storage-rocksdb')
implementation project(':ignite-storage-page-memory')
implementation project(':ignite-transactions')
@@ -126,6 +127,7 @@ dependencies {
integrationTestImplementation project(':ignite-client')
integrationTestImplementation project(':ignite-client-handler')
integrationTestImplementation project(':ignite-storage-api')
+ integrationTestImplementation project(':ignite-storage-configuration')
integrationTestImplementation project(':ignite-storage-page-memory')
integrationTestImplementation project(':ignite-storage-rocksdb')
integrationTestImplementation project(':ignite-index')
diff --git a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/compute/ItLogicalTopologyTest.java b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/compute/ItLogicalTopologyTest.java
index 41da3d4cd0..2b18223d27 100644
--- a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/compute/ItLogicalTopologyTest.java
+++ b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/compute/ItLogicalTopologyTest.java
@@ -58,11 +58,12 @@ class ItLogicalTopologyTest extends ClusterPerTestIntegrationTest {
private static final String NODE_ATTRIBUTES = "{region:{attribute:\"US\"},storage:{attribute:\"SSD\"}}";
- private static final String STORAGE_PROFILES = "{lru_rocks:{engine:\"rocksDb\"},segmented_aipersist:{engine:\"aipersist\"}}";
+ // TODO: https://issues.apache.org/jira/browse/IGNITE-20990 Replace dummy with the real target storages.
+ private static final String STORAGE_PROFILES = "{lru_rocks:{engine:\"dummy\"},segmented_aipersist:{engine:\"dummy\"}}";
private static final Map<String, String> NODE_ATTRIBUTES_MAP = Map.of("region", "US", "storage", "SSD");
- private static final Map<String, String> STORAGE_PROFILES_MAP = Map.of("lru_rocks", "rocksDb", "segmented_aipersist", "aipersist");
+ private static final List<String> STORAGE_PROFILES_LIST = List.of("lru_rocks", "segmented_aipersist");
@Language("JSON")
private static final String NODE_BOOTSTRAP_CFG_TEMPLATE_WITH_NODE_ATTRIBUTES_AND_STORAGE_PROFILES = "{\n"
@@ -75,8 +76,8 @@ class ItLogicalTopologyTest extends ClusterPerTestIntegrationTest {
+ " nodeAttributes: {\n"
+ " nodeAttributes: " + NODE_ATTRIBUTES
+ " },\n"
- + " storageProfiles: {\n"
- + " storageProfiles: " + STORAGE_PROFILES
+ + " storages: {\n"
+ + " profiles: " + STORAGE_PROFILES
+ " },\n"
+ " clientConnector: { port:{} },\n"
+ " rest.port: {}\n"
@@ -171,7 +172,7 @@ class ItLogicalTopologyTest extends ClusterPerTestIntegrationTest {
assertThat(event.eventType, is(EventType.VALIDATED));
assertThat(event.node.name(), is(secondIgnite.name()));
assertThat(event.node.userAttributes(), is(NODE_ATTRIBUTES_MAP));
- assertThat(event.node.storageProfiles(), is(STORAGE_PROFILES_MAP));
+ assertThat(event.node.storageProfiles(), is(STORAGE_PROFILES_LIST));
event = events.poll(10, TimeUnit.SECONDS);
@@ -180,7 +181,7 @@ class ItLogicalTopologyTest extends ClusterPerTestIntegrationTest {
assertThat(event.node.name(), is(secondIgnite.name()));
assertThat(event.topologyVersion, is(2L));
assertThat(event.node.userAttributes(), is(NODE_ATTRIBUTES_MAP));
- assertThat(event.node.storageProfiles(), is(STORAGE_PROFILES_MAP));
+ assertThat(event.node.storageProfiles(), is(STORAGE_PROFILES_LIST));
assertThat(events, is(empty()));
@@ -194,7 +195,7 @@ class ItLogicalTopologyTest extends ClusterPerTestIntegrationTest {
assertThat(event.node.name(), is(secondIgnite.name()));
assertThat(event.topologyVersion, is(3L));
assertThat(event.node.userAttributes(), is(Collections.emptyMap()));
- assertThat(event.node.storageProfiles(), is(Collections.emptyMap()));
+ assertThat(event.node.storageProfiles(), is(Collections.emptyList()));
assertThat(events, is(empty()));
}
@@ -218,7 +219,7 @@ class ItLogicalTopologyTest extends ClusterPerTestIntegrationTest {
assertTrue(secondNode.isPresent());
assertThat(secondNode.get().userAttributes(), is(NODE_ATTRIBUTES_MAP));
- assertThat(secondNode.get().storageProfiles(), is(STORAGE_PROFILES_MAP));
+ assertThat(secondNode.get().storageProfiles(), is(STORAGE_PROFILES_LIST));
}
@Test
diff --git a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/configuration/ItDistributedConfigurationPropertiesTest.java b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/configuration/ItDistributedConfigurationPropertiesTest.java
index 305c8b2213..76bc03bd1b 100644
--- a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/configuration/ItDistributedConfigurationPropertiesTest.java
+++ b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/configuration/ItDistributedConfigurationPropertiesTest.java
@@ -42,7 +42,6 @@ import org.apache.ignite.internal.cluster.management.ClusterManagementGroupManag
import org.apache.ignite.internal.cluster.management.NodeAttributesCollector;
import org.apache.ignite.internal.cluster.management.configuration.ClusterManagementConfiguration;
import org.apache.ignite.internal.cluster.management.configuration.NodeAttributesConfiguration;
-import org.apache.ignite.internal.cluster.management.configuration.StorageProfilesConfiguration;
import org.apache.ignite.internal.cluster.management.raft.TestClusterStateStorage;
import org.apache.ignite.internal.cluster.management.topology.LogicalTopologyImpl;
import org.apache.ignite.internal.cluster.management.topology.LogicalTopologyServiceImpl;
@@ -61,6 +60,7 @@ import org.apache.ignite.internal.metastorage.server.SimpleInMemoryKeyValueStora
import org.apache.ignite.internal.raft.Loza;
import org.apache.ignite.internal.raft.client.TopologyAwareRaftGroupServiceFactory;
import org.apache.ignite.internal.raft.configuration.RaftConfiguration;
+import org.apache.ignite.internal.storage.configurations.StoragesConfiguration;
import org.apache.ignite.internal.testframework.BaseIgniteAbstractTest;
import org.apache.ignite.internal.testframework.WorkDirectory;
import org.apache.ignite.internal.testframework.WorkDirectoryExtension;
@@ -101,7 +101,7 @@ public class ItDistributedConfigurationPropertiesTest extends BaseIgniteAbstract
private static NodeAttributesConfiguration nodeAttributes;
@InjectConfiguration
- private static StorageProfilesConfiguration storageProfilesConfiguration;
+ private static StoragesConfiguration storagesConfiguration;
@InjectConfiguration
private static MetaStorageConfiguration metaStorageConfiguration;
@@ -171,7 +171,7 @@ public class ItDistributedConfigurationPropertiesTest extends BaseIgniteAbstract
clusterStateStorage,
logicalTopology,
clusterManagementConfiguration,
- new NodeAttributesCollector(nodeAttributes, storageProfilesConfiguration)
+ new NodeAttributesCollector(nodeAttributes, storagesConfiguration)
);
var logicalTopologyService = new LogicalTopologyServiceImpl(logicalTopology, cmgManager);
diff --git a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/configuration/storage/ItDistributedConfigurationStorageTest.java b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/configuration/storage/ItDistributedConfigurationStorageTest.java
index 6f8b8358ce..7c098381ea 100644
--- a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/configuration/storage/ItDistributedConfigurationStorageTest.java
+++ b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/configuration/storage/ItDistributedConfigurationStorageTest.java
@@ -37,7 +37,6 @@ import org.apache.ignite.internal.cluster.management.ClusterManagementGroupManag
import org.apache.ignite.internal.cluster.management.NodeAttributesCollector;
import org.apache.ignite.internal.cluster.management.configuration.ClusterManagementConfiguration;
import org.apache.ignite.internal.cluster.management.configuration.NodeAttributesConfiguration;
-import org.apache.ignite.internal.cluster.management.configuration.StorageProfilesConfiguration;
import org.apache.ignite.internal.cluster.management.raft.TestClusterStateStorage;
import org.apache.ignite.internal.cluster.management.topology.LogicalTopologyImpl;
import org.apache.ignite.internal.cluster.management.topology.LogicalTopologyServiceImpl;
@@ -54,6 +53,7 @@ import org.apache.ignite.internal.metastorage.server.SimpleInMemoryKeyValueStora
import org.apache.ignite.internal.raft.Loza;
import org.apache.ignite.internal.raft.client.TopologyAwareRaftGroupServiceFactory;
import org.apache.ignite.internal.raft.configuration.RaftConfiguration;
+import org.apache.ignite.internal.storage.configurations.StoragesConfiguration;
import org.apache.ignite.internal.testframework.BaseIgniteAbstractTest;
import org.apache.ignite.internal.testframework.WorkDirectory;
import org.apache.ignite.internal.testframework.WorkDirectoryExtension;
@@ -84,7 +84,7 @@ public class ItDistributedConfigurationStorageTest extends BaseIgniteAbstractTes
private static NodeAttributesConfiguration nodeAttributes;
@InjectConfiguration
- private static StorageProfilesConfiguration storageProfilesConfiguration;
+ private static StoragesConfiguration storagesConfiguration;
@InjectConfiguration
private static MetaStorageConfiguration metaStorageConfiguration;
@@ -145,7 +145,7 @@ public class ItDistributedConfigurationStorageTest extends BaseIgniteAbstractTes
clusterStateStorage,
logicalTopology,
clusterManagementConfiguration,
- new NodeAttributesCollector(nodeAttributes, storageProfilesConfiguration)
+ new NodeAttributesCollector(nodeAttributes, storagesConfiguration)
);
var logicalTopologyService = new LogicalTopologyServiceImpl(logicalTopology, cmgManager);
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 f4e5110f22..0537d7efec 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
@@ -69,7 +69,6 @@ import org.apache.ignite.internal.cluster.management.ClusterManagementGroupManag
import org.apache.ignite.internal.cluster.management.NodeAttributesCollector;
import org.apache.ignite.internal.cluster.management.configuration.ClusterManagementConfiguration;
import org.apache.ignite.internal.cluster.management.configuration.NodeAttributesConfiguration;
-import org.apache.ignite.internal.cluster.management.configuration.StorageProfilesConfiguration;
import org.apache.ignite.internal.cluster.management.raft.RocksDbClusterStateStorage;
import org.apache.ignite.internal.cluster.management.topology.LogicalTopologyImpl;
import org.apache.ignite.internal.cluster.management.topology.LogicalTopologyServiceImpl;
@@ -115,6 +114,7 @@ import org.apache.ignite.internal.sql.engine.SqlQueryProcessor;
import org.apache.ignite.internal.storage.DataStorageManager;
import org.apache.ignite.internal.storage.DataStorageModule;
import org.apache.ignite.internal.storage.DataStorageModules;
+import org.apache.ignite.internal.storage.configurations.StoragesConfiguration;
import org.apache.ignite.internal.systemview.SystemViewManagerImpl;
import org.apache.ignite.internal.table.TableImpl;
import org.apache.ignite.internal.table.TableViewInternal;
@@ -176,7 +176,7 @@ public class ItIgniteNodeRestartTest extends BaseIgniteRestartTest {
private static NodeAttributesConfiguration nodeAttributes;
@InjectConfiguration
- private static StorageProfilesConfiguration storageProfilesConfiguration;
+ private static StoragesConfiguration storagesConfiguration;
@InjectConfiguration
private static MetaStorageConfiguration metaStorageConfiguration;
@@ -261,7 +261,7 @@ public class ItIgniteNodeRestartTest extends BaseIgniteRestartTest {
clusterStateStorage,
logicalTopology,
clusterManagementConfiguration,
- new NodeAttributesCollector(nodeAttributes, storageProfilesConfiguration)
+ new NodeAttributesCollector(nodeAttributes, storagesConfiguration)
);
LongSupplier partitionIdleSafeTimePropagationPeriodMsSupplier
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 ca1f634f42..ba5bacc9fb 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
@@ -55,7 +55,6 @@ import org.apache.ignite.internal.cluster.management.ClusterManagementGroupManag
import org.apache.ignite.internal.cluster.management.NodeAttributesCollector;
import org.apache.ignite.internal.cluster.management.configuration.ClusterManagementConfiguration;
import org.apache.ignite.internal.cluster.management.configuration.NodeAttributesConfiguration;
-import org.apache.ignite.internal.cluster.management.configuration.StorageProfilesConfiguration;
import org.apache.ignite.internal.cluster.management.raft.ClusterStateStorage;
import org.apache.ignite.internal.cluster.management.raft.RocksDbClusterStateStorage;
import org.apache.ignite.internal.cluster.management.topology.LogicalTopologyImpl;
@@ -137,6 +136,7 @@ import org.apache.ignite.internal.sql.engine.SqlQueryProcessor;
import org.apache.ignite.internal.storage.DataStorageManager;
import org.apache.ignite.internal.storage.DataStorageModule;
import org.apache.ignite.internal.storage.DataStorageModules;
+import org.apache.ignite.internal.storage.configurations.StoragesConfiguration;
import org.apache.ignite.internal.systemview.SystemViewManagerImpl;
import org.apache.ignite.internal.systemview.api.SystemViewManager;
import org.apache.ignite.internal.table.distributed.TableManager;
@@ -425,7 +425,7 @@ public class IgniteImpl implements Ignite {
NodeAttributesCollector nodeAttributesCollector =
new NodeAttributesCollector(
nodeConfigRegistry.getConfiguration(NodeAttributesConfiguration.KEY),
- nodeConfigRegistry.getConfiguration(StorageProfilesConfiguration.KEY)
+ nodeConfigRegistry.getConfiguration(StoragesConfiguration.KEY)
);
cmgMgr = new ClusterManagementGroupManager(
diff --git a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/framework/TestBuilders.java b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/framework/TestBuilders.java
index 2f73c043c0..14c4d10ed7 100644
--- a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/framework/TestBuilders.java
+++ b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/framework/TestBuilders.java
@@ -565,7 +565,7 @@ public class TestBuilders {
String nodeNameSep = SystemViewManagerImpl.NODE_ATTRIBUTES_LIST_SEPARATOR;
String nodeNamesString = String.join(nodeNameSep, systemViewForNode);
- return new LogicalNode(logicalNode, Map.of(), Map.of(attrName, nodeNamesString), Map.of());
+ return new LogicalNode(logicalNode, Map.of(), Map.of(attrName, nodeNamesString), List.of());
}
})
.collect(Collectors.toList());
diff --git a/modules/storage-configuration/README.md b/modules/storage-configuration/README.md
new file mode 100644
index 0000000000..a73bcc61aa
--- /dev/null
+++ b/modules/storage-configuration/README.md
@@ -0,0 +1 @@
+# Storage Configuration
diff --git a/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/configuration/StorageProfileConfigurationSchema.java b/modules/storage-configuration/build.gradle
similarity index 55%
copy from modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/configuration/StorageProfileConfigurationSchema.java
copy to modules/storage-configuration/build.gradle
index af01ab2a6b..ee25c6ff2b 100644
--- a/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/configuration/StorageProfileConfigurationSchema.java
+++ b/modules/storage-configuration/build.gradle
@@ -15,22 +15,18 @@
* limitations under the License.
*/
-package org.apache.ignite.internal.cluster.management.configuration;
+apply from: "$rootDir/buildscripts/java-core.gradle"
+apply from: "$rootDir/buildscripts/publishing.gradle"
+apply from: "$rootDir/buildscripts/java-junit5.gradle"
+apply from: "$rootDir/buildscripts/java-test-fixtures.gradle"
-import org.apache.ignite.configuration.annotation.Config;
-import org.apache.ignite.configuration.annotation.InjectedName;
-import org.apache.ignite.configuration.annotation.Value;
+dependencies {
+ annotationProcessor project(":ignite-configuration-annotation-processor")
+ annotationProcessor libs.auto.service
-/**
- * TODO: add java doc https://issues.apache.org/jira/browse/IGNITE-20564.
- */
-@Config
-public class StorageProfileConfigurationSchema {
- /** TODO: add java doc https://issues.apache.org/jira/browse/IGNITE-20564. */
- @InjectedName
- public String name;
-
- /** TODO: add java doc https://issues.apache.org/jira/browse/IGNITE-20564. */
- @Value(hasDefault = true)
- public String engine = "";
+ implementation project(':ignite-configuration-api')
+ implementation libs.jetbrains.annotations
+ implementation libs.auto.service.annotations
}
+
+description = 'ignite-storage-configuration'
diff --git a/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/configuration/StorageProfileConfigurationSchema.java b/modules/storage-configuration/src/main/java/org/apache/ignite/internal/storage/configurations/DummyStorageEngineConfigurationSchema.java
similarity index 55%
copy from modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/configuration/StorageProfileConfigurationSchema.java
copy to modules/storage-configuration/src/main/java/org/apache/ignite/internal/storage/configurations/DummyStorageEngineConfigurationSchema.java
index af01ab2a6b..44a95b61a8 100644
--- a/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/configuration/StorageProfileConfigurationSchema.java
+++ b/modules/storage-configuration/src/main/java/org/apache/ignite/internal/storage/configurations/DummyStorageEngineConfigurationSchema.java
@@ -15,22 +15,14 @@
* limitations under the License.
*/
-package org.apache.ignite.internal.cluster.management.configuration;
+package org.apache.ignite.internal.storage.configurations;
-import org.apache.ignite.configuration.annotation.Config;
-import org.apache.ignite.configuration.annotation.InjectedName;
-import org.apache.ignite.configuration.annotation.Value;
+import org.apache.ignite.configuration.annotation.PolymorphicConfigInstance;
/**
- * TODO: add java doc https://issues.apache.org/jira/browse/IGNITE-20564.
+ * Dummy storage engine configuration schema to prevent the errors from configuration framework, while
+ * TODO: https://issues.apache.org/jira/browse/IGNITE-20990 is not implemented yet.
*/
-@Config
-public class StorageProfileConfigurationSchema {
- /** TODO: add java doc https://issues.apache.org/jira/browse/IGNITE-20564. */
- @InjectedName
- public String name;
-
- /** TODO: add java doc https://issues.apache.org/jira/browse/IGNITE-20564. */
- @Value(hasDefault = true)
- public String engine = "";
+@PolymorphicConfigInstance("dummy")
+public class DummyStorageEngineConfigurationSchema extends StorageEngineConfigurationSchema {
}
diff --git a/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/configuration/StorageProfileConfigurationSchema.java b/modules/storage-configuration/src/main/java/org/apache/ignite/internal/storage/configurations/DummyStorageProfileConfigurationSchema.java
similarity index 55%
copy from modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/configuration/StorageProfileConfigurationSchema.java
copy to modules/storage-configuration/src/main/java/org/apache/ignite/internal/storage/configurations/DummyStorageProfileConfigurationSchema.java
index af01ab2a6b..900750ed1e 100644
--- a/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/configuration/StorageProfileConfigurationSchema.java
+++ b/modules/storage-configuration/src/main/java/org/apache/ignite/internal/storage/configurations/DummyStorageProfileConfigurationSchema.java
@@ -15,22 +15,14 @@
* limitations under the License.
*/
-package org.apache.ignite.internal.cluster.management.configuration;
+package org.apache.ignite.internal.storage.configurations;
-import org.apache.ignite.configuration.annotation.Config;
-import org.apache.ignite.configuration.annotation.InjectedName;
-import org.apache.ignite.configuration.annotation.Value;
+import org.apache.ignite.configuration.annotation.PolymorphicConfigInstance;
/**
- * TODO: add java doc https://issues.apache.org/jira/browse/IGNITE-20564.
+ * Dummy storage profile configuration schema to prevent the errors from configuration framework, while
+ * TODO: https://issues.apache.org/jira/browse/IGNITE-20990 is not implemented yet.
*/
-@Config
-public class StorageProfileConfigurationSchema {
- /** TODO: add java doc https://issues.apache.org/jira/browse/IGNITE-20564. */
- @InjectedName
- public String name;
-
- /** TODO: add java doc https://issues.apache.org/jira/browse/IGNITE-20564. */
- @Value(hasDefault = true)
- public String engine = "";
+@PolymorphicConfigInstance("dummy")
+public class DummyStorageProfileConfigurationSchema extends StorageProfileConfigurationSchema {
}
diff --git a/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/configuration/StorageProfileConfigurationSchema.java b/modules/storage-configuration/src/main/java/org/apache/ignite/internal/storage/configurations/StorageEngineConfigurationSchema.java
similarity index 57%
copy from modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/configuration/StorageProfileConfigurationSchema.java
copy to modules/storage-configuration/src/main/java/org/apache/ignite/internal/storage/configurations/StorageEngineConfigurationSchema.java
index af01ab2a6b..ef49dab4c8 100644
--- a/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/configuration/StorageProfileConfigurationSchema.java
+++ b/modules/storage-configuration/src/main/java/org/apache/ignite/internal/storage/configurations/StorageEngineConfigurationSchema.java
@@ -15,22 +15,18 @@
* limitations under the License.
*/
-package org.apache.ignite.internal.cluster.management.configuration;
+package org.apache.ignite.internal.storage.configurations;
-import org.apache.ignite.configuration.annotation.Config;
-import org.apache.ignite.configuration.annotation.InjectedName;
-import org.apache.ignite.configuration.annotation.Value;
+import org.apache.ignite.configuration.annotation.PolymorphicConfig;
+import org.apache.ignite.configuration.annotation.PolymorphicId;
/**
- * TODO: add java doc https://issues.apache.org/jira/browse/IGNITE-20564.
+ * Storage engine configuration schema.
*/
-@Config
-public class StorageProfileConfigurationSchema {
- /** TODO: add java doc https://issues.apache.org/jira/browse/IGNITE-20564. */
- @InjectedName
- public String name;
+@PolymorphicConfig
+public class StorageEngineConfigurationSchema {
- /** TODO: add java doc https://issues.apache.org/jira/browse/IGNITE-20564. */
- @Value(hasDefault = true)
- public String engine = "";
+ /** Storage engine name. */
+ @PolymorphicId
+ public String name;
}
diff --git a/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/configuration/StorageProfileConfigurationSchema.java b/modules/storage-configuration/src/main/java/org/apache/ignite/internal/storage/configurations/StorageProfileConfigurationSchema.java
similarity index 66%
rename from modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/configuration/StorageProfileConfigurationSchema.java
rename to modules/storage-configuration/src/main/java/org/apache/ignite/internal/storage/configurations/StorageProfileConfigurationSchema.java
index af01ab2a6b..7673405b87 100644
--- a/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/configuration/StorageProfileConfigurationSchema.java
+++ b/modules/storage-configuration/src/main/java/org/apache/ignite/internal/storage/configurations/StorageProfileConfigurationSchema.java
@@ -15,22 +15,23 @@
* limitations under the License.
*/
-package org.apache.ignite.internal.cluster.management.configuration;
+package org.apache.ignite.internal.storage.configurations;
-import org.apache.ignite.configuration.annotation.Config;
import org.apache.ignite.configuration.annotation.InjectedName;
-import org.apache.ignite.configuration.annotation.Value;
+import org.apache.ignite.configuration.annotation.PolymorphicConfig;
+import org.apache.ignite.configuration.annotation.PolymorphicId;
/**
- * TODO: add java doc https://issues.apache.org/jira/browse/IGNITE-20564.
+ * Storage profile configuration schema.
*/
-@Config
+@PolymorphicConfig
public class StorageProfileConfigurationSchema {
- /** TODO: add java doc https://issues.apache.org/jira/browse/IGNITE-20564. */
+
+ /** Storage engine name. */
+ @PolymorphicId
+ public String engine;
+
@InjectedName
public String name;
- /** TODO: add java doc https://issues.apache.org/jira/browse/IGNITE-20564. */
- @Value(hasDefault = true)
- public String engine = "";
}
diff --git a/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/configuration/ClusterManagementConfigurationModule.java b/modules/storage-configuration/src/main/java/org/apache/ignite/internal/storage/configurations/StoragesConfigurationModule.java
similarity index 70%
copy from modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/configuration/ClusterManagementConfigurationModule.java
copy to modules/storage-configuration/src/main/java/org/apache/ignite/internal/storage/configurations/StoragesConfigurationModule.java
index a2eb334271..d68fc3f4a4 100644
--- a/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/configuration/ClusterManagementConfigurationModule.java
+++ b/modules/storage-configuration/src/main/java/org/apache/ignite/internal/storage/configurations/StoragesConfigurationModule.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.ignite.internal.cluster.management.configuration;
+package org.apache.ignite.internal.storage.configurations;
import com.google.auto.service.AutoService;
import java.util.Collection;
@@ -25,17 +25,28 @@ import org.apache.ignite.configuration.RootKey;
import org.apache.ignite.configuration.annotation.ConfigurationType;
/**
- * Configuration module for Cluster Management configs.
+ * Storages configuration module.
*/
@AutoService(ConfigurationModule.class)
-public class ClusterManagementConfigurationModule implements ConfigurationModule {
+public class StoragesConfigurationModule implements ConfigurationModule {
+ /** {@inheritDoc} */
@Override
public ConfigurationType type() {
return ConfigurationType.LOCAL;
}
+ /** {@inheritDoc} */
@Override
public Collection<RootKey<?, ?>> rootKeys() {
- return List.of(ClusterManagementConfiguration.KEY, NodeAttributesConfiguration.KEY, StorageProfilesConfiguration.KEY);
+ return List.of(StoragesConfiguration.KEY);
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public Collection<Class<?>> polymorphicSchemaExtensions() {
+ return List.of(
+ DummyStorageEngineConfigurationSchema.class,
+ DummyStorageProfileConfigurationSchema.class
+ );
}
}
diff --git a/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/configuration/StorageProfilesConfigurationSchema.java b/modules/storage-configuration/src/main/java/org/apache/ignite/internal/storage/configurations/StoragesConfigurationSchema.java
similarity index 64%
rename from modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/configuration/StorageProfilesConfigurationSchema.java
rename to modules/storage-configuration/src/main/java/org/apache/ignite/internal/storage/configurations/StoragesConfigurationSchema.java
index 0dea143ed0..f327ed4861 100644
--- a/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/configuration/StorageProfilesConfigurationSchema.java
+++ b/modules/storage-configuration/src/main/java/org/apache/ignite/internal/storage/configurations/StoragesConfigurationSchema.java
@@ -15,20 +15,29 @@
* limitations under the License.
*/
-package org.apache.ignite.internal.cluster.management.configuration;
+package org.apache.ignite.internal.storage.configurations;
+
+import static org.apache.ignite.configuration.annotation.ConfigurationType.LOCAL;
import org.apache.ignite.configuration.annotation.ConfigurationRoot;
-import org.apache.ignite.configuration.annotation.ConfigurationType;
import org.apache.ignite.configuration.annotation.NamedConfigValue;
/**
- * TODO: add java doc https://issues.apache.org/jira/browse/IGNITE-20564.
+ * Root for the storage engine and storage profiles configurations.
*/
-@ConfigurationRoot(rootName = "storageProfiles", type = ConfigurationType.LOCAL)
-public class StorageProfilesConfigurationSchema {
+@ConfigurationRoot(rootName = "storages", type = LOCAL)
+public class StoragesConfigurationSchema {
+
/**
- * TODO: add java doc https://issues.apache.org/jira/browse/IGNITE-20564.
+ * Storage engines configuration.
*/
@NamedConfigValue
- public StorageProfileConfigurationSchema storageProfiles;
+ public StorageEngineConfigurationSchema engines;
+
+ /**
+ * Storage profiles configuration.
+ */
+ @NamedConfigValue
+ public StorageProfileConfigurationSchema profiles;
+
}
diff --git a/modules/storage-rocksdb/build.gradle b/modules/storage-rocksdb/build.gradle
index 82a139c07d..3fad167666 100644
--- a/modules/storage-rocksdb/build.gradle
+++ b/modules/storage-rocksdb/build.gradle
@@ -24,6 +24,7 @@ dependencies {
annotationProcessor libs.auto.service
implementation project(':ignite-storage-api')
+ implementation project(':ignite-storage-configuration')
implementation project(':ignite-rocksdb-common')
implementation project(':ignite-schema')
implementation project(':ignite-core')
diff --git a/modules/system-view/src/test/java/org/apache/ignite/internal/systemview/SystemViewManagerTest.java b/modules/system-view/src/test/java/org/apache/ignite/internal/systemview/SystemViewManagerTest.java
index a738de0e66..d965d11da1 100644
--- a/modules/system-view/src/test/java/org/apache/ignite/internal/systemview/SystemViewManagerTest.java
+++ b/modules/system-view/src/test/java/org/apache/ignite/internal/systemview/SystemViewManagerTest.java
@@ -349,7 +349,7 @@ public class SystemViewManagerTest extends BaseIgniteAbstractTest {
systemAttributes = Map.of();
}
- topology.add(new LogicalNode(clusterNode, Map.of(), systemAttributes, Map.of()));
+ topology.add(new LogicalNode(clusterNode, Map.of(), systemAttributes, List.of()));
}
return new LogicalTopologySnapshot(1, topology);
diff --git a/modules/table/build.gradle b/modules/table/build.gradle
index 189e0952ec..74acccce5d 100644
--- a/modules/table/build.gradle
+++ b/modules/table/build.gradle
@@ -108,6 +108,7 @@ dependencies {
integrationTestImplementation project(':ignite-raft-api')
integrationTestImplementation project(':ignite-affinity')
integrationTestImplementation project(':ignite-storage-rocksdb')
+ integrationTestImplementation project(':ignite-storage-configuration')
integrationTestImplementation project(':ignite-distribution-zones')
integrationTestImplementation project(':ignite-catalog')
integrationTestImplementation project(':ignite-metastorage-api')
diff --git a/modules/table/src/integrationTest/java/org/apache/ignite/internal/rebalance/ItRebalanceDistributedTest.java b/modules/table/src/integrationTest/java/org/apache/ignite/internal/rebalance/ItRebalanceDistributedTest.java
index 4b631aae3e..361f038020 100644
--- a/modules/table/src/integrationTest/java/org/apache/ignite/internal/rebalance/ItRebalanceDistributedTest.java
+++ b/modules/table/src/integrationTest/java/org/apache/ignite/internal/rebalance/ItRebalanceDistributedTest.java
@@ -95,7 +95,6 @@ import org.apache.ignite.internal.cluster.management.ClusterManagementGroupManag
import org.apache.ignite.internal.cluster.management.NodeAttributesCollector;
import org.apache.ignite.internal.cluster.management.configuration.ClusterManagementConfiguration;
import org.apache.ignite.internal.cluster.management.configuration.NodeAttributesConfiguration;
-import org.apache.ignite.internal.cluster.management.configuration.StorageProfilesConfiguration;
import org.apache.ignite.internal.cluster.management.raft.TestClusterStateStorage;
import org.apache.ignite.internal.cluster.management.topology.LogicalTopologyImpl;
import org.apache.ignite.internal.cluster.management.topology.LogicalTopologyServiceImpl;
@@ -147,6 +146,9 @@ import org.apache.ignite.internal.schema.configuration.GcConfiguration;
import org.apache.ignite.internal.storage.DataStorageManager;
import org.apache.ignite.internal.storage.DataStorageModules;
import org.apache.ignite.internal.storage.StorageException;
+import org.apache.ignite.internal.storage.configurations.DummyStorageEngineConfigurationSchema;
+import org.apache.ignite.internal.storage.configurations.DummyStorageProfileConfigurationSchema;
+import org.apache.ignite.internal.storage.configurations.StoragesConfiguration;
import org.apache.ignite.internal.storage.impl.TestDataStorageModule;
import org.apache.ignite.internal.storage.impl.TestStorageEngine;
import org.apache.ignite.internal.storage.pagememory.PersistentPageMemoryDataStorageModule;
@@ -230,7 +232,7 @@ public class ItRebalanceDistributedTest extends BaseIgniteAbstractTest {
private static NodeAttributesConfiguration nodeAttributes;
@InjectConfiguration
- private static StorageProfilesConfiguration storageProfilesConfiguration;
+ private static StoragesConfiguration storagesConfiguration;
@InjectConfiguration
private static MetaStorageConfiguration metaStorageConfiguration;
@@ -845,10 +847,15 @@ public class ItRebalanceDistributedTest extends BaseIgniteAbstractTest {
NetworkConfiguration.KEY,
RestConfiguration.KEY,
ClientConnectorConfiguration.KEY,
+ StoragesConfiguration.KEY,
PersistentPageMemoryStorageEngineConfiguration.KEY,
VolatilePageMemoryStorageEngineConfiguration.KEY),
List.of(),
- List.of(UnsafeMemoryAllocatorConfigurationSchema.class)
+ List.of(
+ UnsafeMemoryAllocatorConfigurationSchema.class,
+ DummyStorageEngineConfigurationSchema.class,
+ DummyStorageProfileConfigurationSchema.class
+ )
);
Path configPath = workDir.resolve(testInfo.getDisplayName());
@@ -858,6 +865,7 @@ public class ItRebalanceDistributedTest extends BaseIgniteAbstractTest {
List.of(NetworkConfiguration.KEY,
PersistentPageMemoryStorageEngineConfiguration.KEY,
VolatilePageMemoryStorageEngineConfiguration.KEY,
+ StoragesConfiguration.KEY,
RestConfiguration.KEY,
ClientConnectorConfiguration.KEY),
new LocalFileConfigurationStorage(configPath, nodeCfgGenerator),
@@ -894,7 +902,7 @@ public class ItRebalanceDistributedTest extends BaseIgniteAbstractTest {
clusterStateStorage,
logicalTopology,
clusterManagementConfiguration,
- new NodeAttributesCollector(nodeAttributes, storageProfilesConfiguration)
+ new NodeAttributesCollector(nodeAttributes, storagesConfiguration)
);
LogicalTopologyServiceImpl logicalTopologyService = new LogicalTopologyServiceImpl(logicalTopology, cmgManager);
diff --git a/settings.gradle b/settings.gradle
index 7d78fff869..10319a28a9 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -55,6 +55,7 @@ include(':ignite-metastorage-api')
include(':ignite-metastorage')
include(':ignite-rest-api')
include(':ignite-storage-rocksdb')
+include(':ignite-storage-configuration')
include(':ignite-configuration-annotation-processor')
include(':ignite-compute')
include(':ignite-metrics')
@@ -81,6 +82,7 @@ project(":ignite-examples").projectDir = file('examples')
project(":ignite-dev-utilities").projectDir = file('dev-utilities')
project(":ignite-page-memory").projectDir = file('modules/page-memory')
project(":ignite-storage-api").projectDir = file('modules/storage-api')
+project(":ignite-storage-configuration").projectDir = file('modules/storage-configuration')
project(":ignite-network-annotation-processor").projectDir = file('modules/network-annotation-processor')
project(":ignite-client").projectDir = file('modules/client')
project(":ignite-jdbc").projectDir = file('modules/jdbc')