You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by ib...@apache.org on 2023/07/26 15:05:30 UTC
[ignite-3] branch main updated: IGNITE-20045 Use classes from Catalog domain in assignments recalculation code (#2358)
This is an automated email from the ASF dual-hosted git repository.
ibessonov pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/ignite-3.git
The following commit(s) were added to refs/heads/main by this push:
new a6f1f8208b IGNITE-20045 Use classes from Catalog domain in assignments recalculation code (#2358)
a6f1f8208b is described below
commit a6f1f8208b05058937578e19d0ca01b80c03731c
Author: Roman Puchkovskiy <ro...@gmail.com>
AuthorDate: Wed Jul 26 19:05:23 2023 +0400
IGNITE-20045 Use classes from Catalog domain in assignments recalculation code (#2358)
---
modules/distribution-zones/build.gradle | 1 +
.../rebalance/DistributionZoneRebalanceEngine.java | 26 ++++++---
.../distributionzones/rebalance/RebalanceUtil.java | 42 ++++++-------
.../rebalance/ZoneCatalogDescriptorUtils.java | 68 ++++++++++++++++++++++
.../DistributionZoneRebalanceEngineTest.java | 25 ++++++++
.../RebalanceUtilUpdateAssignmentsTest.java | 20 ++++---
.../internal/table/distributed/TableManager.java | 42 +------------
7 files changed, 148 insertions(+), 76 deletions(-)
diff --git a/modules/distribution-zones/build.gradle b/modules/distribution-zones/build.gradle
index c0d38eff4f..54c78c763f 100644
--- a/modules/distribution-zones/build.gradle
+++ b/modules/distribution-zones/build.gradle
@@ -34,6 +34,7 @@ dependencies {
implementation project(':ignite-vault')
implementation project(':ignite-schema')
implementation project(':ignite-affinity')
+ implementation project(':ignite-catalog')
implementation libs.auto.service.annotations
implementation libs.fastutil.core
diff --git a/modules/distribution-zones/src/main/java/org/apache/ignite/internal/distributionzones/rebalance/DistributionZoneRebalanceEngine.java b/modules/distribution-zones/src/main/java/org/apache/ignite/internal/distributionzones/rebalance/DistributionZoneRebalanceEngine.java
index 89c45d0dd4..7de5fd1d2f 100644
--- a/modules/distribution-zones/src/main/java/org/apache/ignite/internal/distributionzones/rebalance/DistributionZoneRebalanceEngine.java
+++ b/modules/distribution-zones/src/main/java/org/apache/ignite/internal/distributionzones/rebalance/DistributionZoneRebalanceEngine.java
@@ -27,6 +27,8 @@ import static org.apache.ignite.internal.distributionzones.DistributionZonesUtil
import static org.apache.ignite.internal.distributionzones.DistributionZonesUtil.getZoneById;
import static org.apache.ignite.internal.distributionzones.DistributionZonesUtil.parseDataNodes;
import static org.apache.ignite.internal.distributionzones.DistributionZonesUtil.zoneDataNodesKey;
+import static org.apache.ignite.internal.distributionzones.rebalance.ZoneCatalogDescriptorUtils.toZoneDescriptor;
+import static org.apache.ignite.internal.schema.CatalogDescriptorUtils.toTableDescriptor;
import static org.apache.ignite.lang.ErrorGroups.Common.NODE_STOPPING_ERR;
import java.util.ArrayList;
@@ -37,6 +39,8 @@ import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicBoolean;
import org.apache.ignite.configuration.notifications.ConfigurationListener;
import org.apache.ignite.configuration.notifications.ConfigurationNotificationEvent;
+import org.apache.ignite.internal.catalog.descriptors.CatalogTableDescriptor;
+import org.apache.ignite.internal.catalog.descriptors.CatalogZoneDescriptor;
import org.apache.ignite.internal.distributionzones.DistributionZoneManager;
import org.apache.ignite.internal.distributionzones.Node;
import org.apache.ignite.internal.distributionzones.configuration.DistributionZoneView;
@@ -176,10 +180,14 @@ public class DistributionZoneRebalanceEngine {
return completedFuture(null);
}
+ CatalogZoneDescriptor zoneDescriptor = toZoneDescriptor(zoneConfig);
+
for (TableView tableConfig : findTablesByZoneId(zoneId)) {
+ CatalogTableDescriptor tableDescriptor = toTableDescriptor(tableConfig);
+
CompletableFuture<?>[] partitionFutures = RebalanceUtil.triggerAllTablePartitionsRebalance(
- tableConfig,
- zoneConfig,
+ tableDescriptor,
+ zoneDescriptor,
filteredDataNodes,
evt.entryEvent().newEntry().revision(),
metaStorageManager
@@ -198,13 +206,13 @@ public class DistributionZoneRebalanceEngine {
// The exception is specific to this partition.
LOG.error(
"Exception on updating assignments for [table={}/{}, partition={}]", e,
- tableConfig.id(), tableConfig.name(), finalPartId
+ tableDescriptor.id(), tableDescriptor.name(), finalPartId
);
} else {
// The exception is from upstream and not specific for this partition, so don't log the partition index.
LOG.error(
"Exception on updating assignments for [table={}/{}]", e,
- tableConfig.id(), tableConfig.name()
+ tableDescriptor.id(), tableDescriptor.name()
);
}
@@ -252,15 +260,19 @@ public class DistributionZoneRebalanceEngine {
List<TableView> tableViews = findTablesByZoneId(zoneCfg.zoneId());
+ CatalogZoneDescriptor zoneDescriptor = toZoneDescriptor(zoneCfg);
+
List<CompletableFuture<?>> tableFutures = new ArrayList<>(tableViews.size());
for (TableView tableCfg : tableViews) {
+ CatalogTableDescriptor tableDescriptor = toTableDescriptor(tableCfg);
+
LOG.info("Received update for replicas number [table={}/{}, oldNumber={}, newNumber={}]",
- tableCfg.id(), tableCfg.name(), replicasCtx.oldValue(), replicasCtx.newValue());
+ tableDescriptor.id(), tableDescriptor.name(), replicasCtx.oldValue(), replicasCtx.newValue());
CompletableFuture<?>[] partitionFutures = RebalanceUtil.triggerAllTablePartitionsRebalance(
- tableCfg,
- zoneCfg,
+ tableDescriptor,
+ zoneDescriptor,
dataNodes,
replicasCtx.storageRevision(),
metaStorageManager
diff --git a/modules/distribution-zones/src/main/java/org/apache/ignite/internal/distributionzones/rebalance/RebalanceUtil.java b/modules/distribution-zones/src/main/java/org/apache/ignite/internal/distributionzones/rebalance/RebalanceUtil.java
index 8c10922436..bd2100f677 100644
--- a/modules/distribution-zones/src/main/java/org/apache/ignite/internal/distributionzones/rebalance/RebalanceUtil.java
+++ b/modules/distribution-zones/src/main/java/org/apache/ignite/internal/distributionzones/rebalance/RebalanceUtil.java
@@ -43,12 +43,12 @@ import java.util.stream.Collectors;
import java.util.stream.IntStream;
import org.apache.ignite.internal.affinity.AffinityUtils;
import org.apache.ignite.internal.affinity.Assignment;
-import org.apache.ignite.internal.distributionzones.configuration.DistributionZoneView;
+import org.apache.ignite.internal.catalog.descriptors.CatalogTableDescriptor;
+import org.apache.ignite.internal.catalog.descriptors.CatalogZoneDescriptor;
import org.apache.ignite.internal.logger.IgniteLogger;
import org.apache.ignite.internal.logger.Loggers;
import org.apache.ignite.internal.metastorage.MetaStorageManager;
import org.apache.ignite.internal.metastorage.dsl.Condition;
-import org.apache.ignite.internal.schema.configuration.TableView;
import org.apache.ignite.internal.util.ByteUtils;
import org.apache.ignite.internal.vault.VaultEntry;
import org.apache.ignite.internal.vault.VaultManager;
@@ -96,7 +96,7 @@ public class RebalanceUtil {
/**
* Update keys that related to rebalance algorithm in Meta Storage. Keys are specific for partition.
*
- * @param tableView Table config view.
+ * @param tableDescriptor Table descriptor.
* @param partId Unique identifier of a partition.
* @param dataNodes Data nodes.
* @param replicas Number of replicas for a table.
@@ -107,7 +107,7 @@ public class RebalanceUtil {
* @return Future representing result of updating keys in {@code metaStorageMgr}
*/
public static @NotNull CompletableFuture<Void> updatePendingAssignmentsKeys(
- TableView tableView,
+ CatalogTableDescriptor tableDescriptor,
TablePartitionId partId,
Collection<String> dataNodes,
int replicas,
@@ -186,14 +186,14 @@ public class RebalanceUtil {
case PENDING_KEY_UPDATED:
LOG.info(
"Update metastore pending partitions key [key={}, partition={}, table={}/{}, newVal={}]",
- partAssignmentsPendingKey.toString(), partNum, tableView.id(), tableView.name(),
+ partAssignmentsPendingKey.toString(), partNum, tableDescriptor.id(), tableDescriptor.name(),
ByteUtils.fromBytes(partAssignmentsBytes));
break;
case PLANNED_KEY_UPDATED:
LOG.info(
"Update metastore planned partitions key [key={}, partition={}, table={}/{}, newVal={}]",
- partAssignmentsPlannedKey, partNum, tableView.id(), tableView.name(),
+ partAssignmentsPlannedKey, partNum, tableDescriptor.id(), tableDescriptor.name(),
ByteUtils.fromBytes(partAssignmentsBytes)
);
@@ -201,7 +201,7 @@ public class RebalanceUtil {
case PLANNED_KEY_REMOVED_EQUALS_PENDING:
LOG.info(
"Remove planned key because current pending key has the same value [key={}, partition={}, table={}/{}, val={}]",
- partAssignmentsPlannedKey.toString(), partNum, tableView.id(), tableView.name(),
+ partAssignmentsPlannedKey.toString(), partNum, tableDescriptor.id(), tableDescriptor.name(),
ByteUtils.fromBytes(partAssignmentsBytes)
);
@@ -210,7 +210,7 @@ public class RebalanceUtil {
LOG.info(
"Remove planned key because pending is empty and calculated assignments are equal to current assignments "
+ "[key={}, partition={}, table={}/{}, val={}]",
- partAssignmentsPlannedKey.toString(), partNum, tableView.id(), tableView.name(),
+ partAssignmentsPlannedKey.toString(), partNum, tableDescriptor.id(), tableDescriptor.name(),
ByteUtils.fromBytes(partAssignmentsBytes)
);
@@ -218,7 +218,7 @@ public class RebalanceUtil {
case ASSIGNMENT_NOT_UPDATED:
LOG.debug(
"Assignments are not updated [key={}, partition={}, table={}/{}, val={}]",
- partAssignmentsPlannedKey.toString(), partNum, tableView.id(), tableView.name(),
+ partAssignmentsPlannedKey.toString(), partNum, tableDescriptor.id(), tableDescriptor.name(),
ByteUtils.fromBytes(partAssignmentsBytes)
);
@@ -226,7 +226,7 @@ public class RebalanceUtil {
case OUTDATED_UPDATE_RECEIVED:
LOG.debug(
"Received outdated rebalance trigger event [revision={}, partition={}, table={}/{}]",
- revision, partNum, tableView.id(), tableView.name());
+ revision, partNum, tableDescriptor.id(), tableDescriptor.name());
break;
default:
@@ -241,8 +241,8 @@ public class RebalanceUtil {
* provided data nodes, and, if the calculated assignments are different from the ones loaded from the
* MetaStorages, writes them as pending assignments.
*
- * @param tableCfg Table configuration snapshot.
- * @param zoneCfg Zone configuration snapshot.
+ * @param tableDescriptor Table descriptor.
+ * @param zoneDescriptor Zone descriptor.
* @param dataNodes Data nodes to use.
* @param storageRevision MetaStorage revision corresponding to this request.
* @param metaStorageManager MetaStorage manager used to read/write assignments.
@@ -250,31 +250,31 @@ public class RebalanceUtil {
* rebalance triggering completes.
*/
public static CompletableFuture<?>[] triggerAllTablePartitionsRebalance(
- TableView tableCfg,
- DistributionZoneView zoneCfg,
+ CatalogTableDescriptor tableDescriptor,
+ CatalogZoneDescriptor zoneDescriptor,
Set<String> dataNodes,
long storageRevision,
MetaStorageManager metaStorageManager
) {
CompletableFuture<List<Set<Assignment>>> tableAssignmentsFut = tableAssignments(
metaStorageManager,
- tableCfg.id(),
- zoneCfg.partitions()
+ tableDescriptor.id(),
+ zoneDescriptor.partitions()
);
- CompletableFuture<?>[] futures = new CompletableFuture[zoneCfg.partitions()];
+ CompletableFuture<?>[] futures = new CompletableFuture[zoneDescriptor.partitions()];
- for (int partId = 0; partId < zoneCfg.partitions(); partId++) {
- TablePartitionId replicaGrpId = new TablePartitionId(tableCfg.id(), partId);
+ for (int partId = 0; partId < zoneDescriptor.partitions(); partId++) {
+ TablePartitionId replicaGrpId = new TablePartitionId(tableDescriptor.id(), partId);
int finalPartId = partId;
futures[partId] = tableAssignmentsFut.thenCompose(tableAssignments ->
updatePendingAssignmentsKeys(
- tableCfg,
+ tableDescriptor,
replicaGrpId,
dataNodes,
- zoneCfg.replicas(),
+ zoneDescriptor.replicas(),
storageRevision,
metaStorageManager,
finalPartId,
diff --git a/modules/distribution-zones/src/main/java/org/apache/ignite/internal/distributionzones/rebalance/ZoneCatalogDescriptorUtils.java b/modules/distribution-zones/src/main/java/org/apache/ignite/internal/distributionzones/rebalance/ZoneCatalogDescriptorUtils.java
new file mode 100644
index 0000000000..1b98fc4c32
--- /dev/null
+++ b/modules/distribution-zones/src/main/java/org/apache/ignite/internal/distributionzones/rebalance/ZoneCatalogDescriptorUtils.java
@@ -0,0 +1,68 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.distributionzones.rebalance;
+
+import java.lang.reflect.Method;
+import org.apache.ignite.internal.catalog.descriptors.CatalogDataStorageDescriptor;
+import org.apache.ignite.internal.catalog.descriptors.CatalogZoneDescriptor;
+import org.apache.ignite.internal.distributionzones.configuration.DistributionZoneView;
+import org.apache.ignite.internal.schema.configuration.storage.DataStorageView;
+
+/**
+ * Utils used to convert configuration representations of distribution zones to catalog representations.
+ */
+@Deprecated(forRemoval = true)
+public class ZoneCatalogDescriptorUtils {
+ // TODO: IGNITE-19719 Fix it
+ /**
+ * Converts a distribution zone configuration to a Distribution zone descriptor.
+ *
+ * @param config Distribution zone configuration.
+ */
+ @Deprecated(forRemoval = true)
+ public static CatalogZoneDescriptor toZoneDescriptor(DistributionZoneView config) {
+ return new CatalogZoneDescriptor(
+ config.zoneId(),
+ config.name(),
+ config.partitions(),
+ config.replicas(),
+ config.dataNodesAutoAdjust(),
+ config.dataNodesAutoAdjustScaleUp(),
+ config.dataNodesAutoAdjustScaleDown(),
+ config.filter(),
+ toDataStorageDescriptor(config.dataStorage())
+ );
+ }
+
+ @Deprecated(forRemoval = true)
+ private static CatalogDataStorageDescriptor toDataStorageDescriptor(DataStorageView config) {
+ String dataRegion;
+
+ try {
+ Method dataRegionMethod = config.getClass().getMethod("dataRegion");
+
+ dataRegionMethod.setAccessible(true);
+
+ dataRegion = (String) dataRegionMethod.invoke(config);
+ } catch (ReflectiveOperationException e) {
+ dataRegion = e.getMessage();
+ }
+
+ return new CatalogDataStorageDescriptor(config.name(), dataRegion);
+ }
+}
diff --git a/modules/distribution-zones/src/test/java/org/apache/ignite/internal/distributionzones/rebalance/DistributionZoneRebalanceEngineTest.java b/modules/distribution-zones/src/test/java/org/apache/ignite/internal/distributionzones/rebalance/DistributionZoneRebalanceEngineTest.java
index 8b128c09aa..6382aba231 100644
--- a/modules/distribution-zones/src/test/java/org/apache/ignite/internal/distributionzones/rebalance/DistributionZoneRebalanceEngineTest.java
+++ b/modules/distribution-zones/src/test/java/org/apache/ignite/internal/distributionzones/rebalance/DistributionZoneRebalanceEngineTest.java
@@ -238,6 +238,7 @@ public class DistributionZoneRebalanceEngineTest extends IgniteAbstractTest {
TablesConfiguration tablesConfiguration
) {
assignTableIds(tablesConfiguration);
+ completeTablesConfigs(tablesConfiguration);
createRebalanceEngine(tablesConfiguration);
@@ -273,6 +274,7 @@ public class DistributionZoneRebalanceEngineTest extends IgniteAbstractTest {
@InjectConfiguration ("mock.tables {table0 = { zoneId = 1 }}") TablesConfiguration tablesConfiguration
) {
assignTableIds(tablesConfiguration);
+ completeTablesConfigs(tablesConfiguration);
createRebalanceEngine(tablesConfiguration);
@@ -307,6 +309,7 @@ public class DistributionZoneRebalanceEngineTest extends IgniteAbstractTest {
@InjectConfiguration("mock.tables {table0 = { zoneId = 1 }}") TablesConfiguration tablesConfiguration
) {
assignTableIds(tablesConfiguration);
+ completeTablesConfigs(tablesConfiguration);
createRebalanceEngine(tablesConfiguration);
@@ -343,6 +346,7 @@ public class DistributionZoneRebalanceEngineTest extends IgniteAbstractTest {
@InjectConfiguration("mock.tables {table0 = { zoneId = 1 }}") TablesConfiguration tablesConfiguration
) {
assignTableIds(tablesConfiguration);
+ completeTablesConfigs(tablesConfiguration);
createRebalanceEngine(tablesConfiguration);
@@ -380,6 +384,8 @@ public class DistributionZoneRebalanceEngineTest extends IgniteAbstractTest {
+ "table0 = { zoneId = 1, id = 1 }}")
TablesConfiguration tablesConfiguration
) throws Exception {
+ completeTablesConfigs(tablesConfiguration);
+
when(distributionZoneManager.dataNodes(anyInt())).thenReturn(Set.of("node0"));
keyValueStorage.put(stablePartAssignmentsKey(new TablePartitionId(1, 0)).bytes(), toBytes(Set.of("node0")), someTimestamp());
@@ -415,6 +421,8 @@ public class DistributionZoneRebalanceEngineTest extends IgniteAbstractTest {
+ "table0 = { zoneId = 0, id = 1 }}")
TablesConfiguration tablesConfiguration
) throws Exception {
+ completeTablesConfigs(tablesConfiguration);
+
when(distributionZoneManager.dataNodes(anyInt())).thenReturn(Set.of("node0"));
for (int i = 0; i < 25; i++) {
@@ -443,6 +451,23 @@ public class DistributionZoneRebalanceEngineTest extends IgniteAbstractTest {
}
}
+ private static void completeTablesConfigs(TablesConfiguration tablesConfiguration) {
+ CompletableFuture<Void> future = tablesConfiguration.change(tablesChange -> {
+ tablesChange.changeTables(tablesListChange -> {
+ tablesListChange.forEach(
+ tableView -> tablesListChange.update(tableView.name(), tableChange -> {
+ tableChange.changeColumns(columnsListChange -> columnsListChange.create("k1", columnChange -> {
+ columnChange.changeType(typeChange -> typeChange.changeType("string"));
+ }));
+
+ tableChange.changePrimaryKey(primaryKeyChange -> primaryKeyChange.changeColumns("k1"));
+ }));
+ });
+ });
+
+ assertThat(future, willCompleteSuccessfully());
+ }
+
private void createRebalanceEngine(TablesConfiguration tablesConfiguration) {
createRebalanceEngine(tablesConfiguration, metaStorageManager);
}
diff --git a/modules/distribution-zones/src/test/java/org/apache/ignite/internal/distributionzones/rebalance/RebalanceUtilUpdateAssignmentsTest.java b/modules/distribution-zones/src/test/java/org/apache/ignite/internal/distributionzones/rebalance/RebalanceUtilUpdateAssignmentsTest.java
index 449e3bad5f..93800f158e 100644
--- a/modules/distribution-zones/src/test/java/org/apache/ignite/internal/distributionzones/rebalance/RebalanceUtilUpdateAssignmentsTest.java
+++ b/modules/distribution-zones/src/test/java/org/apache/ignite/internal/distributionzones/rebalance/RebalanceUtilUpdateAssignmentsTest.java
@@ -38,11 +38,11 @@ import java.util.concurrent.CompletableFuture;
import java.util.concurrent.atomic.AtomicLong;
import java.util.stream.IntStream;
import org.apache.ignite.internal.affinity.Assignment;
+import org.apache.ignite.internal.catalog.descriptors.CatalogTableColumnDescriptor;
+import org.apache.ignite.internal.catalog.descriptors.CatalogTableDescriptor;
import org.apache.ignite.internal.configuration.ConfigurationManager;
import org.apache.ignite.internal.configuration.ConfigurationTreeGenerator;
import org.apache.ignite.internal.configuration.storage.TestConfigurationStorage;
-import org.apache.ignite.internal.configuration.testframework.ConfigurationExtension;
-import org.apache.ignite.internal.configuration.testframework.InjectConfiguration;
import org.apache.ignite.internal.configuration.validation.TestConfigurationValidator;
import org.apache.ignite.internal.distributionzones.configuration.DistributionZonesConfiguration;
import org.apache.ignite.internal.hlc.HybridTimestamp;
@@ -60,13 +60,13 @@ import org.apache.ignite.internal.raft.Command;
import org.apache.ignite.internal.raft.WriteCommand;
import org.apache.ignite.internal.raft.service.CommandClosure;
import org.apache.ignite.internal.raft.service.RaftGroupService;
-import org.apache.ignite.internal.schema.configuration.TableConfiguration;
import org.apache.ignite.internal.storage.pagememory.configuration.schema.PersistentPageMemoryDataStorageConfigurationSchema;
import org.apache.ignite.internal.testframework.IgniteAbstractTest;
import org.apache.ignite.internal.util.ByteUtils;
import org.apache.ignite.lang.IgniteInternalException;
import org.apache.ignite.network.ClusterService;
import org.apache.ignite.network.MessagingService;
+import org.apache.ignite.sql.ColumnType;
import org.jetbrains.annotations.Nullable;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
@@ -79,7 +79,7 @@ import org.mockito.quality.Strictness;
/**
* Tests for updating assignment in the meta storage.
*/
-@ExtendWith({MockitoExtension.class, ConfigurationExtension.class})
+@ExtendWith(MockitoExtension.class)
@MockitoSettings(strictness = Strictness.LENIENT)
public class RebalanceUtilUpdateAssignmentsTest extends IgniteAbstractTest {
private static final IgniteLogger LOG = Loggers.forClass(RebalanceUtilUpdateAssignmentsTest.class);
@@ -94,8 +94,14 @@ public class RebalanceUtilUpdateAssignmentsTest extends IgniteAbstractTest {
private MetaStorageManager metaStorageManager;
- @InjectConfiguration(name = "table1")
- private TableConfiguration tableConfig;
+ private final CatalogTableDescriptor tableDescriptor = new CatalogTableDescriptor(
+ 1,
+ "table1",
+ 0,
+ List.of(new CatalogTableColumnDescriptor("k1", ColumnType.INT32, false, 0, 0, 0, null)),
+ List.of("k1"),
+ null
+ );
private static final int partNum = 2;
private static final int replicas = 2;
@@ -509,7 +515,7 @@ public class RebalanceUtilUpdateAssignmentsTest extends IgniteAbstractTest {
}
RebalanceUtil.updatePendingAssignmentsKeys(
- tableConfig.value(), tablePartitionId, nodesForNewAssignments,
+ tableDescriptor, tablePartitionId, nodesForNewAssignments,
replicas, 1, metaStorageManager, partNum, tableCfgAssignments
);
diff --git a/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/TableManager.java b/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/TableManager.java
index aa419d043f..72f9ad055c 100644
--- a/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/TableManager.java
+++ b/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/TableManager.java
@@ -29,6 +29,7 @@ import static org.apache.ignite.internal.causality.IncrementalVersionedValue.dep
import static org.apache.ignite.internal.distributionzones.DistributionZonesUtil.getZoneById;
import static org.apache.ignite.internal.distributionzones.rebalance.RebalanceUtil.partitionAssignments;
import static org.apache.ignite.internal.distributionzones.rebalance.RebalanceUtil.tableAssignments;
+import static org.apache.ignite.internal.distributionzones.rebalance.ZoneCatalogDescriptorUtils.toZoneDescriptor;
import static org.apache.ignite.internal.metastorage.dsl.Operations.put;
import static org.apache.ignite.internal.schema.CatalogDescriptorUtils.toTableDescriptor;
import static org.apache.ignite.internal.schema.SchemaManager.INITIAL_SCHEMA_VERSION;
@@ -45,7 +46,6 @@ import static org.apache.ignite.internal.utils.RebalanceUtil.stablePartAssignmen
import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap;
import java.io.IOException;
-import java.lang.reflect.Method;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
@@ -95,7 +95,6 @@ import org.apache.ignite.internal.causality.CompletionListener;
import org.apache.ignite.internal.causality.IncrementalVersionedValue;
import org.apache.ignite.internal.cluster.management.ClusterManagementGroupManager;
import org.apache.ignite.internal.distributionzones.DistributionZoneManager;
-import org.apache.ignite.internal.distributionzones.configuration.DistributionZoneView;
import org.apache.ignite.internal.distributionzones.configuration.DistributionZonesConfiguration;
import org.apache.ignite.internal.hlc.HybridClock;
import org.apache.ignite.internal.hlc.HybridTimestamp;
@@ -136,7 +135,6 @@ import org.apache.ignite.internal.schema.configuration.TableView;
import org.apache.ignite.internal.schema.configuration.TablesChange;
import org.apache.ignite.internal.schema.configuration.TablesConfiguration;
import org.apache.ignite.internal.schema.configuration.index.TableIndexView;
-import org.apache.ignite.internal.schema.configuration.storage.DataStorageView;
import org.apache.ignite.internal.schema.event.SchemaEvent;
import org.apache.ignite.internal.schema.event.SchemaEventParameters;
import org.apache.ignite.internal.storage.DataStorageManager;
@@ -2720,42 +2718,4 @@ public class TableManager extends Producer<TableEvent, TableEventParameters> imp
private CatalogZoneDescriptor getZoneDescriptor(int id) {
return toZoneDescriptor(getZoneById(zonesConfig, id).value());
}
-
- // TODO: IGNITE-19719 Fix it
- /**
- * Converts a distribution zone configuration to a Distribution zone descriptor.
- *
- * @param config Distribution zone configuration.
- */
- @Deprecated(forRemoval = true)
- public static CatalogZoneDescriptor toZoneDescriptor(DistributionZoneView config) {
- return new CatalogZoneDescriptor(
- config.zoneId(),
- config.name(),
- config.partitions(),
- config.replicas(),
- config.dataNodesAutoAdjust(),
- config.dataNodesAutoAdjustScaleUp(),
- config.dataNodesAutoAdjustScaleDown(),
- config.filter(),
- toDataStorageDescriptor(config.dataStorage())
- );
- }
-
- @Deprecated(forRemoval = true)
- private static CatalogDataStorageDescriptor toDataStorageDescriptor(DataStorageView config) {
- String dataRegion;
-
- try {
- Method dataRegionMethod = config.getClass().getMethod("dataRegion");
-
- dataRegionMethod.setAccessible(true);
-
- dataRegion = (String) dataRegionMethod.invoke(config);
- } catch (ReflectiveOperationException e) {
- dataRegion = e.getMessage();
- }
-
- return new CatalogDataStorageDescriptor(config.name(), dataRegion);
- }
}