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 2024/09/19 13:42:00 UTC
(ignite-3) branch main updated: IGNITE-23181 Rename "affinity" to "partition distribution algorithm" (#4394)
This is an automated email from the ASF dual-hosted git repository.
sanpwc 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 fa618627a6 IGNITE-23181 Rename "affinity" to "partition distribution algorithm" (#4394)
fa618627a6 is described below
commit fa618627a62c04f5438ba3ccf113a8e565c96a15
Author: Denis Chudov <mo...@gmail.com>
AuthorDate: Thu Sep 19 16:41:55 2024 +0300
IGNITE-23181 Rename "affinity" to "partition distribution algorithm" (#4394)
---
.../apache/ignite/catalog/annotations/Zone.java | 6 +--
.../ignite/catalog/definitions/ZoneDefinition.java | 34 ++++++------
modules/catalog-compaction/build.gradle | 2 +-
.../compaction/CatalogCompactionRunner.java | 2 +-
.../CatalogCompactionRunnerSelfTest.java | 4 +-
.../catalog/ItCatalogApiThreadingTest.java | 2 +-
.../ignite/internal/catalog/ItCatalogDslTest.java | 2 +-
.../catalog/sql/CreateFromAnnotationsImpl.java | 4 +-
.../catalog/sql/CreateFromDefinitionImpl.java | 4 +-
.../internal/catalog/sql/CreateZoneImpl.java | 6 +--
.../ignite/internal/catalog/sql/WithOption.java | 4 +-
.../catalog/sql/CreateFromAnnotationsTest.java | 12 ++---
.../catalog/sql/CreateFromDefinitionTest.java | 4 +-
.../catalog/sql/InvalidDefinitionTest.java | 2 +-
modules/client-handler/build.gradle | 2 +-
.../ignite/client/handler/FakePlacementDriver.java | 2 +-
modules/distribution-zones/README.md | 4 +-
modules/distribution-zones/build.gradle | 4 +-
.../ItDistributionZonesFiltersTest.java | 4 +-
.../RebalanceRaftGroupEventsListener.java | 4 +-
.../distributionzones/rebalance/RebalanceUtil.java | 8 +--
.../ZoneRebalanceRaftGroupEventsListener.java | 8 +--
.../rebalance/ZoneRebalanceUtil.java | 8 +--
.../DistributionZoneRebalanceEngineTest.java | 10 ++--
.../RebalanceUtilUpdateAssignmentsTest.java | 8 +--
modules/index/build.gradle | 4 +-
.../ignite/internal/index/ItBuildIndexTest.java | 4 +-
.../internal/index/ItIndexAndRebalanceTest.java | 2 +-
.../ignite/internal/index/TestPlacementDriver.java | 2 +-
modules/jacoco-report/build.gradle | 2 +-
.../internal/pagememory/PageIdAllocator.java | 2 +-
.../build.gradle | 2 +-
.../partitiondistribution}/Assignment.java | 2 +-
.../partitiondistribution}/Assignments.java | 2 +-
.../PartitionDistributionUtils.java} | 18 +++----
.../RendezvousDistributionFunction.java} | 13 ++---
.../TokenizedAssignments.java | 2 +-
.../TokenizedAssignmentsImpl.java | 2 +-
.../PartitionDistributionServiceTest.java} | 13 ++---
.../RendezvousDistributionFunctionTest.java} | 20 ++++----
modules/partition-replicator/build.gradle | 4 +-
.../replicator/ItReplicaLifecycleTest.java | 10 ++--
.../replicator/utils/TestPlacementDriver.java | 2 +-
.../PartitionReplicaLifecycleManager.java | 12 ++---
modules/placement-driver-api/build.gradle | 4 +-
.../AssignmentsPlacementDriver.java | 2 +-
.../placementdriver/TestPlacementDriver.java | 2 +-
modules/placement-driver/build.gradle | 4 +-
.../placementdriver/BasePlacementDriverTest.java | 8 +--
.../PlacementDriverManagerTest.java | 6 +--
.../placementdriver/AssignmentsTracker.java | 8 +--
.../internal/placementdriver/LeaseUpdater.java | 4 +-
.../placementdriver/PlacementDriverManager.java | 2 +-
.../negotiation/LeaseAgreement.java | 2 +-
.../placementdriver/LeaseNegotiationTest.java | 4 +-
.../internal/placementdriver/LeaseUpdaterTest.java | 4 +-
.../placementdriver/PlacementDriverTest.java | 8 +--
modules/raft-api/build.gradle | 2 +-
.../ignite/internal/raft/PeersAndLearners.java | 2 +-
modules/replicator/build.gradle | 2 +-
.../ignite/internal/replicator/ReplicaManager.java | 2 +-
modules/runner/README.md | 60 +---------------------
modules/runner/build.gradle | 4 +-
.../runner/app/ItIgniteNodeRestartTest.java | 4 +-
.../runner/app/ItReplicaStateManagerTest.java | 4 +-
.../ignite/internal/table/ItTableScanTest.java | 4 +-
modules/sql-engine/build.gradle | 2 +-
.../sql/engine/ExecutionTargetProviderImpl.java | 6 +--
.../exec/mapping/ExecutionTargetFactory.java | 2 +-
.../mapping/largecluster/LargeClusterFactory.java | 4 +-
.../mapping/smallcluster/SmallClusterFactory.java | 4 +-
.../prepare/ddl/DdlSqlToCommandConverter.java | 6 +--
.../sql/engine/prepare/ddl/ZoneOptionEnum.java | 4 +-
.../sql/engine/benchmarks/MappingBenchmark.java | 8 +--
.../mapping/ExecutionTargetFactorySelfTest.java | 6 +--
.../sql/engine/framework/TestBuilders.java | 6 +--
.../prepare/ddl/DdlSqlToCommandConverterTest.java | 6 +--
.../DistributionZoneSqlToCommandConverterTest.java | 6 +--
.../sql/DistributionZoneSqlDdlParserTest.java | 6 +--
modules/table/build.gradle | 6 +--
.../ItDisasterRecoveryReconfigurationTest.java | 12 ++---
.../rebalance/ItRebalanceDistributedTest.java | 10 ++--
.../ignite/internal/rebalance/ItRebalanceTest.java | 2 +-
.../rebalance/ItRebalanceTriggersRecoveryTest.java | 4 +-
.../ignite/internal/table/ItEstimatedSizeTest.java | 2 +-
.../PartitionReplicatorNodeRecovery.java | 2 +-
.../internal/table/distributed/TableManager.java | 11 ++--
.../disaster/DisasterRecoveryManager.java | 2 +-
.../disaster/ManualGroupUpdateRequest.java | 9 ++--
.../wrappers/DelegatingPlacementDriver.java | 2 +-
.../ignite/internal/utils/RebalanceUtilEx.java | 8 +--
.../distributed/TableManagerRecoveryTest.java | 7 +--
.../table/distributed/TableManagerTest.java | 4 +-
.../apache/ignite/distributed/ItTxTestCluster.java | 6 +--
modules/transactions/build.gradle | 2 +-
.../internal/tx/test/ItTransactionTestUtils.java | 4 +-
settings.gradle | 4 +-
97 files changed, 260 insertions(+), 313 deletions(-)
diff --git a/modules/api/src/main/java/org/apache/ignite/catalog/annotations/Zone.java b/modules/api/src/main/java/org/apache/ignite/catalog/annotations/Zone.java
index 58e6b1e146..ce0d9db8c7 100644
--- a/modules/api/src/main/java/org/apache/ignite/catalog/annotations/Zone.java
+++ b/modules/api/src/main/java/org/apache/ignite/catalog/annotations/Zone.java
@@ -57,11 +57,11 @@ public @interface Zone {
int replicas() default -1;
/**
- * Affinity function.
+ * Distribution algorithm.
*
- * @return Affinity function.
+ * @return Distribution algorithm.
*/
- String affinityFunction() default "";
+ String distributionAlgorithm() default "";
/**
* Timeout in seconds between node added or node left topology event itself and data nodes switch.
diff --git a/modules/api/src/main/java/org/apache/ignite/catalog/definitions/ZoneDefinition.java b/modules/api/src/main/java/org/apache/ignite/catalog/definitions/ZoneDefinition.java
index 9d260ac889..ded14aea11 100644
--- a/modules/api/src/main/java/org/apache/ignite/catalog/definitions/ZoneDefinition.java
+++ b/modules/api/src/main/java/org/apache/ignite/catalog/definitions/ZoneDefinition.java
@@ -31,7 +31,7 @@ public class ZoneDefinition {
private final Integer replicas;
- private final String affinity;
+ private final String distributionAlgorithm;
private final Integer dataNodesAutoAdjust;
@@ -48,7 +48,7 @@ public class ZoneDefinition {
boolean ifNotExists,
Integer partitions,
Integer replicas,
- String affinity,
+ String distributionAlgorithm,
Integer dataNodesAutoAdjust,
Integer dataNodesAutoAdjustScaleUp,
Integer dataNodesAutoAdjustScaleDown,
@@ -59,7 +59,7 @@ public class ZoneDefinition {
this.ifNotExists = ifNotExists;
this.partitions = partitions;
this.replicas = replicas;
- this.affinity = affinity;
+ this.distributionAlgorithm = distributionAlgorithm;
this.dataNodesAutoAdjust = dataNodesAutoAdjust;
this.dataNodesAutoAdjustScaleUp = dataNodesAutoAdjustScaleUp;
this.dataNodesAutoAdjustScaleDown = dataNodesAutoAdjustScaleDown;
@@ -114,12 +114,12 @@ public class ZoneDefinition {
}
/**
- * Returns affinity function.
+ * Returns distribution algorithm.
*
- * @return Affinity function.
+ * @return Distribution algorithm.
*/
- public String affinityFunction() {
- return affinity;
+ public String distributionAlgorithm() {
+ return distributionAlgorithm;
}
/**
@@ -188,7 +188,7 @@ public class ZoneDefinition {
private Integer replicas;
- private String affinity;
+ private String distributionAlgorithm;
private Integer dataNodesAutoAdjust;
@@ -207,7 +207,7 @@ public class ZoneDefinition {
ifNotExists = definition.ifNotExists;
partitions = definition.partitions;
replicas = definition.replicas;
- affinity = definition.affinity;
+ distributionAlgorithm = definition.distributionAlgorithm;
dataNodesAutoAdjust = definition.dataNodesAutoAdjust;
dataNodesAutoAdjustScaleUp = definition.dataNodesAutoAdjustScaleUp;
dataNodesAutoAdjustScaleDown = definition.dataNodesAutoAdjustScaleDown;
@@ -268,18 +268,18 @@ public class ZoneDefinition {
}
/**
- * Sets the affinity function.
+ * Sets the distribution algorithm.
*
- * @param affinity Affinity function.
+ * @param distributionAlgorithm Distribution algorithm.
* @return This builder instance.
*/
- public Builder affinity(String affinity) {
- Objects.requireNonNull(affinity, "Affinity function must not be null.");
- if (affinity.isBlank()) {
- throw new IllegalArgumentException("Affinity function must not be blank.");
+ public Builder distributionAlgorithm(String distributionAlgorithm) {
+ Objects.requireNonNull(distributionAlgorithm, "Partition distribution algorithm must not be null.");
+ if (distributionAlgorithm.isBlank()) {
+ throw new IllegalArgumentException("Partition distribution algorithm must not be blank.");
}
- this.affinity = affinity;
+ this.distributionAlgorithm = distributionAlgorithm;
return this;
}
@@ -365,7 +365,7 @@ public class ZoneDefinition {
ifNotExists,
partitions,
replicas,
- affinity,
+ distributionAlgorithm,
dataNodesAutoAdjust,
dataNodesAutoAdjustScaleUp,
dataNodesAutoAdjustScaleDown,
diff --git a/modules/catalog-compaction/build.gradle b/modules/catalog-compaction/build.gradle
index 04d50d8935..d491e09ee8 100644
--- a/modules/catalog-compaction/build.gradle
+++ b/modules/catalog-compaction/build.gradle
@@ -25,7 +25,7 @@ dependencies {
annotationProcessor project(':ignite-network-annotation-processor')
annotationProcessor libs.auto.service
- implementation project(':ignite-affinity')
+ implementation project(':ignite-partition-distribution')
implementation project(':ignite-catalog')
implementation project(':ignite-cluster-management')
implementation project(':ignite-core')
diff --git a/modules/catalog-compaction/src/main/java/org/apache/ignite/internal/catalog/compaction/CatalogCompactionRunner.java b/modules/catalog-compaction/src/main/java/org/apache/ignite/internal/catalog/compaction/CatalogCompactionRunner.java
index f695f86385..e5e68ee324 100644
--- a/modules/catalog-compaction/src/main/java/org/apache/ignite/internal/catalog/compaction/CatalogCompactionRunner.java
+++ b/modules/catalog-compaction/src/main/java/org/apache/ignite/internal/catalog/compaction/CatalogCompactionRunner.java
@@ -32,7 +32,6 @@ import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.Executor;
import java.util.stream.Collectors;
-import org.apache.ignite.internal.affinity.TokenizedAssignments;
import org.apache.ignite.internal.catalog.Catalog;
import org.apache.ignite.internal.catalog.CatalogManagerImpl;
import org.apache.ignite.internal.catalog.compaction.message.CatalogCompactionMessageGroup;
@@ -57,6 +56,7 @@ import org.apache.ignite.internal.network.NetworkMessageHandler;
import org.apache.ignite.internal.network.TopologyService;
import org.apache.ignite.internal.partition.replicator.network.PartitionReplicationMessagesFactory;
import org.apache.ignite.internal.partition.replicator.network.replication.UpdateMinimumActiveTxBeginTimeReplicaRequest;
+import org.apache.ignite.internal.partitiondistribution.TokenizedAssignments;
import org.apache.ignite.internal.placementdriver.PlacementDriver;
import org.apache.ignite.internal.replicator.ReplicaService;
import org.apache.ignite.internal.replicator.TablePartitionId;
diff --git a/modules/catalog-compaction/src/test/java/org/apache/ignite/internal/catalog/compaction/CatalogCompactionRunnerSelfTest.java b/modules/catalog-compaction/src/test/java/org/apache/ignite/internal/catalog/compaction/CatalogCompactionRunnerSelfTest.java
index 4b9eade7a2..361d908071 100644
--- a/modules/catalog-compaction/src/test/java/org/apache/ignite/internal/catalog/compaction/CatalogCompactionRunnerSelfTest.java
+++ b/modules/catalog-compaction/src/test/java/org/apache/ignite/internal/catalog/compaction/CatalogCompactionRunnerSelfTest.java
@@ -61,8 +61,6 @@ import java.util.function.Function;
import java.util.function.IntFunction;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
-import org.apache.ignite.internal.affinity.Assignment;
-import org.apache.ignite.internal.affinity.TokenizedAssignmentsImpl;
import org.apache.ignite.internal.catalog.Catalog;
import org.apache.ignite.internal.catalog.CatalogTestUtils.TestCommand;
import org.apache.ignite.internal.catalog.commands.CatalogUtils;
@@ -81,6 +79,8 @@ import org.apache.ignite.internal.network.MessagingService;
import org.apache.ignite.internal.network.NetworkMessage;
import org.apache.ignite.internal.network.TopologyService;
import org.apache.ignite.internal.network.UnresolvableConsistentIdException;
+import org.apache.ignite.internal.partitiondistribution.Assignment;
+import org.apache.ignite.internal.partitiondistribution.TokenizedAssignmentsImpl;
import org.apache.ignite.internal.placementdriver.PlacementDriver;
import org.apache.ignite.internal.placementdriver.ReplicaMeta;
import org.apache.ignite.internal.replicator.ReplicaService;
diff --git a/modules/catalog-dsl/src/integrationTest/java/org/apache/ignite/internal/catalog/ItCatalogApiThreadingTest.java b/modules/catalog-dsl/src/integrationTest/java/org/apache/ignite/internal/catalog/ItCatalogApiThreadingTest.java
index 12d85324d0..e95c83af15 100644
--- a/modules/catalog-dsl/src/integrationTest/java/org/apache/ignite/internal/catalog/ItCatalogApiThreadingTest.java
+++ b/modules/catalog-dsl/src/integrationTest/java/org/apache/ignite/internal/catalog/ItCatalogApiThreadingTest.java
@@ -115,7 +115,7 @@ class ItCatalogApiThreadingTest extends ClusterPerClassIntegrationTest {
private static ZoneDefinition testZoneDefinition() {
return ZoneDefinition.builder(ZONE_NAME)
- .affinity("affinity")
+ .distributionAlgorithm("rendezvous")
.dataNodesAutoAdjust(1)
.filter("filter")
.storageProfiles(DEFAULT_AIPERSIST_PROFILE_NAME)
diff --git a/modules/catalog-dsl/src/integrationTest/java/org/apache/ignite/internal/catalog/ItCatalogDslTest.java b/modules/catalog-dsl/src/integrationTest/java/org/apache/ignite/internal/catalog/ItCatalogDslTest.java
index 0c8fbddafa..d786d9d680 100644
--- a/modules/catalog-dsl/src/integrationTest/java/org/apache/ignite/internal/catalog/ItCatalogDslTest.java
+++ b/modules/catalog-dsl/src/integrationTest/java/org/apache/ignite/internal/catalog/ItCatalogDslTest.java
@@ -70,7 +70,7 @@ class ItCatalogDslTest extends ClusterPerClassIntegrationTest {
void zoneCreateAndDropByDefinition() {
// Given zone definition
ZoneDefinition zoneDefinition = ZoneDefinition.builder(ZONE_NAME)
- .affinity("affinity")
+ .distributionAlgorithm("rendezvous")
.dataNodesAutoAdjust(1)
.filter("filter")
.storageProfiles(DEFAULT_AIPERSIST_PROFILE_NAME)
diff --git a/modules/catalog-dsl/src/main/java/org/apache/ignite/internal/catalog/sql/CreateFromAnnotationsImpl.java b/modules/catalog-dsl/src/main/java/org/apache/ignite/internal/catalog/sql/CreateFromAnnotationsImpl.java
index e10a924589..460f979e79 100644
--- a/modules/catalog-dsl/src/main/java/org/apache/ignite/internal/catalog/sql/CreateFromAnnotationsImpl.java
+++ b/modules/catalog-dsl/src/main/java/org/apache/ignite/internal/catalog/sql/CreateFromAnnotationsImpl.java
@@ -126,8 +126,8 @@ class CreateFromAnnotationsImpl extends AbstractCatalogQuery<TableZoneId> {
createZone.replicas(zone.replicas());
}
- if (!zone.affinityFunction().isEmpty()) {
- createZone.affinity(zone.affinityFunction());
+ if (!zone.distributionAlgorithm().isEmpty()) {
+ createZone.distributionAlgorithm(zone.distributionAlgorithm());
}
if (zone.dataNodesAutoAdjust() > 0) {
diff --git a/modules/catalog-dsl/src/main/java/org/apache/ignite/internal/catalog/sql/CreateFromDefinitionImpl.java b/modules/catalog-dsl/src/main/java/org/apache/ignite/internal/catalog/sql/CreateFromDefinitionImpl.java
index 180611de80..c5dc84dc6a 100644
--- a/modules/catalog-dsl/src/main/java/org/apache/ignite/internal/catalog/sql/CreateFromDefinitionImpl.java
+++ b/modules/catalog-dsl/src/main/java/org/apache/ignite/internal/catalog/sql/CreateFromDefinitionImpl.java
@@ -66,8 +66,8 @@ class CreateFromDefinitionImpl extends AbstractCatalogQuery<TableZoneId> {
createZone.replicas(def.replicas());
}
- if (!StringUtils.nullOrBlank(def.affinityFunction())) {
- createZone.affinity(def.affinityFunction());
+ if (!StringUtils.nullOrBlank(def.distributionAlgorithm())) {
+ createZone.distributionAlgorithm(def.distributionAlgorithm());
}
if (isGreaterThanZero(def.dataNodesAutoAdjust())) {
diff --git a/modules/catalog-dsl/src/main/java/org/apache/ignite/internal/catalog/sql/CreateZoneImpl.java b/modules/catalog-dsl/src/main/java/org/apache/ignite/internal/catalog/sql/CreateZoneImpl.java
index 87589470b5..dc426c4942 100644
--- a/modules/catalog-dsl/src/main/java/org/apache/ignite/internal/catalog/sql/CreateZoneImpl.java
+++ b/modules/catalog-dsl/src/main/java/org/apache/ignite/internal/catalog/sql/CreateZoneImpl.java
@@ -71,10 +71,10 @@ class CreateZoneImpl extends AbstractCatalogQuery<Name> {
return this;
}
- CreateZoneImpl affinity(String affinity) {
- Objects.requireNonNull(affinity, "Affinity function must not be null.");
+ CreateZoneImpl distributionAlgorithm(String distributionAlgorithm) {
+ Objects.requireNonNull(distributionAlgorithm, "Partition distribution algorithm must not be null.");
- withOptions.add(WithOption.affinity(affinity));
+ withOptions.add(WithOption.distributionAlgorithm(distributionAlgorithm));
return this;
}
diff --git a/modules/catalog-dsl/src/main/java/org/apache/ignite/internal/catalog/sql/WithOption.java b/modules/catalog-dsl/src/main/java/org/apache/ignite/internal/catalog/sql/WithOption.java
index 5d089f72d5..80397c6994 100644
--- a/modules/catalog-dsl/src/main/java/org/apache/ignite/internal/catalog/sql/WithOption.java
+++ b/modules/catalog-dsl/src/main/java/org/apache/ignite/internal/catalog/sql/WithOption.java
@@ -39,8 +39,8 @@ class WithOption extends QueryPart {
return new WithOption("REPLICAS", replicas);
}
- public static WithOption affinity(String affinity) {
- return new WithOption("AFFINITY_FUNCTION", affinity);
+ public static WithOption distributionAlgorithm(String distributionAlgorithm) {
+ return new WithOption("DISTRIBUTION_ALGORITHM", distributionAlgorithm);
}
public static WithOption dataNodesAutoAdjust(Integer adjust) {
diff --git a/modules/catalog-dsl/src/test/java/org/apache/ignite/internal/catalog/sql/CreateFromAnnotationsTest.java b/modules/catalog-dsl/src/test/java/org/apache/ignite/internal/catalog/sql/CreateFromAnnotationsTest.java
index 22e7bd03f3..397c7afe1d 100644
--- a/modules/catalog-dsl/src/test/java/org/apache/ignite/internal/catalog/sql/CreateFromAnnotationsTest.java
+++ b/modules/catalog-dsl/src/test/java/org/apache/ignite/internal/catalog/sql/CreateFromAnnotationsTest.java
@@ -63,7 +63,7 @@ class CreateFromAnnotationsTest {
.ifNotExists()
.partitions(1)
.replicas(3)
- .affinity("affinity")
+ .distributionAlgorithm("partitionDistribution")
.dataNodesAutoAdjust(1)
.dataNodesAutoAdjustScaleDown(2)
.dataNodesAutoAdjustScaleUp(3)
@@ -96,7 +96,7 @@ class CreateFromAnnotationsTest {
assertThat(
query.toString(),
is("CREATE ZONE IF NOT EXISTS zone_test WITH STORAGE_PROFILES='default', PARTITIONS=1, REPLICAS=3,"
- + " AFFINITY_FUNCTION='affinity',"
+ + " DISTRIBUTION_ALGORITHM='partitionDistribution',"
+ " DATA_NODES_AUTO_ADJUST=1, DATA_NODES_AUTO_ADJUST_SCALE_UP=3, DATA_NODES_AUTO_ADJUST_SCALE_DOWN=2,"
+ " DATA_NODES_FILTER='filter';"
+ System.lineSeparator()
@@ -114,7 +114,7 @@ class CreateFromAnnotationsTest {
assertThat(
query.toString(),
is("CREATE ZONE IF NOT EXISTS zone_test WITH STORAGE_PROFILES='default', PARTITIONS=1, REPLICAS=3,"
- + " AFFINITY_FUNCTION='affinity',"
+ + " DISTRIBUTION_ALGORITHM='partitionDistribution',"
+ " DATA_NODES_AUTO_ADJUST=1, DATA_NODES_AUTO_ADJUST_SCALE_UP=3, DATA_NODES_AUTO_ADJUST_SCALE_DOWN=2,"
+ " DATA_NODES_FILTER='filter';"
+ System.lineSeparator()
@@ -131,7 +131,7 @@ class CreateFromAnnotationsTest {
assertThat(
query.toString(),
is("CREATE ZONE IF NOT EXISTS zone_test WITH STORAGE_PROFILES='default', PARTITIONS=1, REPLICAS=3,"
- + " AFFINITY_FUNCTION='affinity',"
+ + " DISTRIBUTION_ALGORITHM='partitionDistribution',"
+ " DATA_NODES_AUTO_ADJUST=1, DATA_NODES_AUTO_ADJUST_SCALE_UP=3, DATA_NODES_AUTO_ADJUST_SCALE_DOWN=2,"
+ " DATA_NODES_FILTER='filter';"
+ System.lineSeparator()
@@ -192,7 +192,7 @@ class CreateFromAnnotationsTest {
value = "zone_test",
partitions = 1,
replicas = 3,
- affinityFunction = "affinity",
+ distributionAlgorithm = "partitionDistribution",
dataNodesAutoAdjust = 1,
dataNodesAutoAdjustScaleDown = 2,
dataNodesAutoAdjustScaleUp = 3,
@@ -222,7 +222,7 @@ class CreateFromAnnotationsTest {
value = "zone_test",
partitions = 1,
replicas = 3,
- affinityFunction = "affinity",
+ distributionAlgorithm = "partitionDistribution",
dataNodesAutoAdjust = 1,
dataNodesAutoAdjustScaleDown = 2,
dataNodesAutoAdjustScaleUp = 3,
diff --git a/modules/catalog-dsl/src/test/java/org/apache/ignite/internal/catalog/sql/CreateFromDefinitionTest.java b/modules/catalog-dsl/src/test/java/org/apache/ignite/internal/catalog/sql/CreateFromDefinitionTest.java
index 51da66c003..721fe47c9e 100644
--- a/modules/catalog-dsl/src/test/java/org/apache/ignite/internal/catalog/sql/CreateFromDefinitionTest.java
+++ b/modules/catalog-dsl/src/test/java/org/apache/ignite/internal/catalog/sql/CreateFromDefinitionTest.java
@@ -50,7 +50,7 @@ class CreateFromDefinitionTest {
.ifNotExists()
.partitions(3)
.replicas(3)
- .affinity("affinity")
+ .distributionAlgorithm("partitionDistribution")
.dataNodesAutoAdjust(1)
.dataNodesAutoAdjustScaleDown(2)
.dataNodesAutoAdjustScaleUp(3)
@@ -61,7 +61,7 @@ class CreateFromDefinitionTest {
assertThat(
createZone(zone),
is("CREATE ZONE IF NOT EXISTS zone_test WITH STORAGE_PROFILES='default', PARTITIONS=3, REPLICAS=3,"
- + " AFFINITY_FUNCTION='affinity',"
+ + " DISTRIBUTION_ALGORITHM='partitionDistribution',"
+ " DATA_NODES_AUTO_ADJUST=1, DATA_NODES_AUTO_ADJUST_SCALE_UP=3, DATA_NODES_AUTO_ADJUST_SCALE_DOWN=2,"
+ " DATA_NODES_FILTER='filter';")
);
diff --git a/modules/catalog-dsl/src/test/java/org/apache/ignite/internal/catalog/sql/InvalidDefinitionTest.java b/modules/catalog-dsl/src/test/java/org/apache/ignite/internal/catalog/sql/InvalidDefinitionTest.java
index 8b12248634..f0e451f01d 100644
--- a/modules/catalog-dsl/src/test/java/org/apache/ignite/internal/catalog/sql/InvalidDefinitionTest.java
+++ b/modules/catalog-dsl/src/test/java/org/apache/ignite/internal/catalog/sql/InvalidDefinitionTest.java
@@ -44,7 +44,7 @@ class InvalidDefinitionTest {
assertZoneBuilderNull(ZoneDefinition.Builder::partitions, 1, "Number of partitions");
assertZoneBuilderNull(ZoneDefinition.Builder::replicas, 1, "Number of replicas");
- assertZoneBuilderNullOrBlank(ZoneDefinition.Builder::affinity, "a", "Affinity function");
+ assertZoneBuilderNullOrBlank(ZoneDefinition.Builder::distributionAlgorithm, "a", "Partition distribution algorithm");
assertZoneBuilderNull(ZoneDefinition.Builder::dataNodesAutoAdjust, 1,
"Timeout between node added or node left topology event itself and data nodes switch");
diff --git a/modules/client-handler/build.gradle b/modules/client-handler/build.gradle
index 5f5dd3f2fa..23c5628a0d 100644
--- a/modules/client-handler/build.gradle
+++ b/modules/client-handler/build.gradle
@@ -93,7 +93,7 @@ dependencies {
testFixturesImplementation project(':ignite-placement-driver-api')
testFixturesImplementation project(':ignite-catalog')
testFixturesImplementation project(':ignite-security-api')
- testFixturesImplementation project(':ignite-affinity')
+ testFixturesImplementation project(':ignite-partition-distribution')
testFixturesImplementation libs.mockito.junit
}
diff --git a/modules/client-handler/src/testFixtures/java/org/apache/ignite/client/handler/FakePlacementDriver.java b/modules/client-handler/src/testFixtures/java/org/apache/ignite/client/handler/FakePlacementDriver.java
index 70a295668c..de24ccdabb 100644
--- a/modules/client-handler/src/testFixtures/java/org/apache/ignite/client/handler/FakePlacementDriver.java
+++ b/modules/client-handler/src/testFixtures/java/org/apache/ignite/client/handler/FakePlacementDriver.java
@@ -25,9 +25,9 @@ import java.util.Collections;
import java.util.List;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.TimeUnit;
-import org.apache.ignite.internal.affinity.TokenizedAssignments;
import org.apache.ignite.internal.event.AbstractEventProducer;
import org.apache.ignite.internal.hlc.HybridTimestamp;
+import org.apache.ignite.internal.partitiondistribution.TokenizedAssignments;
import org.apache.ignite.internal.placementdriver.PlacementDriver;
import org.apache.ignite.internal.placementdriver.ReplicaMeta;
import org.apache.ignite.internal.placementdriver.event.PrimaryReplicaEvent;
diff --git a/modules/distribution-zones/README.md b/modules/distribution-zones/README.md
index 310122ea74..e672a91b6c 100644
--- a/modules/distribution-zones/README.md
+++ b/modules/distribution-zones/README.md
@@ -1,8 +1,8 @@
This module provides implementations for the Distribution Zones module.
## Brief overview
-Data partitioning in Apache Ignite is controlled by the affinity function that determines the mapping both between keys and partitions
-and partitions and nodes. Specifying an affinity function along with replica factor and partitions count sometimes is not enough,
+Data partitioning in Apache Ignite is controlled by the partition distribution algorithm that determines the mapping both between keys and
+partitions and partitions and nodes. Specifying these parameters sometimes is not enough,
meaning that explicit fine grained tuning is required in order to control what data goes where.
Distribution zones provides aforementioned configuration possibilities that eventually makes it possible to achieve following goals:
diff --git a/modules/distribution-zones/build.gradle b/modules/distribution-zones/build.gradle
index e7a915d884..c29a4595c3 100644
--- a/modules/distribution-zones/build.gradle
+++ b/modules/distribution-zones/build.gradle
@@ -32,7 +32,7 @@ dependencies {
implementation project(':ignite-metastorage-api')
implementation project(':ignite-vault')
implementation project(':ignite-schema')
- implementation project(':ignite-affinity')
+ implementation project(':ignite-partition-distribution')
implementation project(':ignite-catalog')
implementation project(':ignite-raft-api')
@@ -89,7 +89,7 @@ dependencies {
integrationTestImplementation project(':ignite-vault')
integrationTestImplementation project(':ignite-table')
integrationTestImplementation project(':ignite-catalog')
- integrationTestImplementation project(':ignite-affinity')
+ integrationTestImplementation project(':ignite-partition-distribution')
integrationTestImplementation project(':ignite-network-api')
integrationTestImplementation project(':ignite-network')
integrationTestImplementation project(':ignite-security')
diff --git a/modules/distribution-zones/src/integrationTest/java/org/apache/ignite/internal/distributionzones/ItDistributionZonesFiltersTest.java b/modules/distribution-zones/src/integrationTest/java/org/apache/ignite/internal/distributionzones/ItDistributionZonesFiltersTest.java
index a874613c36..149d3529bc 100644
--- a/modules/distribution-zones/src/integrationTest/java/org/apache/ignite/internal/distributionzones/ItDistributionZonesFiltersTest.java
+++ b/modules/distribution-zones/src/integrationTest/java/org/apache/ignite/internal/distributionzones/ItDistributionZonesFiltersTest.java
@@ -40,13 +40,13 @@ import java.util.concurrent.ExecutionException;
import java.util.stream.Collectors;
import org.apache.ignite.Ignite;
import org.apache.ignite.internal.ClusterPerTestIntegrationTest;
-import org.apache.ignite.internal.affinity.Assignment;
-import org.apache.ignite.internal.affinity.Assignments;
import org.apache.ignite.internal.app.IgniteImpl;
import org.apache.ignite.internal.catalog.events.CatalogEvent;
import org.apache.ignite.internal.lang.ByteArray;
import org.apache.ignite.internal.metastorage.Entry;
import org.apache.ignite.internal.metastorage.MetaStorageManager;
+import org.apache.ignite.internal.partitiondistribution.Assignment;
+import org.apache.ignite.internal.partitiondistribution.Assignments;
import org.apache.ignite.internal.replicator.TablePartitionId;
import org.apache.ignite.internal.table.TableViewInternal;
import org.apache.ignite.internal.table.distributed.TableManager;
diff --git a/modules/distribution-zones/src/main/java/org/apache/ignite/internal/distributionzones/rebalance/RebalanceRaftGroupEventsListener.java b/modules/distribution-zones/src/main/java/org/apache/ignite/internal/distributionzones/rebalance/RebalanceRaftGroupEventsListener.java
index 1be642517e..8beaa8522e 100644
--- a/modules/distribution-zones/src/main/java/org/apache/ignite/internal/distributionzones/rebalance/RebalanceRaftGroupEventsListener.java
+++ b/modules/distribution-zones/src/main/java/org/apache/ignite/internal/distributionzones/rebalance/RebalanceRaftGroupEventsListener.java
@@ -44,8 +44,6 @@ import java.util.concurrent.atomic.AtomicInteger;
import java.util.function.BiFunction;
import java.util.stream.Collectors;
import java.util.stream.Stream;
-import org.apache.ignite.internal.affinity.Assignment;
-import org.apache.ignite.internal.affinity.Assignments;
import org.apache.ignite.internal.lang.ByteArray;
import org.apache.ignite.internal.logger.IgniteLogger;
import org.apache.ignite.internal.logger.Loggers;
@@ -54,6 +52,8 @@ import org.apache.ignite.internal.metastorage.MetaStorageManager;
import org.apache.ignite.internal.metastorage.dsl.Condition;
import org.apache.ignite.internal.metastorage.dsl.SimpleCondition;
import org.apache.ignite.internal.metastorage.dsl.Update;
+import org.apache.ignite.internal.partitiondistribution.Assignment;
+import org.apache.ignite.internal.partitiondistribution.Assignments;
import org.apache.ignite.internal.raft.PeersAndLearners;
import org.apache.ignite.internal.raft.RaftError;
import org.apache.ignite.internal.raft.RaftGroupEventsListener;
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 647965706a..c859d8a411 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
@@ -34,6 +34,7 @@ import static org.apache.ignite.internal.metastorage.dsl.Operations.ops;
import static org.apache.ignite.internal.metastorage.dsl.Operations.put;
import static org.apache.ignite.internal.metastorage.dsl.Operations.remove;
import static org.apache.ignite.internal.metastorage.dsl.Statements.iif;
+import static org.apache.ignite.internal.partitiondistribution.PartitionDistributionUtils.calculateAssignmentForPartition;
import static org.apache.ignite.internal.util.ByteUtils.longToBytesKeepingOrder;
import static org.apache.ignite.internal.util.CompletableFutures.nullCompletedFuture;
@@ -46,9 +47,6 @@ import java.util.Map;
import java.util.Set;
import java.util.concurrent.CompletableFuture;
import java.util.stream.IntStream;
-import org.apache.ignite.internal.affinity.AffinityUtils;
-import org.apache.ignite.internal.affinity.Assignment;
-import org.apache.ignite.internal.affinity.Assignments;
import org.apache.ignite.internal.catalog.descriptors.CatalogTableDescriptor;
import org.apache.ignite.internal.catalog.descriptors.CatalogZoneDescriptor;
import org.apache.ignite.internal.hlc.HybridTimestamp;
@@ -59,6 +57,8 @@ import org.apache.ignite.internal.metastorage.Entry;
import org.apache.ignite.internal.metastorage.MetaStorageManager;
import org.apache.ignite.internal.metastorage.dsl.Condition;
import org.apache.ignite.internal.metastorage.dsl.Iif;
+import org.apache.ignite.internal.partitiondistribution.Assignment;
+import org.apache.ignite.internal.partitiondistribution.Assignments;
import org.apache.ignite.internal.replicator.TablePartitionId;
import org.jetbrains.annotations.Nullable;
@@ -156,7 +156,7 @@ public class RebalanceUtil {
ByteArray partAssignmentsStableKey = stablePartAssignmentsKey(partId);
- Set<Assignment> partAssignments = AffinityUtils.calculateAssignmentForPartition(dataNodes, partNum, replicas);
+ Set<Assignment> partAssignments = calculateAssignmentForPartition(dataNodes, partNum, replicas);
boolean isNewAssignments = !tableCfgPartAssignments.equals(partAssignments);
diff --git a/modules/distribution-zones/src/main/java/org/apache/ignite/internal/distributionzones/rebalance/ZoneRebalanceRaftGroupEventsListener.java b/modules/distribution-zones/src/main/java/org/apache/ignite/internal/distributionzones/rebalance/ZoneRebalanceRaftGroupEventsListener.java
index 113d77d3ca..384b8802df 100644
--- a/modules/distribution-zones/src/main/java/org/apache/ignite/internal/distributionzones/rebalance/ZoneRebalanceRaftGroupEventsListener.java
+++ b/modules/distribution-zones/src/main/java/org/apache/ignite/internal/distributionzones/rebalance/ZoneRebalanceRaftGroupEventsListener.java
@@ -32,6 +32,7 @@ import static org.apache.ignite.internal.metastorage.dsl.Operations.ops;
import static org.apache.ignite.internal.metastorage.dsl.Operations.put;
import static org.apache.ignite.internal.metastorage.dsl.Operations.remove;
import static org.apache.ignite.internal.metastorage.dsl.Statements.iif;
+import static org.apache.ignite.internal.partitiondistribution.PartitionDistributionUtils.calculateAssignmentForPartition;
import static org.apache.ignite.internal.util.CollectionUtils.difference;
import static org.apache.ignite.internal.util.CollectionUtils.intersect;
import static org.apache.ignite.internal.util.CompletableFutures.nullCompletedFuture;
@@ -48,9 +49,6 @@ import java.util.concurrent.atomic.AtomicInteger;
import java.util.function.BiFunction;
import java.util.stream.Collectors;
import java.util.stream.Stream;
-import org.apache.ignite.internal.affinity.AffinityUtils;
-import org.apache.ignite.internal.affinity.Assignment;
-import org.apache.ignite.internal.affinity.Assignments;
import org.apache.ignite.internal.lang.ByteArray;
import org.apache.ignite.internal.logger.IgniteLogger;
import org.apache.ignite.internal.logger.Loggers;
@@ -61,6 +59,8 @@ import org.apache.ignite.internal.metastorage.dsl.Condition;
import org.apache.ignite.internal.metastorage.dsl.Iif;
import org.apache.ignite.internal.metastorage.dsl.SimpleCondition;
import org.apache.ignite.internal.metastorage.dsl.Update;
+import org.apache.ignite.internal.partitiondistribution.Assignment;
+import org.apache.ignite.internal.partitiondistribution.Assignments;
import org.apache.ignite.internal.raft.PeersAndLearners;
import org.apache.ignite.internal.raft.RaftError;
import org.apache.ignite.internal.raft.RaftGroupEventsListener;
@@ -565,7 +565,7 @@ public class ZoneRebalanceRaftGroupEventsListener implements RaftGroupEventsList
return nullCompletedFuture();
}
- Set<Assignment> assignments = AffinityUtils.calculateAssignmentForPartition(dataNodes, partId.partitionId(), replicas);
+ Set<Assignment> assignments = calculateAssignmentForPartition(dataNodes, partId.partitionId(), replicas);
ByteArray pendingKey = pendingPartAssignmentsKey(partId);
diff --git a/modules/distribution-zones/src/main/java/org/apache/ignite/internal/distributionzones/rebalance/ZoneRebalanceUtil.java b/modules/distribution-zones/src/main/java/org/apache/ignite/internal/distributionzones/rebalance/ZoneRebalanceUtil.java
index 63cdd13ca5..67ad4a9fcf 100644
--- a/modules/distribution-zones/src/main/java/org/apache/ignite/internal/distributionzones/rebalance/ZoneRebalanceUtil.java
+++ b/modules/distribution-zones/src/main/java/org/apache/ignite/internal/distributionzones/rebalance/ZoneRebalanceUtil.java
@@ -36,6 +36,7 @@ import static org.apache.ignite.internal.metastorage.dsl.Operations.ops;
import static org.apache.ignite.internal.metastorage.dsl.Operations.put;
import static org.apache.ignite.internal.metastorage.dsl.Operations.remove;
import static org.apache.ignite.internal.metastorage.dsl.Statements.iif;
+import static org.apache.ignite.internal.partitiondistribution.PartitionDistributionUtils.calculateAssignmentForPartition;
import static org.apache.ignite.internal.util.ByteUtils.longToBytesKeepingOrder;
import static org.apache.ignite.internal.util.CompletableFutures.nullCompletedFuture;
import static org.apache.ignite.internal.util.IgniteUtils.inBusyLockAsync;
@@ -50,9 +51,6 @@ import java.util.Set;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ConcurrentHashMap;
import java.util.stream.IntStream;
-import org.apache.ignite.internal.affinity.AffinityUtils;
-import org.apache.ignite.internal.affinity.Assignment;
-import org.apache.ignite.internal.affinity.Assignments;
import org.apache.ignite.internal.catalog.descriptors.CatalogZoneDescriptor;
import org.apache.ignite.internal.distributionzones.DistributionZonesUtil;
import org.apache.ignite.internal.hlc.HybridTimestamp;
@@ -63,6 +61,8 @@ import org.apache.ignite.internal.metastorage.Entry;
import org.apache.ignite.internal.metastorage.MetaStorageManager;
import org.apache.ignite.internal.metastorage.dsl.Condition;
import org.apache.ignite.internal.metastorage.dsl.Iif;
+import org.apache.ignite.internal.partitiondistribution.Assignment;
+import org.apache.ignite.internal.partitiondistribution.Assignments;
import org.apache.ignite.internal.replicator.ZonePartitionId;
import org.apache.ignite.internal.util.ExceptionUtils;
import org.apache.ignite.internal.util.IgniteSpinBusyLock;
@@ -157,7 +157,7 @@ public class ZoneRebalanceUtil {
ByteArray partAssignmentsStableKey = stablePartAssignmentsKey(zonePartitionId);
- Set<Assignment> partAssignments = AffinityUtils.calculateAssignmentForPartition(dataNodes, partNum, replicas);
+ Set<Assignment> partAssignments = calculateAssignmentForPartition(dataNodes, partNum, replicas);
boolean isNewAssignments = !zoneCfgPartAssignments.equals(partAssignments);
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 3b1080a69a..4e361d4daf 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
@@ -21,7 +21,6 @@ import static java.nio.charset.StandardCharsets.UTF_8;
import static java.util.Collections.emptySet;
import static java.util.concurrent.CompletableFuture.completedFuture;
import static java.util.stream.Collectors.toSet;
-import static org.apache.ignite.internal.affinity.AffinityUtils.calculateAssignmentForPartition;
import static org.apache.ignite.internal.catalog.CatalogService.DEFAULT_STORAGE_PROFILE;
import static org.apache.ignite.internal.catalog.CatalogTestUtils.createTestCatalogManager;
import static org.apache.ignite.internal.distributionzones.DistributionZonesTestUtil.getDefaultZone;
@@ -30,6 +29,8 @@ import static org.apache.ignite.internal.distributionzones.DistributionZonesUtil
import static org.apache.ignite.internal.distributionzones.DistributionZonesUtil.zoneDataNodesKey;
import static org.apache.ignite.internal.distributionzones.rebalance.RebalanceUtil.stablePartAssignmentsKey;
import static org.apache.ignite.internal.hlc.HybridTimestamp.hybridTimestamp;
+import static org.apache.ignite.internal.partitiondistribution.PartitionDistributionUtils.calculateAssignmentForPartition;
+import static org.apache.ignite.internal.partitiondistribution.PartitionDistributionUtils.calculateAssignments;
import static org.apache.ignite.internal.table.TableTestUtils.getTableIdStrict;
import static org.apache.ignite.internal.testframework.IgniteTestUtils.waitForCondition;
import static org.apache.ignite.internal.testframework.matchers.CompletableFutureMatcher.willCompleteSuccessfully;
@@ -62,9 +63,6 @@ import java.util.UUID;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.atomic.AtomicLong;
import java.util.function.Function;
-import org.apache.ignite.internal.affinity.AffinityUtils;
-import org.apache.ignite.internal.affinity.Assignment;
-import org.apache.ignite.internal.affinity.Assignments;
import org.apache.ignite.internal.catalog.CatalogManager;
import org.apache.ignite.internal.catalog.commands.ColumnParams;
import org.apache.ignite.internal.catalog.descriptors.CatalogZoneDescriptor;
@@ -95,6 +93,8 @@ import org.apache.ignite.internal.metastorage.server.raft.MetaStorageListener;
import org.apache.ignite.internal.metastorage.server.time.ClusterTimeImpl;
import org.apache.ignite.internal.network.ClusterService;
import org.apache.ignite.internal.network.MessagingService;
+import org.apache.ignite.internal.partitiondistribution.Assignment;
+import org.apache.ignite.internal.partitiondistribution.Assignments;
import org.apache.ignite.internal.raft.Command;
import org.apache.ignite.internal.raft.WriteCommand;
import org.apache.ignite.internal.raft.service.CommandClosure;
@@ -570,7 +570,7 @@ public class DistributionZoneRebalanceEngineTest extends IgniteAbstractTest {
Set<String> initialDataNodes = Set.of("node0");
List<Set<Assignment>> initialAssignments =
- AffinityUtils.calculateAssignments(initialDataNodes, zoneDescriptor.partitions(), zoneDescriptor.replicas());
+ calculateAssignments(initialDataNodes, zoneDescriptor.partitions(), zoneDescriptor.replicas());
int catalogVersion = catalogManager.latestCatalogVersion();
long timestamp = catalogManager.catalog(catalogVersion).time();
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 82fd16a37d..1ee92c3495 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
@@ -18,10 +18,10 @@
package org.apache.ignite.internal.distributionzones.rebalance;
import static java.util.stream.Collectors.toSet;
-import static org.apache.ignite.internal.affinity.AffinityUtils.calculateAssignmentForPartition;
-import static org.apache.ignite.internal.affinity.Assignments.toBytes;
import static org.apache.ignite.internal.catalog.CatalogService.DEFAULT_STORAGE_PROFILE;
import static org.apache.ignite.internal.hlc.HybridTimestamp.hybridTimestamp;
+import static org.apache.ignite.internal.partitiondistribution.Assignments.toBytes;
+import static org.apache.ignite.internal.partitiondistribution.PartitionDistributionUtils.calculateAssignmentForPartition;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertNull;
@@ -39,8 +39,6 @@ import java.util.UUID;
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.affinity.Assignments;
import org.apache.ignite.internal.catalog.descriptors.CatalogTableColumnDescriptor;
import org.apache.ignite.internal.catalog.descriptors.CatalogTableDescriptor;
import org.apache.ignite.internal.configuration.testframework.ConfigurationExtension;
@@ -61,6 +59,8 @@ import org.apache.ignite.internal.metastorage.server.raft.MetaStorageListener;
import org.apache.ignite.internal.metastorage.server.time.ClusterTimeImpl;
import org.apache.ignite.internal.network.ClusterService;
import org.apache.ignite.internal.network.MessagingService;
+import org.apache.ignite.internal.partitiondistribution.Assignment;
+import org.apache.ignite.internal.partitiondistribution.Assignments;
import org.apache.ignite.internal.raft.Command;
import org.apache.ignite.internal.raft.WriteCommand;
import org.apache.ignite.internal.raft.service.CommandClosure;
diff --git a/modules/index/build.gradle b/modules/index/build.gradle
index c743cddd53..ae204bd1c8 100644
--- a/modules/index/build.gradle
+++ b/modules/index/build.gradle
@@ -40,7 +40,7 @@ dependencies {
implementation project(':ignite-cluster-management')
implementation project(':ignite-low-watermark')
implementation project(':ignite-partition-replicator')
- implementation project(':ignite-affinity')
+ implementation project(':ignite-partition-distribution')
implementation libs.jetbrains.annotations
testImplementation(testFixtures(project(':ignite-configuration')))
@@ -68,7 +68,7 @@ dependencies {
integrationTestImplementation project(':ignite-storage-api')
integrationTestImplementation project(':ignite-transactions')
integrationTestImplementation project(':ignite-distribution-zones')
- integrationTestImplementation project(':ignite-affinity')
+ integrationTestImplementation project(':ignite-partition-distribution')
integrationTestImplementation project(':ignite-metastorage-api')
integrationTestImplementation project(':ignite-storage-page-memory')
integrationTestImplementation project(':ignite-storage-rocksdb')
diff --git a/modules/index/src/integrationTest/java/org/apache/ignite/internal/index/ItBuildIndexTest.java b/modules/index/src/integrationTest/java/org/apache/ignite/internal/index/ItBuildIndexTest.java
index 48ef9e20aa..5fd73bb40b 100644
--- a/modules/index/src/integrationTest/java/org/apache/ignite/internal/index/ItBuildIndexTest.java
+++ b/modules/index/src/integrationTest/java/org/apache/ignite/internal/index/ItBuildIndexTest.java
@@ -48,14 +48,14 @@ import java.util.function.BiPredicate;
import java.util.stream.Stream;
import org.apache.ignite.Ignite;
import org.apache.ignite.internal.TestWrappers;
-import org.apache.ignite.internal.affinity.Assignment;
-import org.apache.ignite.internal.affinity.TokenizedAssignments;
import org.apache.ignite.internal.app.IgniteImpl;
import org.apache.ignite.internal.catalog.descriptors.CatalogIndexDescriptor;
import org.apache.ignite.internal.catalog.descriptors.CatalogTableDescriptor;
import org.apache.ignite.internal.hlc.HybridTimestamp;
import org.apache.ignite.internal.network.NetworkMessage;
import org.apache.ignite.internal.partition.replicator.network.command.BuildIndexCommand;
+import org.apache.ignite.internal.partitiondistribution.Assignment;
+import org.apache.ignite.internal.partitiondistribution.TokenizedAssignments;
import org.apache.ignite.internal.placementdriver.PlacementDriver;
import org.apache.ignite.internal.placementdriver.ReplicaMeta;
import org.apache.ignite.internal.raft.Command;
diff --git a/modules/index/src/integrationTest/java/org/apache/ignite/internal/index/ItIndexAndRebalanceTest.java b/modules/index/src/integrationTest/java/org/apache/ignite/internal/index/ItIndexAndRebalanceTest.java
index 87b62e9ba7..9e7f51f9a1 100644
--- a/modules/index/src/integrationTest/java/org/apache/ignite/internal/index/ItIndexAndRebalanceTest.java
+++ b/modules/index/src/integrationTest/java/org/apache/ignite/internal/index/ItIndexAndRebalanceTest.java
@@ -31,8 +31,8 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
import java.util.Set;
import java.util.concurrent.CompletableFuture;
import org.apache.ignite.Ignite;
-import org.apache.ignite.internal.affinity.Assignment;
import org.apache.ignite.internal.app.IgniteImpl;
+import org.apache.ignite.internal.partitiondistribution.Assignment;
import org.apache.ignite.internal.sql.BaseSqlIntegrationTest;
import org.apache.ignite.internal.sql.SqlCommon;
import org.junit.jupiter.api.BeforeEach;
diff --git a/modules/index/src/test/java/org/apache/ignite/internal/index/TestPlacementDriver.java b/modules/index/src/test/java/org/apache/ignite/internal/index/TestPlacementDriver.java
index 5fadd2b1be..12904f9573 100644
--- a/modules/index/src/test/java/org/apache/ignite/internal/index/TestPlacementDriver.java
+++ b/modules/index/src/test/java/org/apache/ignite/internal/index/TestPlacementDriver.java
@@ -24,9 +24,9 @@ import java.util.Map;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.TimeUnit;
-import org.apache.ignite.internal.affinity.TokenizedAssignments;
import org.apache.ignite.internal.event.AbstractEventProducer;
import org.apache.ignite.internal.hlc.HybridTimestamp;
+import org.apache.ignite.internal.partitiondistribution.TokenizedAssignments;
import org.apache.ignite.internal.placementdriver.PlacementDriver;
import org.apache.ignite.internal.placementdriver.ReplicaMeta;
import org.apache.ignite.internal.placementdriver.event.PrimaryReplicaEvent;
diff --git a/modules/jacoco-report/build.gradle b/modules/jacoco-report/build.gradle
index 4ff0312858..46cc5078ed 100644
--- a/modules/jacoco-report/build.gradle
+++ b/modules/jacoco-report/build.gradle
@@ -20,7 +20,7 @@ apply from: "$rootDir/buildscripts/publishing.gradle"
apply from: "$rootDir/buildscripts/java-junit5.gradle"
dependencies {
- implementation project(':ignite-affinity')
+ implementation project(':ignite-partition-distribution')
implementation project(':ignite-api')
implementation project(':ignite-bytecode')
implementation project(':ignite-compute')
diff --git a/modules/page-memory/src/main/java/org/apache/ignite/internal/pagememory/PageIdAllocator.java b/modules/page-memory/src/main/java/org/apache/ignite/internal/pagememory/PageIdAllocator.java
index 0f062a91bd..39b16ae90a 100644
--- a/modules/page-memory/src/main/java/org/apache/ignite/internal/pagememory/PageIdAllocator.java
+++ b/modules/page-memory/src/main/java/org/apache/ignite/internal/pagememory/PageIdAllocator.java
@@ -43,7 +43,7 @@ public interface PageIdAllocator {
byte FLAG_AUX = 2;
/**
- * Max partition ID that can be used by affinity.
+ * Max partition ID that can be used by partition distribution algorithm.
*/
// TODO IGNITE-16350 Use constant from the table configuration.
int MAX_PARTITION_ID = 65500;
diff --git a/modules/affinity/build.gradle b/modules/partition-distribution/build.gradle
similarity index 96%
rename from modules/affinity/build.gradle
rename to modules/partition-distribution/build.gradle
index 3fcbd34bd4..50788d0cdb 100644
--- a/modules/affinity/build.gradle
+++ b/modules/partition-distribution/build.gradle
@@ -19,7 +19,7 @@ apply from: "$rootDir/buildscripts/java-core.gradle"
apply from: "$rootDir/buildscripts/publishing.gradle"
apply from: "$rootDir/buildscripts/java-junit5.gradle"
-description = 'ignite-affinity'
+description = 'ignite-partition-distribution'
dependencies {
implementation project(':ignite-api')
diff --git a/modules/affinity/src/main/java/org/apache/ignite/internal/affinity/Assignment.java b/modules/partition-distribution/src/main/java/org/apache/ignite/internal/partitiondistribution/Assignment.java
similarity index 98%
rename from modules/affinity/src/main/java/org/apache/ignite/internal/affinity/Assignment.java
rename to modules/partition-distribution/src/main/java/org/apache/ignite/internal/partitiondistribution/Assignment.java
index e26ad97066..ef82cccf82 100644
--- a/modules/affinity/src/main/java/org/apache/ignite/internal/affinity/Assignment.java
+++ b/modules/partition-distribution/src/main/java/org/apache/ignite/internal/partitiondistribution/Assignment.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.ignite.internal.affinity;
+package org.apache.ignite.internal.partitiondistribution;
import java.io.Serializable;
import org.apache.ignite.internal.tostring.S;
diff --git a/modules/affinity/src/main/java/org/apache/ignite/internal/affinity/Assignments.java b/modules/partition-distribution/src/main/java/org/apache/ignite/internal/partitiondistribution/Assignments.java
similarity index 99%
rename from modules/affinity/src/main/java/org/apache/ignite/internal/affinity/Assignments.java
rename to modules/partition-distribution/src/main/java/org/apache/ignite/internal/partitiondistribution/Assignments.java
index 162c28b112..e60ed4cff4 100644
--- a/modules/affinity/src/main/java/org/apache/ignite/internal/affinity/Assignments.java
+++ b/modules/partition-distribution/src/main/java/org/apache/ignite/internal/partitiondistribution/Assignments.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.ignite.internal.affinity;
+package org.apache.ignite.internal.partitiondistribution;
import static java.util.Collections.unmodifiableSet;
diff --git a/modules/affinity/src/main/java/org/apache/ignite/internal/affinity/AffinityUtils.java b/modules/partition-distribution/src/main/java/org/apache/ignite/internal/partitiondistribution/PartitionDistributionUtils.java
similarity index 77%
rename from modules/affinity/src/main/java/org/apache/ignite/internal/affinity/AffinityUtils.java
rename to modules/partition-distribution/src/main/java/org/apache/ignite/internal/partitiondistribution/PartitionDistributionUtils.java
index 8add373555..694730c982 100644
--- a/modules/affinity/src/main/java/org/apache/ignite/internal/affinity/AffinityUtils.java
+++ b/modules/partition-distribution/src/main/java/org/apache/ignite/internal/partitiondistribution/PartitionDistributionUtils.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.ignite.internal.affinity;
+package org.apache.ignite.internal.partitiondistribution;
import static java.util.stream.Collectors.toList;
import static java.util.stream.Collectors.toSet;
@@ -27,11 +27,11 @@ import java.util.List;
import java.util.Set;
/**
- * Stateless affinity utils that produces helper methods for an affinity assignments calculation.
+ * Stateless distribution utils that produces helper methods for an assignments distribution calculation.
*/
-public class AffinityUtils {
+public class PartitionDistributionUtils {
/**
- * Calculates affinity assignments.
+ * Calculates assignments distribution.
*
* @param dataNodes Data nodes.
* @param partitions Partitions count.
@@ -39,7 +39,7 @@ public class AffinityUtils {
* @return List assignments by partition.
*/
public static List<Set<Assignment>> calculateAssignments(Collection<String> dataNodes, int partitions, int replicas) {
- List<Set<String>> affinityNodes = RendezvousAffinityFunction.assignPartitions(
+ List<Set<String>> nodes = RendezvousDistributionFunction.assignPartitions(
dataNodes,
partitions,
replicas,
@@ -48,11 +48,11 @@ public class AffinityUtils {
HashSet::new
);
- return affinityNodes.stream().map(AffinityUtils::dataNodesToAssignments).collect(toList());
+ return nodes.stream().map(PartitionDistributionUtils::dataNodesToAssignments).collect(toList());
}
/**
- * Calculates affinity assignments for a single partition.
+ * Calculates assignments distribution for a single partition.
*
* @param dataNodes Data nodes.
* @param partitionId Partition id.
@@ -60,7 +60,7 @@ public class AffinityUtils {
* @return Set of assignments.
*/
public static Set<Assignment> calculateAssignmentForPartition(Collection<String> dataNodes, int partitionId, int replicas) {
- Set<String> affinityNodes = RendezvousAffinityFunction.assignPartition(
+ Set<String> nodes = RendezvousDistributionFunction.assignPartition(
partitionId,
new ArrayList<>(dataNodes),
replicas,
@@ -70,7 +70,7 @@ public class AffinityUtils {
HashSet::new
);
- return dataNodesToAssignments(affinityNodes);
+ return dataNodesToAssignments(nodes);
}
private static Set<Assignment> dataNodesToAssignments(Collection<String> nodes) {
diff --git a/modules/affinity/src/main/java/org/apache/ignite/internal/affinity/RendezvousAffinityFunction.java b/modules/partition-distribution/src/main/java/org/apache/ignite/internal/partitiondistribution/RendezvousDistributionFunction.java
similarity index 96%
rename from modules/affinity/src/main/java/org/apache/ignite/internal/affinity/RendezvousAffinityFunction.java
rename to modules/partition-distribution/src/main/java/org/apache/ignite/internal/partitiondistribution/RendezvousDistributionFunction.java
index d452eb83a1..0f5e2c99c4 100644
--- a/modules/affinity/src/main/java/org/apache/ignite/internal/affinity/RendezvousAffinityFunction.java
+++ b/modules/partition-distribution/src/main/java/org/apache/ignite/internal/partitiondistribution/RendezvousDistributionFunction.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.ignite.internal.affinity;
+package org.apache.ignite.internal.partitiondistribution;
import java.io.Serializable;
import java.util.ArrayList;
@@ -35,7 +35,8 @@ import org.apache.ignite.internal.logger.IgniteLogger;
import org.apache.ignite.internal.logger.Loggers;
/**
- * Affinity function for partitioned table based on Highest Random Weight algorithm. This function supports the following configuration:
+ * Partition distribution function for partitioned table based on Highest Random Weight algorithm. This function supports the following
+ * configuration:
* <ul>
* <li>
* {@code partitions} - Number of partitions to spread across nodes.
@@ -53,9 +54,9 @@ import org.apache.ignite.internal.logger.Loggers;
* </li>
* </ul>
*/
-public class RendezvousAffinityFunction {
+public class RendezvousDistributionFunction {
/** The logger. */
- private static final IgniteLogger LOG = Loggers.forClass(RendezvousAffinityFunction.class);
+ private static final IgniteLogger LOG = Loggers.forClass(RendezvousDistributionFunction.class);
/** Comparator. */
private static final Comparator<IgniteBiTuple<Long, String>> COMPARATOR = new HashComparator();
@@ -161,7 +162,7 @@ public class RendezvousAffinityFunction {
}
if (!exclNeighborsWarn) {
- LOG.warn("Affinity function excludeNeighbors property is ignored "
+ LOG.warn("Distribution function excludeNeighbors property is ignored "
+ "because topology has no enough nodes to assign all replicas.");
exclNeighborsWarn = true;
@@ -420,7 +421,7 @@ public class RendezvousAffinityFunction {
/** {@inheritDoc} */
@Override
public String toString() {
- return "U.toString(RendezvousAffinityFunction.class, this)";
+ return "U.toString(RendezvousDistributionFunction.class, this)";
}
/**
diff --git a/modules/affinity/src/main/java/org/apache/ignite/internal/affinity/TokenizedAssignments.java b/modules/partition-distribution/src/main/java/org/apache/ignite/internal/partitiondistribution/TokenizedAssignments.java
similarity index 95%
rename from modules/affinity/src/main/java/org/apache/ignite/internal/affinity/TokenizedAssignments.java
rename to modules/partition-distribution/src/main/java/org/apache/ignite/internal/partitiondistribution/TokenizedAssignments.java
index 887f841d1f..c86401c839 100644
--- a/modules/affinity/src/main/java/org/apache/ignite/internal/affinity/TokenizedAssignments.java
+++ b/modules/partition-distribution/src/main/java/org/apache/ignite/internal/partitiondistribution/TokenizedAssignments.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.ignite.internal.affinity;
+package org.apache.ignite.internal.partitiondistribution;
import java.io.Serializable;
import java.util.Set;
diff --git a/modules/affinity/src/main/java/org/apache/ignite/internal/affinity/TokenizedAssignmentsImpl.java b/modules/partition-distribution/src/main/java/org/apache/ignite/internal/partitiondistribution/TokenizedAssignmentsImpl.java
similarity index 96%
rename from modules/affinity/src/main/java/org/apache/ignite/internal/affinity/TokenizedAssignmentsImpl.java
rename to modules/partition-distribution/src/main/java/org/apache/ignite/internal/partitiondistribution/TokenizedAssignmentsImpl.java
index d3d7db5d82..ba25a8c180 100644
--- a/modules/affinity/src/main/java/org/apache/ignite/internal/affinity/TokenizedAssignmentsImpl.java
+++ b/modules/partition-distribution/src/main/java/org/apache/ignite/internal/partitiondistribution/TokenizedAssignmentsImpl.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.ignite.internal.affinity;
+package org.apache.ignite.internal.partitiondistribution;
import static java.util.Collections.unmodifiableSet;
diff --git a/modules/affinity/src/test/java/org/apache/ignite/internal/affinity/AffinityServiceTest.java b/modules/partition-distribution/src/test/java/org/apache/ignite/internal/partitiondistribution/PartitionDistributionServiceTest.java
similarity index 75%
rename from modules/affinity/src/test/java/org/apache/ignite/internal/affinity/AffinityServiceTest.java
rename to modules/partition-distribution/src/test/java/org/apache/ignite/internal/partitiondistribution/PartitionDistributionServiceTest.java
index 0d0012d4bf..5abbb9d623 100644
--- a/modules/affinity/src/test/java/org/apache/ignite/internal/affinity/AffinityServiceTest.java
+++ b/modules/partition-distribution/src/test/java/org/apache/ignite/internal/partitiondistribution/PartitionDistributionServiceTest.java
@@ -15,8 +15,9 @@
* limitations under the License.
*/
-package org.apache.ignite.internal.affinity;
+package org.apache.ignite.internal.partitiondistribution;
+import static org.apache.ignite.internal.partitiondistribution.PartitionDistributionUtils.calculateAssignments;
import static org.junit.jupiter.api.Assertions.assertEquals;
import java.util.Arrays;
@@ -26,13 +27,13 @@ import java.util.Set;
import org.junit.jupiter.api.Test;
/**
- * Tests scenarios for an affinity service. Please pay attention that given test doesn't check Rendezvous or any other affinity function it
- * just checks {@link AffinityUtils} logic.
+ * Tests scenarios for the distribution service. Please pay attention that given test doesn't check Rendezvous or any other
+ * distribution function it just checks {@link PartitionDistributionUtils} logic.
*/
-public class AffinityServiceTest {
+public class PartitionDistributionServiceTest {
@Test
public void testCalculatedAssignmentHappyPath() {
- List<Set<Assignment>> assignments = AffinityUtils.calculateAssignments(
+ List<Set<Assignment>> assignments = calculateAssignments(
Arrays.asList("node0", "node1"),
10,
3
@@ -47,7 +48,7 @@ public class AffinityServiceTest {
@Test
public void testEmptyBaselineAssignmentsCalculation() {
- List<Set<Assignment>> assignments = AffinityUtils.calculateAssignments(
+ List<Set<Assignment>> assignments = calculateAssignments(
Collections.emptyList(),
10,
3
diff --git a/modules/affinity/src/test/java/org/apache/ignite/internal/affinity/RendezvousAffinityFunctionTest.java b/modules/partition-distribution/src/test/java/org/apache/ignite/internal/partitiondistribution/RendezvousDistributionFunctionTest.java
similarity index 90%
rename from modules/affinity/src/test/java/org/apache/ignite/internal/affinity/RendezvousAffinityFunctionTest.java
rename to modules/partition-distribution/src/test/java/org/apache/ignite/internal/partitiondistribution/RendezvousDistributionFunctionTest.java
index 096d312919..6d9051dae1 100644
--- a/modules/affinity/src/test/java/org/apache/ignite/internal/affinity/RendezvousAffinityFunctionTest.java
+++ b/modules/partition-distribution/src/test/java/org/apache/ignite/internal/partitiondistribution/RendezvousDistributionFunctionTest.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.ignite.internal.affinity;
+package org.apache.ignite.internal.partitiondistribution;
import static java.util.Objects.nonNull;
import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -37,14 +37,14 @@ import org.apache.ignite.network.ClusterNode;
import org.junit.jupiter.api.Test;
/**
- * Test for affinity function.
+ * Test for Rendezvous distribution function.
*/
-public class RendezvousAffinityFunctionTest {
+public class RendezvousDistributionFunctionTest {
/** The logger. */
- private static final IgniteLogger LOG = Loggers.forClass(RendezvousAffinityFunctionTest.class);
+ private static final IgniteLogger LOG = Loggers.forClass(RendezvousDistributionFunctionTest.class);
- /** Affinity deviation ratio. */
- public static final double AFFINITY_DEVIATION_RATIO = 0.2;
+ /** Distribution deviation ratio. */
+ public static final double DISTRIBUTION_DEVIATION_RATIO = 0.2;
@Test
public void testPartitionDistribution() {
@@ -60,7 +60,7 @@ public class RendezvousAffinityFunctionTest {
int ideal = (parts * replicas) / nodeCount;
- List<List<String>> assignment = RendezvousAffinityFunction.assignPartitions(
+ List<List<String>> assignment = RendezvousDistributionFunction.assignPartitions(
nodes,
parts,
replicas,
@@ -91,8 +91,8 @@ public class RendezvousAffinityFunctionTest {
assertNotNull(nodeParts);
- assertTrue(nodeParts.size() > ideal * (1 - AFFINITY_DEVIATION_RATIO)
- && nodeParts.size() < ideal * (1 + AFFINITY_DEVIATION_RATIO),
+ assertTrue(nodeParts.size() > ideal * (1 - DISTRIBUTION_DEVIATION_RATIO)
+ && nodeParts.size() < ideal * (1 + DISTRIBUTION_DEVIATION_RATIO),
"Partition distribution is too far from ideal [node=" + node
+ ", size=" + nodeParts.size()
+ ", idealSize=" + ideal
@@ -118,7 +118,7 @@ public class RendezvousAffinityFunctionTest {
assertTrue(parts > nodeCount, "Partitions should be more than nodes");
- List<List<String>> assignment = RendezvousAffinityFunction.assignPartitions(
+ List<List<String>> assignment = RendezvousDistributionFunction.assignPartitions(
nodes,
parts,
replicas,
diff --git a/modules/partition-replicator/build.gradle b/modules/partition-replicator/build.gradle
index 71a1d37c80..d544cdf138 100644
--- a/modules/partition-replicator/build.gradle
+++ b/modules/partition-replicator/build.gradle
@@ -33,7 +33,7 @@ dependencies {
implementation project(':ignite-replicator')
implementation project(':ignite-metastorage-api')
implementation project(':ignite-placement-driver-api')
- implementation project(':ignite-affinity')
+ implementation project(':ignite-partition-distribution')
implementation project(':ignite-distribution-zones')
implementation project(':ignite-network')
implementation project(':ignite-schema')
@@ -74,7 +74,7 @@ dependencies {
integrationTestImplementation project(':ignite-storage-page-memory')
integrationTestImplementation project(':ignite-page-memory')
integrationTestImplementation project(':ignite-placement-driver')
- integrationTestImplementation project(':ignite-affinity')
+ integrationTestImplementation project(':ignite-partition-distribution')
integrationTestImplementation project(':ignite-runner')
integrationTestImplementation project(':ignite-system-disaster-recovery')
}
diff --git a/modules/partition-replicator/src/integrationTest/java/org/apache/ignite/internal/partition/replicator/ItReplicaLifecycleTest.java b/modules/partition-replicator/src/integrationTest/java/org/apache/ignite/internal/partition/replicator/ItReplicaLifecycleTest.java
index 7796003fd5..6cdba72af1 100644
--- a/modules/partition-replicator/src/integrationTest/java/org/apache/ignite/internal/partition/replicator/ItReplicaLifecycleTest.java
+++ b/modules/partition-replicator/src/integrationTest/java/org/apache/ignite/internal/partition/replicator/ItReplicaLifecycleTest.java
@@ -31,6 +31,7 @@ import static org.apache.ignite.internal.distributionzones.rebalance.RebalanceUt
import static org.apache.ignite.internal.distributionzones.rebalance.ZoneRebalanceUtil.STABLE_ASSIGNMENTS_PREFIX;
import static org.apache.ignite.internal.distributionzones.rebalance.ZoneRebalanceUtil.stablePartAssignmentsKey;
import static org.apache.ignite.internal.partition.replicator.PartitionReplicaLifecycleManager.FEATURE_FLAG_NAME;
+import static org.apache.ignite.internal.partitiondistribution.PartitionDistributionUtils.calculateAssignmentForPartition;
import static org.apache.ignite.internal.sql.SqlCommon.DEFAULT_SCHEMA_NAME;
import static org.apache.ignite.internal.testframework.IgniteTestUtils.testNodeName;
import static org.apache.ignite.internal.testframework.IgniteTestUtils.waitForCondition;
@@ -74,9 +75,6 @@ import java.util.function.LongFunction;
import java.util.function.LongSupplier;
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.affinity.Assignments;
import org.apache.ignite.internal.app.ThreadPoolsManager;
import org.apache.ignite.internal.catalog.CatalogManager;
import org.apache.ignite.internal.catalog.CatalogManagerImpl;
@@ -140,6 +138,8 @@ import org.apache.ignite.internal.pagememory.configuration.schema.PersistentPage
import org.apache.ignite.internal.pagememory.configuration.schema.VolatilePageMemoryProfileConfigurationSchema;
import org.apache.ignite.internal.partition.replicator.network.PartitionReplicationMessageGroup;
import org.apache.ignite.internal.partition.replicator.utils.TestPlacementDriver;
+import org.apache.ignite.internal.partitiondistribution.Assignment;
+import org.apache.ignite.internal.partitiondistribution.Assignments;
import org.apache.ignite.internal.raft.Loza;
import org.apache.ignite.internal.raft.RaftGroupOptionsConfigurer;
import org.apache.ignite.internal.raft.client.TopologyAwareRaftGroupServiceFactory;
@@ -371,7 +371,7 @@ public class ItReplicaLifecycleTest extends BaseIgniteAbstractTest {
public void testZoneReplicaListener(TestInfo testInfo) throws Exception {
startNodes(testInfo, 3);
- Assignment replicaAssignment = (Assignment) AffinityUtils.calculateAssignmentForPartition(
+ Assignment replicaAssignment = (Assignment) calculateAssignmentForPartition(
nodes.values().stream().map(n -> n.name).collect(Collectors.toList()), 0, 1).toArray()[0];
Node node = getNode(replicaAssignment.consistentId());
@@ -593,7 +593,7 @@ public class ItReplicaLifecycleTest extends BaseIgniteAbstractTest {
void testTableReplicaListenersCreationAfterRebalance(TestInfo testInfo) throws Exception {
startNodes(testInfo, 3);
- Assignment replicaAssignment = (Assignment) AffinityUtils.calculateAssignmentForPartition(
+ Assignment replicaAssignment = (Assignment) calculateAssignmentForPartition(
nodes.values().stream().map(n -> n.name).collect(Collectors.toList()), 0, 1).toArray()[0];
Node node = getNode(replicaAssignment.consistentId());
diff --git a/modules/partition-replicator/src/integrationTest/java/org/apache/ignite/internal/partition/replicator/utils/TestPlacementDriver.java b/modules/partition-replicator/src/integrationTest/java/org/apache/ignite/internal/partition/replicator/utils/TestPlacementDriver.java
index e7a2cb4fd8..65071131d9 100644
--- a/modules/partition-replicator/src/integrationTest/java/org/apache/ignite/internal/partition/replicator/utils/TestPlacementDriver.java
+++ b/modules/partition-replicator/src/integrationTest/java/org/apache/ignite/internal/partition/replicator/utils/TestPlacementDriver.java
@@ -23,9 +23,9 @@ import static org.apache.ignite.internal.util.CompletableFutures.nullCompletedFu
import java.util.List;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.TimeUnit;
-import org.apache.ignite.internal.affinity.TokenizedAssignments;
import org.apache.ignite.internal.event.AbstractEventProducer;
import org.apache.ignite.internal.hlc.HybridTimestamp;
+import org.apache.ignite.internal.partitiondistribution.TokenizedAssignments;
import org.apache.ignite.internal.placementdriver.PlacementDriver;
import org.apache.ignite.internal.placementdriver.ReplicaMeta;
import org.apache.ignite.internal.placementdriver.event.PrimaryReplicaEvent;
diff --git a/modules/partition-replicator/src/main/java/org/apache/ignite/internal/partition/replicator/PartitionReplicaLifecycleManager.java b/modules/partition-replicator/src/main/java/org/apache/ignite/internal/partition/replicator/PartitionReplicaLifecycleManager.java
index 713f23a24d..58de200b96 100644
--- a/modules/partition-replicator/src/main/java/org/apache/ignite/internal/partition/replicator/PartitionReplicaLifecycleManager.java
+++ b/modules/partition-replicator/src/main/java/org/apache/ignite/internal/partition/replicator/PartitionReplicaLifecycleManager.java
@@ -45,6 +45,8 @@ import static org.apache.ignite.internal.hlc.HybridTimestamp.hybridTimestampToLo
import static org.apache.ignite.internal.lang.IgniteSystemProperties.getBoolean;
import static org.apache.ignite.internal.metastorage.dsl.Conditions.notExists;
import static org.apache.ignite.internal.metastorage.dsl.Operations.put;
+import static org.apache.ignite.internal.partitiondistribution.PartitionDistributionUtils.calculateAssignmentForPartition;
+import static org.apache.ignite.internal.partitiondistribution.PartitionDistributionUtils.calculateAssignments;
import static org.apache.ignite.internal.raft.PeersAndLearners.fromAssignments;
import static org.apache.ignite.internal.util.ByteUtils.toByteArray;
import static org.apache.ignite.internal.util.CompletableFutures.falseCompletedFuture;
@@ -78,9 +80,6 @@ import java.util.function.Predicate;
import java.util.function.Supplier;
import java.util.stream.IntStream;
import java.util.stream.Stream;
-import org.apache.ignite.internal.affinity.AffinityUtils;
-import org.apache.ignite.internal.affinity.Assignment;
-import org.apache.ignite.internal.affinity.Assignments;
import org.apache.ignite.internal.catalog.Catalog;
import org.apache.ignite.internal.catalog.CatalogManager;
import org.apache.ignite.internal.catalog.descriptors.CatalogZoneDescriptor;
@@ -110,6 +109,8 @@ import org.apache.ignite.internal.metastorage.dsl.Condition;
import org.apache.ignite.internal.metastorage.dsl.Operation;
import org.apache.ignite.internal.network.TopologyService;
import org.apache.ignite.internal.partition.replicator.snapshot.FailFastSnapshotStorageFactory;
+import org.apache.ignite.internal.partitiondistribution.Assignment;
+import org.apache.ignite.internal.partitiondistribution.Assignments;
import org.apache.ignite.internal.placementdriver.PlacementDriver;
import org.apache.ignite.internal.raft.ExecutorInclinedRaftCommandRunner;
import org.apache.ignite.internal.raft.Peer;
@@ -532,8 +533,7 @@ public class PartitionReplicaLifecycleManager extends
zoneDescriptor.updateToken(),
catalogVersion,
zoneId
- ).thenApply(dataNodes ->
- AffinityUtils.calculateAssignmentForPartition(
+ ).thenApply(dataNodes -> calculateAssignmentForPartition(
dataNodes,
zonePartitionId.partitionId(),
zoneDescriptor.replicas()
@@ -685,7 +685,7 @@ public class PartitionReplicaLifecycleManager extends
long assignmentsTimestamp = catalog.time();
assignmentsFuture = distributionZoneMgr.dataNodes(causalityToken, catalogVersion, zoneDescriptor.id())
- .thenApply(dataNodes -> AffinityUtils.calculateAssignments(
+ .thenApply(dataNodes -> calculateAssignments(
dataNodes,
zoneDescriptor.partitions(),
zoneDescriptor.replicas()
diff --git a/modules/placement-driver-api/build.gradle b/modules/placement-driver-api/build.gradle
index a446f980f1..e927ce54d2 100644
--- a/modules/placement-driver-api/build.gradle
+++ b/modules/placement-driver-api/build.gradle
@@ -25,12 +25,12 @@ dependencies {
implementation project(':ignite-core')
implementation project(':ignite-network-api')
- implementation project(':ignite-affinity')
+ implementation project(':ignite-partition-distribution')
implementation libs.jetbrains.annotations
testFixturesImplementation project(':ignite-core')
testFixturesImplementation project(':ignite-network-api')
- testFixturesImplementation project(':ignite-affinity')
+ testFixturesImplementation project(':ignite-partition-distribution')
testFixturesImplementation libs.jetbrains.annotations
}
diff --git a/modules/placement-driver-api/src/main/java/org/apache/ignite/internal/placementdriver/AssignmentsPlacementDriver.java b/modules/placement-driver-api/src/main/java/org/apache/ignite/internal/placementdriver/AssignmentsPlacementDriver.java
index 164ee37d59..ae16bfde1b 100644
--- a/modules/placement-driver-api/src/main/java/org/apache/ignite/internal/placementdriver/AssignmentsPlacementDriver.java
+++ b/modules/placement-driver-api/src/main/java/org/apache/ignite/internal/placementdriver/AssignmentsPlacementDriver.java
@@ -19,8 +19,8 @@ package org.apache.ignite.internal.placementdriver;
import java.util.List;
import java.util.concurrent.CompletableFuture;
-import org.apache.ignite.internal.affinity.TokenizedAssignments;
import org.apache.ignite.internal.hlc.HybridTimestamp;
+import org.apache.ignite.internal.partitiondistribution.TokenizedAssignments;
import org.apache.ignite.internal.replicator.ReplicationGroupId;
/**
diff --git a/modules/placement-driver-api/src/testFixtures/java/org/apache/ignite/internal/placementdriver/TestPlacementDriver.java b/modules/placement-driver-api/src/testFixtures/java/org/apache/ignite/internal/placementdriver/TestPlacementDriver.java
index 143dcf9d78..214c6a497f 100644
--- a/modules/placement-driver-api/src/testFixtures/java/org/apache/ignite/internal/placementdriver/TestPlacementDriver.java
+++ b/modules/placement-driver-api/src/testFixtures/java/org/apache/ignite/internal/placementdriver/TestPlacementDriver.java
@@ -25,9 +25,9 @@ import java.util.List;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.TimeUnit;
import java.util.function.Supplier;
-import org.apache.ignite.internal.affinity.TokenizedAssignments;
import org.apache.ignite.internal.event.AbstractEventProducer;
import org.apache.ignite.internal.hlc.HybridTimestamp;
+import org.apache.ignite.internal.partitiondistribution.TokenizedAssignments;
import org.apache.ignite.internal.placementdriver.event.PrimaryReplicaEvent;
import org.apache.ignite.internal.placementdriver.event.PrimaryReplicaEventParameters;
import org.apache.ignite.internal.replicator.ReplicationGroupId;
diff --git a/modules/placement-driver/build.gradle b/modules/placement-driver/build.gradle
index 9a8d25ee3d..063d9f776b 100644
--- a/modules/placement-driver/build.gradle
+++ b/modules/placement-driver/build.gradle
@@ -33,7 +33,7 @@ dependencies {
implementation project(':ignite-schema')
implementation project(':ignite-distribution-zones')
implementation project(':ignite-table')
- implementation project(':ignite-affinity')
+ implementation project(':ignite-partition-distribution')
implementation project(':ignite-vault')
implementation project(':ignite-rocksdb-common:')
implementation project(':ignite-replicator')
@@ -52,7 +52,7 @@ dependencies {
integrationTestImplementation project(':ignite-schema')
integrationTestImplementation project(':ignite-distribution-zones')
integrationTestImplementation project(':ignite-table')
- integrationTestImplementation project(':ignite-affinity')
+ integrationTestImplementation project(':ignite-partition-distribution')
integrationTestImplementation project(':ignite-replicator')
integrationTestImplementation project(':ignite-transactions')
integrationTestImplementation project(':ignite-catalog')
diff --git a/modules/placement-driver/src/integrationTest/java/org/apache/ignite/internal/placementdriver/BasePlacementDriverTest.java b/modules/placement-driver/src/integrationTest/java/org/apache/ignite/internal/placementdriver/BasePlacementDriverTest.java
index b9d9d17daf..11c5d02e8b 100644
--- a/modules/placement-driver/src/integrationTest/java/org/apache/ignite/internal/placementdriver/BasePlacementDriverTest.java
+++ b/modules/placement-driver/src/integrationTest/java/org/apache/ignite/internal/placementdriver/BasePlacementDriverTest.java
@@ -19,17 +19,17 @@ package org.apache.ignite.internal.placementdriver;
import static java.nio.ByteOrder.LITTLE_ENDIAN;
import static org.apache.ignite.internal.distributionzones.rebalance.RebalanceUtil.stablePartAssignmentsKey;
+import static org.apache.ignite.internal.partitiondistribution.PartitionDistributionUtils.calculateAssignments;
import java.nio.ByteBuffer;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
-import org.apache.ignite.internal.affinity.AffinityUtils;
-import org.apache.ignite.internal.affinity.Assignment;
-import org.apache.ignite.internal.affinity.Assignments;
import org.apache.ignite.internal.lang.ByteArray;
import org.apache.ignite.internal.metastorage.MetaStorageManager;
+import org.apache.ignite.internal.partitiondistribution.Assignment;
+import org.apache.ignite.internal.partitiondistribution.Assignments;
import org.apache.ignite.internal.placementdriver.leases.Lease;
import org.apache.ignite.internal.placementdriver.leases.LeaseBatch;
import org.apache.ignite.internal.replicator.ReplicationGroupId;
@@ -49,7 +49,7 @@ abstract class BasePlacementDriverTest extends IgniteAbstractTest {
int tableId,
List<String> dataNodes,
long assignmentsTimestamp) {
- List<Set<Assignment>> assignments = AffinityUtils.calculateAssignments(dataNodes, 1, dataNodes.size());
+ List<Set<Assignment>> assignments = calculateAssignments(dataNodes, 1, dataNodes.size());
Map<ByteArray, byte[]> partitionAssignments = new HashMap<>(assignments.size());
diff --git a/modules/placement-driver/src/integrationTest/java/org/apache/ignite/internal/placementdriver/PlacementDriverManagerTest.java b/modules/placement-driver/src/integrationTest/java/org/apache/ignite/internal/placementdriver/PlacementDriverManagerTest.java
index aeadfb8bca..50094dabdd 100644
--- a/modules/placement-driver/src/integrationTest/java/org/apache/ignite/internal/placementdriver/PlacementDriverManagerTest.java
+++ b/modules/placement-driver/src/integrationTest/java/org/apache/ignite/internal/placementdriver/PlacementDriverManagerTest.java
@@ -19,9 +19,9 @@ package org.apache.ignite.internal.placementdriver;
import static java.util.concurrent.CompletableFuture.completedFuture;
import static java.util.stream.Collectors.toSet;
-import static org.apache.ignite.internal.affinity.AffinityUtils.calculateAssignmentForPartition;
import static org.apache.ignite.internal.distributionzones.rebalance.RebalanceUtil.STABLE_ASSIGNMENTS_PREFIX;
import static org.apache.ignite.internal.lang.ByteArray.fromString;
+import static org.apache.ignite.internal.partitiondistribution.PartitionDistributionUtils.calculateAssignmentForPartition;
import static org.apache.ignite.internal.placementdriver.PlacementDriverManager.PLACEMENTDRIVER_LEASES_KEY;
import static org.apache.ignite.internal.testframework.IgniteTestUtils.testNodeName;
import static org.apache.ignite.internal.testframework.IgniteTestUtils.waitForCondition;
@@ -54,8 +54,6 @@ import java.util.concurrent.atomic.AtomicReference;
import java.util.function.BiFunction;
import java.util.stream.Collectors;
import java.util.stream.Stream;
-import org.apache.ignite.internal.affinity.Assignment;
-import org.apache.ignite.internal.affinity.Assignments;
import org.apache.ignite.internal.cluster.management.ClusterManagementGroupManager;
import org.apache.ignite.internal.cluster.management.topology.api.LogicalNode;
import org.apache.ignite.internal.cluster.management.topology.api.LogicalTopologyEventListener;
@@ -81,6 +79,8 @@ import org.apache.ignite.internal.network.ClusterService;
import org.apache.ignite.internal.network.NetworkMessageHandler;
import org.apache.ignite.internal.network.StaticNodeFinder;
import org.apache.ignite.internal.network.utils.ClusterServiceTestUtils;
+import org.apache.ignite.internal.partitiondistribution.Assignment;
+import org.apache.ignite.internal.partitiondistribution.Assignments;
import org.apache.ignite.internal.placementdriver.event.PrimaryReplicaEvent;
import org.apache.ignite.internal.placementdriver.leases.Lease;
import org.apache.ignite.internal.placementdriver.message.LeaseGrantedMessage;
diff --git a/modules/placement-driver/src/main/java/org/apache/ignite/internal/placementdriver/AssignmentsTracker.java b/modules/placement-driver/src/main/java/org/apache/ignite/internal/placementdriver/AssignmentsTracker.java
index 3f49ca826c..5f85110c7c 100644
--- a/modules/placement-driver/src/main/java/org/apache/ignite/internal/placementdriver/AssignmentsTracker.java
+++ b/modules/placement-driver/src/main/java/org/apache/ignite/internal/placementdriver/AssignmentsTracker.java
@@ -29,10 +29,6 @@ import java.util.Set;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ConcurrentHashMap;
import java.util.stream.Collectors;
-import org.apache.ignite.internal.affinity.Assignment;
-import org.apache.ignite.internal.affinity.Assignments;
-import org.apache.ignite.internal.affinity.TokenizedAssignments;
-import org.apache.ignite.internal.affinity.TokenizedAssignmentsImpl;
import org.apache.ignite.internal.hlc.HybridTimestamp;
import org.apache.ignite.internal.lang.ByteArray;
import org.apache.ignite.internal.logger.IgniteLogger;
@@ -42,6 +38,10 @@ import org.apache.ignite.internal.metastorage.EntryEvent;
import org.apache.ignite.internal.metastorage.MetaStorageManager;
import org.apache.ignite.internal.metastorage.WatchEvent;
import org.apache.ignite.internal.metastorage.WatchListener;
+import org.apache.ignite.internal.partitiondistribution.Assignment;
+import org.apache.ignite.internal.partitiondistribution.Assignments;
+import org.apache.ignite.internal.partitiondistribution.TokenizedAssignments;
+import org.apache.ignite.internal.partitiondistribution.TokenizedAssignmentsImpl;
import org.apache.ignite.internal.replicator.ReplicationGroupId;
import org.apache.ignite.internal.replicator.TablePartitionId;
import org.apache.ignite.internal.util.Cursor;
diff --git a/modules/placement-driver/src/main/java/org/apache/ignite/internal/placementdriver/LeaseUpdater.java b/modules/placement-driver/src/main/java/org/apache/ignite/internal/placementdriver/LeaseUpdater.java
index 32adc27615..1c76765a9c 100644
--- a/modules/placement-driver/src/main/java/org/apache/ignite/internal/placementdriver/LeaseUpdater.java
+++ b/modules/placement-driver/src/main/java/org/apache/ignite/internal/placementdriver/LeaseUpdater.java
@@ -39,8 +39,6 @@ import java.util.Objects;
import java.util.Set;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.atomic.AtomicBoolean;
-import org.apache.ignite.internal.affinity.Assignment;
-import org.apache.ignite.internal.affinity.TokenizedAssignments;
import org.apache.ignite.internal.cluster.management.topology.api.LogicalTopologyService;
import org.apache.ignite.internal.hlc.ClockService;
import org.apache.ignite.internal.hlc.HybridTimestamp;
@@ -53,6 +51,8 @@ import org.apache.ignite.internal.metastorage.MetaStorageManager;
import org.apache.ignite.internal.network.ClusterService;
import org.apache.ignite.internal.network.NetworkMessage;
import org.apache.ignite.internal.network.NetworkMessageHandler;
+import org.apache.ignite.internal.partitiondistribution.Assignment;
+import org.apache.ignite.internal.partitiondistribution.TokenizedAssignments;
import org.apache.ignite.internal.placementdriver.leases.Lease;
import org.apache.ignite.internal.placementdriver.leases.LeaseBatch;
import org.apache.ignite.internal.placementdriver.leases.LeaseTracker;
diff --git a/modules/placement-driver/src/main/java/org/apache/ignite/internal/placementdriver/PlacementDriverManager.java b/modules/placement-driver/src/main/java/org/apache/ignite/internal/placementdriver/PlacementDriverManager.java
index 470a6dd31a..4271066b66 100644
--- a/modules/placement-driver/src/main/java/org/apache/ignite/internal/placementdriver/PlacementDriverManager.java
+++ b/modules/placement-driver/src/main/java/org/apache/ignite/internal/placementdriver/PlacementDriverManager.java
@@ -28,7 +28,6 @@ import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.function.Consumer;
import java.util.function.Supplier;
-import org.apache.ignite.internal.affinity.TokenizedAssignments;
import org.apache.ignite.internal.cluster.management.topology.api.LogicalTopologyService;
import org.apache.ignite.internal.event.EventListener;
import org.apache.ignite.internal.hlc.ClockService;
@@ -41,6 +40,7 @@ import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.manager.IgniteComponent;
import org.apache.ignite.internal.metastorage.MetaStorageManager;
import org.apache.ignite.internal.network.ClusterService;
+import org.apache.ignite.internal.partitiondistribution.TokenizedAssignments;
import org.apache.ignite.internal.placementdriver.event.PrimaryReplicaEvent;
import org.apache.ignite.internal.placementdriver.event.PrimaryReplicaEventParameters;
import org.apache.ignite.internal.placementdriver.leases.LeaseTracker;
diff --git a/modules/placement-driver/src/main/java/org/apache/ignite/internal/placementdriver/negotiation/LeaseAgreement.java b/modules/placement-driver/src/main/java/org/apache/ignite/internal/placementdriver/negotiation/LeaseAgreement.java
index f316a80463..8e3ac55337 100644
--- a/modules/placement-driver/src/main/java/org/apache/ignite/internal/placementdriver/negotiation/LeaseAgreement.java
+++ b/modules/placement-driver/src/main/java/org/apache/ignite/internal/placementdriver/negotiation/LeaseAgreement.java
@@ -24,11 +24,11 @@ import static org.apache.ignite.internal.util.IgniteUtils.findAny;
import java.util.Set;
import java.util.concurrent.CompletableFuture;
-import org.apache.ignite.internal.affinity.Assignment;
import org.apache.ignite.internal.cluster.management.topology.api.LogicalNode;
import org.apache.ignite.internal.cluster.management.topology.api.LogicalTopologySnapshot;
import org.apache.ignite.internal.logger.IgniteLogger;
import org.apache.ignite.internal.logger.Loggers;
+import org.apache.ignite.internal.partitiondistribution.Assignment;
import org.apache.ignite.internal.placementdriver.leases.Lease;
import org.apache.ignite.internal.placementdriver.message.LeaseGrantedMessageResponse;
import org.apache.ignite.internal.replicator.ReplicationGroupId;
diff --git a/modules/placement-driver/src/test/java/org/apache/ignite/internal/placementdriver/LeaseNegotiationTest.java b/modules/placement-driver/src/test/java/org/apache/ignite/internal/placementdriver/LeaseNegotiationTest.java
index 85068ed761..614606eef3 100644
--- a/modules/placement-driver/src/test/java/org/apache/ignite/internal/placementdriver/LeaseNegotiationTest.java
+++ b/modules/placement-driver/src/test/java/org/apache/ignite/internal/placementdriver/LeaseNegotiationTest.java
@@ -19,8 +19,8 @@ package org.apache.ignite.internal.placementdriver;
import static java.util.UUID.randomUUID;
import static java.util.concurrent.CompletableFuture.completedFuture;
-import static org.apache.ignite.internal.affinity.Assignment.forPeer;
import static org.apache.ignite.internal.distributionzones.rebalance.RebalanceUtil.stablePartAssignmentsKey;
+import static org.apache.ignite.internal.partitiondistribution.Assignment.forPeer;
import static org.apache.ignite.internal.placementdriver.PlacementDriverManager.PLACEMENTDRIVER_LEASES_KEY;
import static org.apache.ignite.internal.testframework.IgniteTestUtils.waitForCondition;
import static org.apache.ignite.internal.testframework.matchers.CompletableFutureMatcher.willCompleteSuccessfully;
@@ -40,7 +40,6 @@ import java.nio.ByteOrder;
import java.util.Set;
import java.util.concurrent.CompletableFuture;
import java.util.function.BiFunction;
-import org.apache.ignite.internal.affinity.Assignments;
import org.apache.ignite.internal.cluster.management.topology.api.LogicalNode;
import org.apache.ignite.internal.cluster.management.topology.api.LogicalTopologyEventListener;
import org.apache.ignite.internal.cluster.management.topology.api.LogicalTopologyService;
@@ -57,6 +56,7 @@ import org.apache.ignite.internal.metastorage.impl.StandaloneMetaStorageManager;
import org.apache.ignite.internal.network.ClusterService;
import org.apache.ignite.internal.network.MessagingService;
import org.apache.ignite.internal.network.TopologyService;
+import org.apache.ignite.internal.partitiondistribution.Assignments;
import org.apache.ignite.internal.placementdriver.leases.Lease;
import org.apache.ignite.internal.placementdriver.leases.LeaseBatch;
import org.apache.ignite.internal.placementdriver.leases.LeaseTracker;
diff --git a/modules/placement-driver/src/test/java/org/apache/ignite/internal/placementdriver/LeaseUpdaterTest.java b/modules/placement-driver/src/test/java/org/apache/ignite/internal/placementdriver/LeaseUpdaterTest.java
index ae909ceaa1..4f75aabb8d 100644
--- a/modules/placement-driver/src/test/java/org/apache/ignite/internal/placementdriver/LeaseUpdaterTest.java
+++ b/modules/placement-driver/src/test/java/org/apache/ignite/internal/placementdriver/LeaseUpdaterTest.java
@@ -44,8 +44,6 @@ import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;
import java.util.concurrent.atomic.AtomicReference;
import java.util.function.Consumer;
-import org.apache.ignite.internal.affinity.Assignment;
-import org.apache.ignite.internal.affinity.Assignments;
import org.apache.ignite.internal.cluster.management.topology.api.LogicalNode;
import org.apache.ignite.internal.cluster.management.topology.api.LogicalTopologyService;
import org.apache.ignite.internal.cluster.management.topology.api.LogicalTopologySnapshot;
@@ -63,6 +61,8 @@ import org.apache.ignite.internal.metastorage.dsl.OperationImpl;
import org.apache.ignite.internal.metastorage.impl.EntryImpl;
import org.apache.ignite.internal.network.ClusterService;
import org.apache.ignite.internal.network.MessagingService;
+import org.apache.ignite.internal.partitiondistribution.Assignment;
+import org.apache.ignite.internal.partitiondistribution.Assignments;
import org.apache.ignite.internal.placementdriver.leases.Lease;
import org.apache.ignite.internal.placementdriver.leases.LeaseBatch;
import org.apache.ignite.internal.placementdriver.leases.LeaseTracker;
diff --git a/modules/placement-driver/src/test/java/org/apache/ignite/internal/placementdriver/PlacementDriverTest.java b/modules/placement-driver/src/test/java/org/apache/ignite/internal/placementdriver/PlacementDriverTest.java
index 2877e2b69c..6222d7c412 100644
--- a/modules/placement-driver/src/test/java/org/apache/ignite/internal/placementdriver/PlacementDriverTest.java
+++ b/modules/placement-driver/src/test/java/org/apache/ignite/internal/placementdriver/PlacementDriverTest.java
@@ -19,9 +19,9 @@ package org.apache.ignite.internal.placementdriver;
import static java.util.concurrent.TimeUnit.MILLISECONDS;
import static java.util.concurrent.TimeUnit.SECONDS;
-import static org.apache.ignite.internal.affinity.Assignment.forPeer;
import static org.apache.ignite.internal.metastorage.dsl.Operations.noop;
import static org.apache.ignite.internal.metastorage.dsl.Operations.put;
+import static org.apache.ignite.internal.partitiondistribution.Assignment.forPeer;
import static org.apache.ignite.internal.placementdriver.PlacementDriverManager.PLACEMENTDRIVER_LEASES_KEY;
import static org.apache.ignite.internal.placementdriver.event.PrimaryReplicaEvent.PRIMARY_REPLICA_ELECTED;
import static org.apache.ignite.internal.testframework.IgniteTestUtils.assertThrowsWithCause;
@@ -51,9 +51,6 @@ import java.util.Set;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;
-import org.apache.ignite.internal.affinity.Assignment;
-import org.apache.ignite.internal.affinity.Assignments;
-import org.apache.ignite.internal.affinity.TokenizedAssignments;
import org.apache.ignite.internal.distributionzones.rebalance.RebalanceUtil;
import org.apache.ignite.internal.hlc.ClockService;
import org.apache.ignite.internal.hlc.HybridClockImpl;
@@ -66,6 +63,9 @@ import org.apache.ignite.internal.metastorage.dsl.Conditions;
import org.apache.ignite.internal.metastorage.impl.StandaloneMetaStorageManager;
import org.apache.ignite.internal.network.ClusterNodeImpl;
import org.apache.ignite.internal.network.ClusterNodeResolver;
+import org.apache.ignite.internal.partitiondistribution.Assignment;
+import org.apache.ignite.internal.partitiondistribution.Assignments;
+import org.apache.ignite.internal.partitiondistribution.TokenizedAssignments;
import org.apache.ignite.internal.placementdriver.event.PrimaryReplicaEventParameters;
import org.apache.ignite.internal.placementdriver.leases.Lease;
import org.apache.ignite.internal.placementdriver.leases.LeaseBatch;
diff --git a/modules/raft-api/build.gradle b/modules/raft-api/build.gradle
index f595607f6c..ae11753a9d 100644
--- a/modules/raft-api/build.gradle
+++ b/modules/raft-api/build.gradle
@@ -26,7 +26,7 @@ dependencies {
implementation project(':ignite-network-api')
implementation project(':ignite-configuration-api')
implementation project(':ignite-configuration-root')
- implementation project(':ignite-affinity')
+ implementation project(':ignite-partition-distribution')
implementation libs.jetbrains.annotations
implementation libs.auto.service.annotations
diff --git a/modules/raft-api/src/main/java/org/apache/ignite/internal/raft/PeersAndLearners.java b/modules/raft-api/src/main/java/org/apache/ignite/internal/raft/PeersAndLearners.java
index 5f634ee05e..8c4f5d1520 100644
--- a/modules/raft-api/src/main/java/org/apache/ignite/internal/raft/PeersAndLearners.java
+++ b/modules/raft-api/src/main/java/org/apache/ignite/internal/raft/PeersAndLearners.java
@@ -23,7 +23,7 @@ import java.util.Collection;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
-import org.apache.ignite.internal.affinity.Assignment;
+import org.apache.ignite.internal.partitiondistribution.Assignment;
import org.apache.ignite.internal.tostring.IgniteToStringInclude;
import org.apache.ignite.internal.tostring.S;
import org.jetbrains.annotations.Nullable;
diff --git a/modules/replicator/build.gradle b/modules/replicator/build.gradle
index 38179e60b8..806142ef3e 100644
--- a/modules/replicator/build.gradle
+++ b/modules/replicator/build.gradle
@@ -36,7 +36,7 @@ dependencies {
implementation project(':ignite-network-api')
implementation project(':ignite-placement-driver-api')
implementation project(':ignite-failure-handler')
- implementation project(':ignite-affinity')
+ implementation project(':ignite-partition-distribution')
implementation libs.jetbrains.annotations
implementation libs.fastutil.core
implementation libs.auto.service.annotations
diff --git a/modules/replicator/src/main/java/org/apache/ignite/internal/replicator/ReplicaManager.java b/modules/replicator/src/main/java/org/apache/ignite/internal/replicator/ReplicaManager.java
index 75f405f270..d69add472a 100644
--- a/modules/replicator/src/main/java/org/apache/ignite/internal/replicator/ReplicaManager.java
+++ b/modules/replicator/src/main/java/org/apache/ignite/internal/replicator/ReplicaManager.java
@@ -63,7 +63,6 @@ import java.util.concurrent.atomic.AtomicBoolean;
import java.util.function.Function;
import java.util.function.LongSupplier;
import java.util.function.Supplier;
-import org.apache.ignite.internal.affinity.Assignments;
import org.apache.ignite.internal.close.ManuallyCloseable;
import org.apache.ignite.internal.cluster.management.ClusterManagementGroupManager;
import org.apache.ignite.internal.event.AbstractEventProducer;
@@ -81,6 +80,7 @@ import org.apache.ignite.internal.network.ChannelType;
import org.apache.ignite.internal.network.ClusterService;
import org.apache.ignite.internal.network.NetworkMessage;
import org.apache.ignite.internal.network.NetworkMessageHandler;
+import org.apache.ignite.internal.partitiondistribution.Assignments;
import org.apache.ignite.internal.placementdriver.PlacementDriver;
import org.apache.ignite.internal.placementdriver.event.PrimaryReplicaEvent;
import org.apache.ignite.internal.placementdriver.event.PrimaryReplicaEventParameters;
diff --git a/modules/runner/README.md b/modules/runner/README.md
index aa80851923..ebf793d41c 100644
--- a/modules/runner/README.md
+++ b/modules/runner/README.md
@@ -82,7 +82,7 @@ the same configuration change more than once since only one update will be appli
## Reliable watch processing
All cluster state is written and maintained in the metastorage. Nodes may update some state in the metastorage, which
may require a recomputation of some other metastorage properties (for example, when cluster baseline changes, Ignite
-needs to recalculate table affinity assignments). In other words, some properties in the metastore are dependent on each
+needs to recalculate table partition assignments). In other words, some properties in the metastore are dependent on each
other and we may need to reliably update one property in response to an update to another.
To facilitate this pattern, Ignite uses the metastorage ability to replay metastorage changes from a certain revision
@@ -107,64 +107,6 @@ reliable watch processing:
In a case of a crash, each watch is restared from the revision stored in the corresponding ``applied revision`` variable
of the watch, and not processed events are replayed.
-### Example: `CREATE TABLE` flow
-We require that each Ignite table is assigned a globally unique ID (the ID must not repeat even after the table is
-dropped, so we use the metastorage key revision to assign table IDs).
-
-To create a table, a user makes a change in the configuration tree by introducing the corresponding configuration
-object. This can be done either via public [configuration API](TODO link to configuration API) or via the ``ignite``
-[configuration command](TODO link to CLI readme). Configuration validator checks that a table with the same name does
-not exist (and performs other necessary checks) and writes the change to the metastorage. If the update succeeds, Ignite
-considers the table created and completes user call.
-
-After the configuration change is applied, the table manager receives configuration change notification (essentially,
-a transformed watch) on metastorage group nodes. Table manager uses configuration keys update counters (not revision)
-as table IDs and attempts to create the following keys (updating the ``internal.configuration.applied`` key as was
-described above):
-
-```
-internal.tables.<ID>=<name>
-```
-
-In order to process affinity calculations and assignments, the affinity manager creates a reliable watch for the
-following keys on metastorage group members:
-
-```
-internal.tables.*
-internal.baseline
-```
-
-Whenever a watch is fired, the affinity manager checks which key was updated. If the watch is triggered for
-``internal.tables.<ID>`` key, it calculates a new affinity for the table with the given ID. If the watch is triggered
-for ``internal.baseline`` key, the manager recalculates affinity for all tables exsiting at the watch revision
-(this can be done using the metastorage ``range(keys, upperBound)`` method providing the watch event revision as the
-upper bound). The calculated affinity is written to the ``internal.tables.affinity.<ID>`` key.
-
-> Note that ideally the watch should only be processed on metastorage group leader, thus eliminating unnecessary network
-> trips. Theoretically, we could have embedded this logic to the state machine, but this would enormously complicate
-> the cluster updates and put metastorage consistency at risk.
-
-To handle partition assignments, partition manager creates a reliable watch for the affinity assignment key on all
-nodes:
-
-```
-internal.tables.affinity.<ID>
-```
-
-Whenever a watch is fired, the node checks whether there exist new partitions assigned to the local node, and if there
-are, the node bootstraps corresponding Raft partition servers (i.e. allocates paths to Raft logs and storage files).
-The allocation information is written to projected vault keys:
-
-```
-local.tables.partition.<ID>.<PARTITION_ID>.logpath=/path/to/raft/log
-local.tables.partition.<ID>.<PARTITION_ID>.storagepath=/path/to/storage/file
-```
-
-Once the projected keys are synced to the vault, the partition manager can create partition Raft servers (initialize
-the log and storage, write hard state, register message handlers, etc). Upon startup, the node checks the existing
-projected keys (finishing the raft log and storage initialization in case it crashed in the midst) and starts the Raft
-servers.
-
### Stop node flow.
It's possible to stop node both when node was already started or during the startup process, in that case
node stop will prevent any new components startup and stop already started ones.
diff --git a/modules/runner/build.gradle b/modules/runner/build.gradle
index 8c64ae163c..6d2644753b 100644
--- a/modules/runner/build.gradle
+++ b/modules/runner/build.gradle
@@ -58,7 +58,7 @@ dependencies {
implementation project(':ignite-raft')
implementation project(':ignite-metastorage')
implementation project(':ignite-metastorage-cache')
- implementation project(':ignite-affinity')
+ implementation project(':ignite-partition-distribution')
implementation project(':ignite-table')
implementation project(':ignite-index')
implementation project(':ignite-sql-engine')
@@ -129,7 +129,7 @@ dependencies {
integrationTestAnnotationProcessor project(':ignite-configuration-annotation-processor')
integrationTestAnnotationProcessor libs.jmh.annotation.processor
- integrationTestImplementation project(':ignite-affinity')
+ integrationTestImplementation project(':ignite-partition-distribution')
integrationTestImplementation project(':ignite-jdbc')
integrationTestImplementation project(':ignite-page-memory')
integrationTestImplementation project(':ignite-raft-api')
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 3ac74b9fd8..ff832d062b 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
@@ -83,8 +83,6 @@ import java.util.stream.IntStream;
import org.apache.ignite.Ignite;
import org.apache.ignite.IgniteServer;
import org.apache.ignite.internal.BaseIgniteRestartTest;
-import org.apache.ignite.internal.affinity.Assignment;
-import org.apache.ignite.internal.affinity.Assignments;
import org.apache.ignite.internal.app.IgniteImpl;
import org.apache.ignite.internal.app.ThreadPoolsManager;
import org.apache.ignite.internal.catalog.CatalogManager;
@@ -159,6 +157,8 @@ import org.apache.ignite.internal.network.scalecube.TestScaleCubeClusterServiceF
import org.apache.ignite.internal.network.wrapper.JumpToExecutorByConsistentIdAfterSend;
import org.apache.ignite.internal.partition.replicator.PartitionReplicaLifecycleManager;
import org.apache.ignite.internal.partition.replicator.network.PartitionReplicationMessageGroup;
+import org.apache.ignite.internal.partitiondistribution.Assignment;
+import org.apache.ignite.internal.partitiondistribution.Assignments;
import org.apache.ignite.internal.placementdriver.PlacementDriverManager;
import org.apache.ignite.internal.placementdriver.PrimaryReplicaAwaitTimeoutException;
import org.apache.ignite.internal.placementdriver.ReplicaMeta;
diff --git a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ItReplicaStateManagerTest.java b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ItReplicaStateManagerTest.java
index ccb32f4afc..029abf475e 100644
--- a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ItReplicaStateManagerTest.java
+++ b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ItReplicaStateManagerTest.java
@@ -33,12 +33,12 @@ import java.util.Set;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.TimeUnit;
import org.apache.ignite.internal.BaseIgniteRestartTest;
-import org.apache.ignite.internal.affinity.Assignment;
-import org.apache.ignite.internal.affinity.Assignments;
import org.apache.ignite.internal.app.IgniteImpl;
import org.apache.ignite.internal.hlc.HybridTimestamp;
import org.apache.ignite.internal.lang.ByteArray;
import org.apache.ignite.internal.metastorage.MetaStorageManager;
+import org.apache.ignite.internal.partitiondistribution.Assignment;
+import org.apache.ignite.internal.partitiondistribution.Assignments;
import org.apache.ignite.internal.placementdriver.ReplicaMeta;
import org.apache.ignite.internal.replicator.TablePartitionId;
import org.apache.ignite.internal.storage.MvPartitionStorage;
diff --git a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/table/ItTableScanTest.java b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/table/ItTableScanTest.java
index 9b3420d306..243031e7b9 100644
--- a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/table/ItTableScanTest.java
+++ b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/table/ItTableScanTest.java
@@ -19,7 +19,7 @@ package org.apache.ignite.internal.table;
import static org.apache.ignite.internal.TestWrappers.unwrapIgniteImpl;
import static org.apache.ignite.internal.TestWrappers.unwrapTableViewInternal;
-import static org.apache.ignite.internal.affinity.AffinityUtils.calculateAssignmentForPartition;
+import static org.apache.ignite.internal.partitiondistribution.PartitionDistributionUtils.calculateAssignmentForPartition;
import static org.apache.ignite.internal.storage.index.SortedIndexStorage.GREATER_OR_EQUAL;
import static org.apache.ignite.internal.storage.index.SortedIndexStorage.LESS_OR_EQUAL;
import static org.apache.ignite.internal.testframework.IgniteTestUtils.runRace;
@@ -50,7 +50,6 @@ import java.util.function.IntFunction;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
import org.apache.ignite.internal.TestWrappers;
-import org.apache.ignite.internal.affinity.Assignment;
import org.apache.ignite.internal.app.IgniteImpl;
import org.apache.ignite.internal.binarytuple.BinaryTupleBuilder;
import org.apache.ignite.internal.catalog.CatalogManager;
@@ -58,6 +57,7 @@ import org.apache.ignite.internal.catalog.descriptors.CatalogObjectDescriptor;
import org.apache.ignite.internal.lang.IgniteBiTuple;
import org.apache.ignite.internal.lang.IgniteStringFormatter;
import org.apache.ignite.internal.lang.RunnableX;
+import org.apache.ignite.internal.partitiondistribution.Assignment;
import org.apache.ignite.internal.placementdriver.PlacementDriver;
import org.apache.ignite.internal.placementdriver.ReplicaMeta;
import org.apache.ignite.internal.replicator.TablePartitionId;
diff --git a/modules/sql-engine/build.gradle b/modules/sql-engine/build.gradle
index f52b73c4d7..2ebfe00669 100644
--- a/modules/sql-engine/build.gradle
+++ b/modules/sql-engine/build.gradle
@@ -51,7 +51,7 @@ dependencies {
implementation project(':ignite-failure-handler')
implementation project(':ignite-placement-driver-api')
implementation project(':ignite-partition-replicator')
- implementation project(':ignite-affinity')
+ implementation project(':ignite-partition-distribution')
implementation libs.jetbrains.annotations
implementation libs.fastutil.core
implementation libs.caffeine
diff --git a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/ExecutionTargetProviderImpl.java b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/ExecutionTargetProviderImpl.java
index c9b961080f..86d0650641 100644
--- a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/ExecutionTargetProviderImpl.java
+++ b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/ExecutionTargetProviderImpl.java
@@ -33,13 +33,13 @@ import java.util.List;
import java.util.Set;
import java.util.concurrent.CompletableFuture;
import java.util.stream.Collectors;
-import org.apache.ignite.internal.affinity.Assignment;
-import org.apache.ignite.internal.affinity.TokenizedAssignments;
-import org.apache.ignite.internal.affinity.TokenizedAssignmentsImpl;
import org.apache.ignite.internal.hlc.HybridTimestamp;
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.partitiondistribution.Assignment;
+import org.apache.ignite.internal.partitiondistribution.TokenizedAssignments;
+import org.apache.ignite.internal.partitiondistribution.TokenizedAssignmentsImpl;
import org.apache.ignite.internal.placementdriver.PlacementDriver;
import org.apache.ignite.internal.placementdriver.ReplicaMeta;
import org.apache.ignite.internal.replicator.ReplicationGroupId;
diff --git a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/mapping/ExecutionTargetFactory.java b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/mapping/ExecutionTargetFactory.java
index e3a02547ef..f41eda0524 100644
--- a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/mapping/ExecutionTargetFactory.java
+++ b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/mapping/ExecutionTargetFactory.java
@@ -19,7 +19,7 @@ package org.apache.ignite.internal.sql.engine.exec.mapping;
import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
import java.util.List;
-import org.apache.ignite.internal.affinity.TokenizedAssignments;
+import org.apache.ignite.internal.partitiondistribution.TokenizedAssignments;
import org.apache.ignite.internal.sql.engine.exec.NodeWithConsistencyToken;
/**
diff --git a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/mapping/largecluster/LargeClusterFactory.java b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/mapping/largecluster/LargeClusterFactory.java
index ab81bece8e..5453f2ab7d 100644
--- a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/mapping/largecluster/LargeClusterFactory.java
+++ b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/mapping/largecluster/LargeClusterFactory.java
@@ -22,8 +22,8 @@ import it.unimi.dsi.fastutil.objects.Object2IntMap;
import it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap;
import java.util.BitSet;
import java.util.List;
-import org.apache.ignite.internal.affinity.Assignment;
-import org.apache.ignite.internal.affinity.TokenizedAssignments;
+import org.apache.ignite.internal.partitiondistribution.Assignment;
+import org.apache.ignite.internal.partitiondistribution.TokenizedAssignments;
import org.apache.ignite.internal.sql.engine.exec.NodeWithConsistencyToken;
import org.apache.ignite.internal.sql.engine.exec.mapping.ExecutionTarget;
import org.apache.ignite.internal.sql.engine.exec.mapping.ExecutionTargetFactory;
diff --git a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/mapping/smallcluster/SmallClusterFactory.java b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/mapping/smallcluster/SmallClusterFactory.java
index e569438e40..66a173828f 100644
--- a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/mapping/smallcluster/SmallClusterFactory.java
+++ b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/mapping/smallcluster/SmallClusterFactory.java
@@ -24,8 +24,8 @@ import it.unimi.dsi.fastutil.objects.Object2LongMap;
import it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap;
import java.util.List;
import java.util.stream.Collectors;
-import org.apache.ignite.internal.affinity.Assignment;
-import org.apache.ignite.internal.affinity.TokenizedAssignments;
+import org.apache.ignite.internal.partitiondistribution.Assignment;
+import org.apache.ignite.internal.partitiondistribution.TokenizedAssignments;
import org.apache.ignite.internal.sql.engine.exec.NodeWithConsistencyToken;
import org.apache.ignite.internal.sql.engine.exec.mapping.ExecutionTarget;
import org.apache.ignite.internal.sql.engine.exec.mapping.ExecutionTargetFactory;
diff --git a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/prepare/ddl/DdlSqlToCommandConverter.java b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/prepare/ddl/DdlSqlToCommandConverter.java
index 53974370e7..baac2f297b 100644
--- a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/prepare/ddl/DdlSqlToCommandConverter.java
+++ b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/prepare/ddl/DdlSqlToCommandConverter.java
@@ -25,11 +25,11 @@ import static org.apache.ignite.internal.distributionzones.DistributionZonesUtil
import static org.apache.ignite.internal.lang.IgniteStringFormatter.format;
import static org.apache.ignite.internal.sql.engine.prepare.ddl.TableOptionEnum.PRIMARY_ZONE;
import static org.apache.ignite.internal.sql.engine.prepare.ddl.TableOptionEnum.STORAGE_PROFILE;
-import static org.apache.ignite.internal.sql.engine.prepare.ddl.ZoneOptionEnum.AFFINITY_FUNCTION;
import static org.apache.ignite.internal.sql.engine.prepare.ddl.ZoneOptionEnum.DATA_NODES_AUTO_ADJUST;
import static org.apache.ignite.internal.sql.engine.prepare.ddl.ZoneOptionEnum.DATA_NODES_AUTO_ADJUST_SCALE_DOWN;
import static org.apache.ignite.internal.sql.engine.prepare.ddl.ZoneOptionEnum.DATA_NODES_AUTO_ADJUST_SCALE_UP;
import static org.apache.ignite.internal.sql.engine.prepare.ddl.ZoneOptionEnum.DATA_NODES_FILTER;
+import static org.apache.ignite.internal.sql.engine.prepare.ddl.ZoneOptionEnum.DISTRIBUTION_ALGORITHM;
import static org.apache.ignite.internal.sql.engine.prepare.ddl.ZoneOptionEnum.PARTITIONS;
import static org.apache.ignite.internal.sql.engine.prepare.ddl.ZoneOptionEnum.REPLICAS;
import static org.apache.ignite.internal.sql.engine.prepare.ddl.ZoneOptionEnum.STORAGE_PROFILES;
@@ -174,7 +174,7 @@ public class DdlSqlToCommandConverter {
REPLICAS, new DdlOptionInfo<>(Integer.class, this::checkPositiveNumber, CreateZoneCommandBuilder::replicas),
PARTITIONS, new DdlOptionInfo<>(Integer.class, this::checkPositiveNumber, CreateZoneCommandBuilder::partitions),
// TODO https://issues.apache.org/jira/browse/IGNITE-22162 appropriate setter method should be used.
- AFFINITY_FUNCTION, new DdlOptionInfo<>(String.class, null, (builder, params) -> {}),
+ DISTRIBUTION_ALGORITHM, new DdlOptionInfo<>(String.class, null, (builder, params) -> {}),
DATA_NODES_FILTER, new DdlOptionInfo<>(String.class, null, CreateZoneCommandBuilder::filter),
DATA_NODES_AUTO_ADJUST,
new DdlOptionInfo<>(Integer.class, this::checkPositiveNumber, CreateZoneCommandBuilder::dataNodesAutoAdjust),
@@ -400,7 +400,7 @@ public class DdlSqlToCommandConverter {
// Remove this after interval type support is added.
if (SqlTypeUtil.isInterval(relType)) {
String error = format(
- "Type {} cannot be used in a column definition [column={}].",
+ "Type {} cannot be used in a column definition [column={}].",
relType.getSqlTypeName().getSpaceName(),
name
);
diff --git a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/prepare/ddl/ZoneOptionEnum.java b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/prepare/ddl/ZoneOptionEnum.java
index a6c94f4365..f3135c07d3 100644
--- a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/prepare/ddl/ZoneOptionEnum.java
+++ b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/prepare/ddl/ZoneOptionEnum.java
@@ -27,8 +27,8 @@ public enum ZoneOptionEnum {
/** Number of replicas. */
REPLICAS,
- /** Affinity function name. */
- AFFINITY_FUNCTION,
+ /** Partition distribution algorithm name. */
+ DISTRIBUTION_ALGORITHM,
/** An expression to filter data nodes. */
DATA_NODES_FILTER,
diff --git a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/benchmarks/MappingBenchmark.java b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/benchmarks/MappingBenchmark.java
index f473849a19..5aaf58b681 100644
--- a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/benchmarks/MappingBenchmark.java
+++ b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/benchmarks/MappingBenchmark.java
@@ -21,9 +21,9 @@ import java.util.Arrays;
import java.util.List;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
-import org.apache.ignite.internal.affinity.Assignment;
-import org.apache.ignite.internal.affinity.TokenizedAssignments;
-import org.apache.ignite.internal.affinity.TokenizedAssignmentsImpl;
+import org.apache.ignite.internal.partitiondistribution.Assignment;
+import org.apache.ignite.internal.partitiondistribution.TokenizedAssignments;
+import org.apache.ignite.internal.partitiondistribution.TokenizedAssignmentsImpl;
import org.apache.ignite.internal.sql.engine.exec.mapping.ColocationMappingException;
import org.apache.ignite.internal.sql.engine.exec.mapping.ExecutionTarget;
import org.apache.ignite.internal.sql.engine.exec.mapping.ExecutionTargetFactory;
@@ -177,4 +177,4 @@ public class MappingBenchmark {
private static void finalise(ExecutionTargetFactory factory, ExecutionTarget target, Blackhole bh) {
bh.consume(factory.resolveNodes(target));
}
-}
\ No newline at end of file
+}
diff --git a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/mapping/ExecutionTargetFactorySelfTest.java b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/mapping/ExecutionTargetFactorySelfTest.java
index 78da8ec257..5c82615c76 100644
--- a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/mapping/ExecutionTargetFactorySelfTest.java
+++ b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/mapping/ExecutionTargetFactorySelfTest.java
@@ -31,9 +31,9 @@ import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
-import org.apache.ignite.internal.affinity.Assignment;
-import org.apache.ignite.internal.affinity.TokenizedAssignments;
-import org.apache.ignite.internal.affinity.TokenizedAssignmentsImpl;
+import org.apache.ignite.internal.partitiondistribution.Assignment;
+import org.apache.ignite.internal.partitiondistribution.TokenizedAssignments;
+import org.apache.ignite.internal.partitiondistribution.TokenizedAssignmentsImpl;
import org.apache.ignite.internal.sql.engine.exec.mapping.largecluster.LargeClusterFactory;
import org.apache.ignite.internal.sql.engine.exec.mapping.smallcluster.SmallClusterFactory;
import org.apache.ignite.internal.util.CollectionUtils;
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 8384c71362..cf1c96738b 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
@@ -51,9 +51,6 @@ import java.util.function.Supplier;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
import org.apache.calcite.util.ImmutableIntList;
-import org.apache.ignite.internal.affinity.Assignment;
-import org.apache.ignite.internal.affinity.TokenizedAssignments;
-import org.apache.ignite.internal.affinity.TokenizedAssignmentsImpl;
import org.apache.ignite.internal.catalog.CatalogCommand;
import org.apache.ignite.internal.catalog.CatalogManager;
import org.apache.ignite.internal.catalog.CatalogTestUtils;
@@ -86,6 +83,9 @@ import org.apache.ignite.internal.logger.IgniteLogger;
import org.apache.ignite.internal.logger.Loggers;
import org.apache.ignite.internal.manager.ComponentContext;
import org.apache.ignite.internal.metrics.NoOpMetricManager;
+import org.apache.ignite.internal.partitiondistribution.Assignment;
+import org.apache.ignite.internal.partitiondistribution.TokenizedAssignments;
+import org.apache.ignite.internal.partitiondistribution.TokenizedAssignmentsImpl;
import org.apache.ignite.internal.sql.SqlCommon;
import org.apache.ignite.internal.sql.engine.SqlQueryProcessor;
import org.apache.ignite.internal.sql.engine.exec.ExecutableTable;
diff --git a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/prepare/ddl/DdlSqlToCommandConverterTest.java b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/prepare/ddl/DdlSqlToCommandConverterTest.java
index 358297d541..d4bcb92e0e 100644
--- a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/prepare/ddl/DdlSqlToCommandConverterTest.java
+++ b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/prepare/ddl/DdlSqlToCommandConverterTest.java
@@ -109,7 +109,7 @@ public class DdlSqlToCommandConverterTest extends AbstractDdlSqlToCommandConvert
IllegalStateException exception = assertThrows(
IllegalStateException.class,
() -> checkDuplicates(
- Set.of("replicas", "affinity"),
+ Set.of("replicas", "partitionDistribution"),
Set.of("partitions", "replicas")
)
);
@@ -117,8 +117,8 @@ public class DdlSqlToCommandConverterTest extends AbstractDdlSqlToCommandConvert
assertThat(exception.getMessage(), startsWith("Duplicate id: replicas"));
assertDoesNotThrow(() -> checkDuplicates(
- Set.of("replicas", "affinity"),
- Set.of("replicas0", "affinity0")
+ Set.of("replicas", "partitionDistribution"),
+ Set.of("replicas0", "partitionDistribution0")
)
);
}
diff --git a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/prepare/ddl/DistributionZoneSqlToCommandConverterTest.java b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/prepare/ddl/DistributionZoneSqlToCommandConverterTest.java
index 9f3f468978..2b66e7cb0f 100644
--- a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/prepare/ddl/DistributionZoneSqlToCommandConverterTest.java
+++ b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/prepare/ddl/DistributionZoneSqlToCommandConverterTest.java
@@ -64,7 +64,7 @@ public class DistributionZoneSqlToCommandConverterTest extends AbstractDdlSqlToC
"DATA_NODES_AUTO_ADJUST_SCALE_UP", "DATA_NODES_AUTO_ADJUST_SCALE_DOWN");
private static final List<String> STRING_OPTIONS = Arrays.asList(
- "AFFINITY_FUNCTION",
+ "DISTRIBUTION_ALGORITHM",
"DATA_NODES_FILTER",
"STORAGE_PROFILES"
);
@@ -89,7 +89,7 @@ public class DistributionZoneSqlToCommandConverterTest extends AbstractDdlSqlToC
SqlNode node = parse("CREATE ZONE test with "
+ "partitions=2, "
+ "replicas=3, "
- + "affinity_function='rendezvous', "
+ + "distribution_algorithm='rendezvous', "
+ "data_nodes_filter='$[?(@.region == \"US\")]', "
+ "data_nodes_auto_adjust=300, "
+ "storage_profiles='lru_rocks, segmented_aipersist' "
@@ -103,7 +103,7 @@ public class DistributionZoneSqlToCommandConverterTest extends AbstractDdlSqlToC
assertThat(desc.partitions(), equalTo(2));
assertThat(desc.replicas(), equalTo(3));
// TODO https://issues.apache.org/jira/browse/IGNITE-22162
- // assertThat(desc.affinity(), equalTo("rendezvous"));
+ // assertThat(desc.distributionAlgorithm(), equalTo("rendezvous"));
assertThat(desc.filter(), equalTo("$[?(@.region == \"US\")]"));
assertThat(desc.dataNodesAutoAdjust(), equalTo(300));
diff --git a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/sql/DistributionZoneSqlDdlParserTest.java b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/sql/DistributionZoneSqlDdlParserTest.java
index 12f8a9fb28..125b81fd63 100644
--- a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/sql/DistributionZoneSqlDdlParserTest.java
+++ b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/sql/DistributionZoneSqlDdlParserTest.java
@@ -93,7 +93,7 @@ public class DistributionZoneSqlDdlParserTest extends AbstractParserTest {
+ "replicas=2, "
+ "partitions=3, "
+ "data_nodes_filter='(\"US\" || \"EU\") && \"SSD\"', "
- + "affinity_function='test_Affinity', "
+ + "distribution_algorithm='test_Distribution', "
+ "data_nodes_auto_adjust=1, "
+ "data_nodes_auto_adjust_scale_up=2, "
+ "data_nodes_auto_adjust_scale_down=3"
@@ -105,7 +105,7 @@ public class DistributionZoneSqlDdlParserTest extends AbstractParserTest {
assertThatZoneOptionPresent(optList, ZoneOptionEnum.REPLICAS, 2);
assertThatZoneOptionPresent(optList, ZoneOptionEnum.PARTITIONS, 3);
- assertThatZoneOptionPresent(optList, ZoneOptionEnum.AFFINITY_FUNCTION, "test_Affinity");
+ assertThatZoneOptionPresent(optList, ZoneOptionEnum.DISTRIBUTION_ALGORITHM, "test_Distribution");
assertThatZoneOptionPresent(optList, ZoneOptionEnum.DATA_NODES_FILTER, "(\"US\" || \"EU\") && \"SSD\"");
assertThatZoneOptionPresent(optList, ZoneOptionEnum.DATA_NODES_AUTO_ADJUST, 1);
@@ -113,7 +113,7 @@ public class DistributionZoneSqlDdlParserTest extends AbstractParserTest {
+ "\"REPLICAS\" = 2, "
+ "\"PARTITIONS\" = 3, "
+ "\"DATA_NODES_FILTER\" = '(\"US\" || \"EU\") && \"SSD\"', "
- + "\"AFFINITY_FUNCTION\" = 'test_Affinity', "
+ + "\"DISTRIBUTION_ALGORITHM\" = 'test_Distribution', "
+ "\"DATA_NODES_AUTO_ADJUST\" = 1, "
+ "\"DATA_NODES_AUTO_ADJUST_SCALE_UP\" = 2, "
+ "\"DATA_NODES_AUTO_ADJUST_SCALE_DOWN\" = 3");
diff --git a/modules/table/build.gradle b/modules/table/build.gradle
index 6cf0d78c27..810bd1b158 100644
--- a/modules/table/build.gradle
+++ b/modules/table/build.gradle
@@ -29,7 +29,7 @@ dependencies {
implementation project(':ignite-schema')
implementation project(':ignite-core')
implementation project(':ignite-metastorage-api')
- implementation project(':ignite-affinity')
+ implementation project(':ignite-partition-distribution')
implementation project(':ignite-network-api')
implementation project(':ignite-network')
implementation project(':ignite-raft')
@@ -102,7 +102,7 @@ dependencies {
testFixturesImplementation project(':ignite-configuration')
testFixturesImplementation project(':ignite-catalog')
testFixturesImplementation project(':ignite-raft')
- testFixturesImplementation project(':ignite-affinity')
+ testFixturesImplementation project(':ignite-partition-distribution')
testFixturesImplementation project(':ignite-configuration-api')
testFixturesImplementation project(':ignite-partition-replicator')
testFixturesImplementation(testFixtures(project(':ignite-configuration')))
@@ -128,7 +128,7 @@ dependencies {
integrationTestImplementation project(':ignite-replicator')
integrationTestImplementation project(':ignite-raft-api')
- integrationTestImplementation project(':ignite-affinity')
+ integrationTestImplementation project(':ignite-partition-distribution')
integrationTestImplementation project(':ignite-storage-rocksdb')
integrationTestImplementation project(':ignite-storage-api')
integrationTestImplementation project(':ignite-distribution-zones')
diff --git a/modules/table/src/integrationTest/java/org/apache/ignite/internal/disaster/ItDisasterRecoveryReconfigurationTest.java b/modules/table/src/integrationTest/java/org/apache/ignite/internal/disaster/ItDisasterRecoveryReconfigurationTest.java
index 007d5c4a14..c66bafcea2 100644
--- a/modules/table/src/integrationTest/java/org/apache/ignite/internal/disaster/ItDisasterRecoveryReconfigurationTest.java
+++ b/modules/table/src/integrationTest/java/org/apache/ignite/internal/disaster/ItDisasterRecoveryReconfigurationTest.java
@@ -63,9 +63,6 @@ import java.util.stream.Collectors;
import java.util.stream.IntStream;
import org.apache.ignite.internal.ClusterPerTestIntegrationTest;
import org.apache.ignite.internal.TestWrappers;
-import org.apache.ignite.internal.affinity.Assignment;
-import org.apache.ignite.internal.affinity.Assignments;
-import org.apache.ignite.internal.affinity.RendezvousAffinityFunction;
import org.apache.ignite.internal.app.IgniteImpl;
import org.apache.ignite.internal.catalog.descriptors.CatalogZoneDescriptor;
import org.apache.ignite.internal.distributionzones.DistributionZoneManager;
@@ -79,6 +76,9 @@ import org.apache.ignite.internal.metastorage.dsl.Statement.UpdateStatement;
import org.apache.ignite.internal.network.NetworkMessage;
import org.apache.ignite.internal.partition.replicator.network.disaster.LocalPartitionStateEnum;
import org.apache.ignite.internal.partition.replicator.network.raft.SnapshotMvDataResponse;
+import org.apache.ignite.internal.partitiondistribution.Assignment;
+import org.apache.ignite.internal.partitiondistribution.Assignments;
+import org.apache.ignite.internal.partitiondistribution.RendezvousDistributionFunction;
import org.apache.ignite.internal.placementdriver.ReplicaMeta;
import org.apache.ignite.internal.raft.Peer;
import org.apache.ignite.internal.raft.RaftNodeId;
@@ -168,7 +168,7 @@ public class ItDisasterRecoveryReconfigurationTest extends ClusterPerTestIntegra
/**
* Tests the scenario in which a 5-nodes cluster loses 2 nodes, making one of its partitions unavailable for writes. In this situation
* write should not work, because "changePeers" cannot happen and group leader will not be elected. Partition 0 in this test is always
- * assigned to nodes 0, 1 and 4, according to the {@link RendezvousAffinityFunction}.
+ * assigned to nodes 0, 1 and 4, according to the {@link RendezvousDistributionFunction}.
*/
@Test
@ZoneParams(nodes = 5, replicas = 3, partitions = 1)
@@ -215,7 +215,7 @@ public class ItDisasterRecoveryReconfigurationTest extends ClusterPerTestIntegra
/**
* Tests that in a situation from the test {@link #testInsertFailsIfMajorityIsLost()} it is possible to recover partition using a
- * disaster recovery API. In this test, assignments will be (0, 3, 4), according to {@link RendezvousAffinityFunction}.
+ * disaster recovery API. In this test, assignments will be (0, 3, 4), according to {@link RendezvousDistributionFunction}.
*/
@Test
@ZoneParams(nodes = 5, replicas = 3, partitions = 1)
@@ -252,7 +252,7 @@ public class ItDisasterRecoveryReconfigurationTest extends ClusterPerTestIntegra
/**
* Tests that in a situation from the test {@link #testInsertFailsIfMajorityIsLost()} it is possible to recover specified partition
* using a disaster recovery API. In this test, assignments will be (0, 2, 4) and (1, 2, 4), according to
- * {@link RendezvousAffinityFunction}.
+ * {@link RendezvousDistributionFunction}.
*/
@Test
@ZoneParams(nodes = 5, replicas = 3, partitions = 2)
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 55b617ff3a..06b48b8085 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
@@ -34,6 +34,7 @@ import static org.apache.ignite.internal.distributionzones.rebalance.RebalanceUt
import static org.apache.ignite.internal.distributionzones.rebalance.RebalanceUtil.partitionAssignments;
import static org.apache.ignite.internal.distributionzones.rebalance.RebalanceUtil.pendingPartAssignmentsKey;
import static org.apache.ignite.internal.distributionzones.rebalance.RebalanceUtil.plannedPartAssignmentsKey;
+import static org.apache.ignite.internal.partitiondistribution.PartitionDistributionUtils.calculateAssignmentForPartition;
import static org.apache.ignite.internal.testframework.IgniteTestUtils.testNodeName;
import static org.apache.ignite.internal.testframework.IgniteTestUtils.waitForCondition;
import static org.apache.ignite.internal.testframework.TestIgnitionManager.DEFAULT_MAX_CLOCK_SKEW_MS;
@@ -94,9 +95,6 @@ import java.util.function.Predicate;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
import org.apache.ignite.client.handler.configuration.ClientConnectorExtensionConfigurationSchema;
-import org.apache.ignite.internal.affinity.AffinityUtils;
-import org.apache.ignite.internal.affinity.Assignment;
-import org.apache.ignite.internal.affinity.Assignments;
import org.apache.ignite.internal.app.ThreadPoolsManager;
import org.apache.ignite.internal.catalog.CatalogManager;
import org.apache.ignite.internal.catalog.CatalogManagerImpl;
@@ -166,6 +164,8 @@ import org.apache.ignite.internal.pagememory.configuration.schema.PersistentPage
import org.apache.ignite.internal.pagememory.configuration.schema.VolatilePageMemoryProfileConfigurationSchema;
import org.apache.ignite.internal.partition.replicator.PartitionReplicaLifecycleManager;
import org.apache.ignite.internal.partition.replicator.network.PartitionReplicationMessageGroup;
+import org.apache.ignite.internal.partitiondistribution.Assignment;
+import org.apache.ignite.internal.partitiondistribution.Assignments;
import org.apache.ignite.internal.placementdriver.TestPlacementDriver;
import org.apache.ignite.internal.placementdriver.TestReplicaMetaImpl;
import org.apache.ignite.internal.raft.Loza;
@@ -893,8 +893,8 @@ public class ItRebalanceDistributedTest extends BaseIgniteAbstractTest {
dataNodes.add(getNode(i).name);
}
- Set<Assignment> pendingAssignments = AffinityUtils.calculateAssignmentForPartition(dataNodes, 0, 2);
- Set<Assignment> plannedAssignments = AffinityUtils.calculateAssignmentForPartition(dataNodes, 0, 3);
+ Set<Assignment> pendingAssignments = calculateAssignmentForPartition(dataNodes, 0, 2);
+ Set<Assignment> plannedAssignments = calculateAssignmentForPartition(dataNodes, 0, 3);
Node node0 = getNode(0);
diff --git a/modules/table/src/integrationTest/java/org/apache/ignite/internal/rebalance/ItRebalanceTest.java b/modules/table/src/integrationTest/java/org/apache/ignite/internal/rebalance/ItRebalanceTest.java
index 9667d194c5..eec769ec44 100644
--- a/modules/table/src/integrationTest/java/org/apache/ignite/internal/rebalance/ItRebalanceTest.java
+++ b/modules/table/src/integrationTest/java/org/apache/ignite/internal/rebalance/ItRebalanceTest.java
@@ -38,11 +38,11 @@ import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
import org.apache.ignite.Ignite;
import org.apache.ignite.internal.Cluster;
-import org.apache.ignite.internal.affinity.Assignment;
import org.apache.ignite.internal.catalog.CatalogManager;
import org.apache.ignite.internal.hlc.HybridClock;
import org.apache.ignite.internal.hlc.HybridClockImpl;
import org.apache.ignite.internal.marshaller.ReflectionMarshallersProvider;
+import org.apache.ignite.internal.partitiondistribution.Assignment;
import org.apache.ignite.internal.replicator.exception.ReplicationException;
import org.apache.ignite.internal.schema.BinaryRowEx;
import org.apache.ignite.internal.schema.SchemaRegistry;
diff --git a/modules/table/src/integrationTest/java/org/apache/ignite/internal/rebalance/ItRebalanceTriggersRecoveryTest.java b/modules/table/src/integrationTest/java/org/apache/ignite/internal/rebalance/ItRebalanceTriggersRecoveryTest.java
index 5d0e34765e..43331db080 100644
--- a/modules/table/src/integrationTest/java/org/apache/ignite/internal/rebalance/ItRebalanceTriggersRecoveryTest.java
+++ b/modules/table/src/integrationTest/java/org/apache/ignite/internal/rebalance/ItRebalanceTriggersRecoveryTest.java
@@ -34,11 +34,11 @@ import java.util.concurrent.CompletableFuture;
import java.util.concurrent.TimeUnit;
import org.apache.ignite.Ignite;
import org.apache.ignite.internal.ClusterPerTestIntegrationTest;
-import org.apache.ignite.internal.affinity.Assignment;
-import org.apache.ignite.internal.affinity.Assignments;
import org.apache.ignite.internal.app.IgniteImpl;
import org.apache.ignite.internal.hlc.HybridClockImpl;
import org.apache.ignite.internal.metastorage.MetaStorageManager;
+import org.apache.ignite.internal.partitiondistribution.Assignment;
+import org.apache.ignite.internal.partitiondistribution.Assignments;
import org.apache.ignite.internal.replicator.TablePartitionId;
import org.apache.ignite.internal.storage.MvPartitionStorage;
import org.apache.ignite.internal.storage.RowId;
diff --git a/modules/table/src/integrationTest/java/org/apache/ignite/internal/table/ItEstimatedSizeTest.java b/modules/table/src/integrationTest/java/org/apache/ignite/internal/table/ItEstimatedSizeTest.java
index 7928e7208a..092475f6c2 100644
--- a/modules/table/src/integrationTest/java/org/apache/ignite/internal/table/ItEstimatedSizeTest.java
+++ b/modules/table/src/integrationTest/java/org/apache/ignite/internal/table/ItEstimatedSizeTest.java
@@ -36,10 +36,10 @@ import java.util.List;
import java.util.Objects;
import java.util.concurrent.CompletableFuture;
import org.apache.ignite.internal.ClusterPerTestIntegrationTest;
-import org.apache.ignite.internal.affinity.Assignments;
import org.apache.ignite.internal.lang.ByteArray;
import org.apache.ignite.internal.metastorage.Entry;
import org.apache.ignite.internal.metastorage.MetaStorageManager;
+import org.apache.ignite.internal.partitiondistribution.Assignments;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
diff --git a/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/PartitionReplicatorNodeRecovery.java b/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/PartitionReplicatorNodeRecovery.java
index 40f1d09a6c..0d81dc70fe 100644
--- a/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/PartitionReplicatorNodeRecovery.java
+++ b/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/PartitionReplicatorNodeRecovery.java
@@ -37,7 +37,6 @@ import java.util.concurrent.Executor;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;
import java.util.function.IntFunction;
-import org.apache.ignite.internal.affinity.Assignment;
import org.apache.ignite.internal.lang.IgniteInternalException;
import org.apache.ignite.internal.metastorage.MetaStorageManager;
import org.apache.ignite.internal.network.MessagingService;
@@ -48,6 +47,7 @@ import org.apache.ignite.internal.partition.replicator.network.PartitionReplicat
import org.apache.ignite.internal.partition.replicator.network.message.DataPresence;
import org.apache.ignite.internal.partition.replicator.network.message.HasDataRequest;
import org.apache.ignite.internal.partition.replicator.network.message.HasDataResponse;
+import org.apache.ignite.internal.partitiondistribution.Assignment;
import org.apache.ignite.internal.raft.Peer;
import org.apache.ignite.internal.raft.PeersAndLearners;
import org.apache.ignite.internal.replicator.TablePartitionId;
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 2164d119d0..87ae4c695a 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
@@ -46,6 +46,7 @@ import static org.apache.ignite.internal.hlc.HybridTimestamp.LOGICAL_TIME_BITS_S
import static org.apache.ignite.internal.hlc.HybridTimestamp.hybridTimestampToLong;
import static org.apache.ignite.internal.metastorage.dsl.Conditions.notExists;
import static org.apache.ignite.internal.metastorage.dsl.Operations.put;
+import static org.apache.ignite.internal.partitiondistribution.PartitionDistributionUtils.calculateAssignmentForPartition;
import static org.apache.ignite.internal.raft.PeersAndLearners.fromAssignments;
import static org.apache.ignite.internal.table.distributed.TableUtils.droppedTables;
import static org.apache.ignite.internal.table.distributed.index.IndexUtils.registerIndexesToTable;
@@ -96,9 +97,6 @@ import java.util.function.Predicate;
import java.util.function.Supplier;
import java.util.stream.IntStream;
import java.util.stream.Stream;
-import org.apache.ignite.internal.affinity.AffinityUtils;
-import org.apache.ignite.internal.affinity.Assignment;
-import org.apache.ignite.internal.affinity.Assignments;
import org.apache.ignite.internal.catalog.Catalog;
import org.apache.ignite.internal.catalog.CatalogService;
import org.apache.ignite.internal.catalog.descriptors.CatalogTableDescriptor;
@@ -142,6 +140,9 @@ import org.apache.ignite.internal.network.serialization.MessageSerializationRegi
import org.apache.ignite.internal.partition.replicator.LocalPartitionReplicaEvent;
import org.apache.ignite.internal.partition.replicator.PartitionReplicaEventParameters;
import org.apache.ignite.internal.partition.replicator.PartitionReplicaLifecycleManager;
+import org.apache.ignite.internal.partitiondistribution.Assignment;
+import org.apache.ignite.internal.partitiondistribution.Assignments;
+import org.apache.ignite.internal.partitiondistribution.PartitionDistributionUtils;
import org.apache.ignite.internal.placementdriver.PlacementDriver;
import org.apache.ignite.internal.placementdriver.event.PrimaryReplicaEvent;
import org.apache.ignite.internal.placementdriver.event.PrimaryReplicaEventParameters;
@@ -1307,7 +1308,7 @@ public class TableManager implements IgniteTablesInternal, IgniteComponent {
catalogVersion,
tableDescriptor.zoneId()
).thenApply(dataNodes ->
- AffinityUtils.calculateAssignmentForPartition(
+ calculateAssignmentForPartition(
dataNodes,
tablePartitionId.partitionId(),
zoneDescriptor.replicas()
@@ -1673,7 +1674,7 @@ public class TableManager implements IgniteTablesInternal, IgniteComponent {
long assignmentsTimestamp = catalog.time();
assignmentsFuture = distributionZoneManager.dataNodes(causalityToken, catalogVersion, zoneDescriptor.id())
- .thenApply(dataNodes -> AffinityUtils.calculateAssignments(
+ .thenApply(dataNodes -> PartitionDistributionUtils.calculateAssignments(
dataNodes,
zoneDescriptor.partitions(),
zoneDescriptor.replicas()
diff --git a/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/disaster/DisasterRecoveryManager.java b/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/disaster/DisasterRecoveryManager.java
index 301698cd31..83899f4e40 100644
--- a/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/disaster/DisasterRecoveryManager.java
+++ b/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/disaster/DisasterRecoveryManager.java
@@ -50,7 +50,6 @@ import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.TimeUnit;
-import org.apache.ignite.internal.affinity.Assignments;
import org.apache.ignite.internal.catalog.Catalog;
import org.apache.ignite.internal.catalog.CatalogManager;
import org.apache.ignite.internal.catalog.descriptors.CatalogObjectDescriptor;
@@ -81,6 +80,7 @@ import org.apache.ignite.internal.partition.replicator.network.disaster.LocalPar
import org.apache.ignite.internal.partition.replicator.network.disaster.LocalPartitionStateMessage;
import org.apache.ignite.internal.partition.replicator.network.disaster.LocalPartitionStatesRequest;
import org.apache.ignite.internal.partition.replicator.network.disaster.LocalPartitionStatesResponse;
+import org.apache.ignite.internal.partitiondistribution.Assignments;
import org.apache.ignite.internal.raft.Loza;
import org.apache.ignite.internal.replicator.TablePartitionId;
import org.apache.ignite.internal.replicator.message.ReplicaMessagesFactory;
diff --git a/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/disaster/ManualGroupUpdateRequest.java b/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/disaster/ManualGroupUpdateRequest.java
index 642c972c20..693777f6e5 100644
--- a/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/disaster/ManualGroupUpdateRequest.java
+++ b/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/disaster/ManualGroupUpdateRequest.java
@@ -37,6 +37,7 @@ import static org.apache.ignite.internal.metastorage.dsl.Operations.remove;
import static org.apache.ignite.internal.metastorage.dsl.Statements.iif;
import static org.apache.ignite.internal.partition.replicator.network.disaster.LocalPartitionStateEnum.CATCHING_UP;
import static org.apache.ignite.internal.partition.replicator.network.disaster.LocalPartitionStateEnum.HEALTHY;
+import static org.apache.ignite.internal.partitiondistribution.PartitionDistributionUtils.calculateAssignmentForPartition;
import static org.apache.ignite.internal.table.distributed.disaster.DisasterRecoveryRequestType.SINGLE_NODE;
import static org.apache.ignite.internal.util.ByteUtils.longToBytesKeepingOrder;
import static org.apache.ignite.internal.util.CompletableFutures.nullCompletedFuture;
@@ -51,9 +52,6 @@ import java.util.UUID;
import java.util.concurrent.CompletableFuture;
import java.util.function.Function;
import java.util.stream.IntStream;
-import org.apache.ignite.internal.affinity.AffinityUtils;
-import org.apache.ignite.internal.affinity.Assignment;
-import org.apache.ignite.internal.affinity.Assignments;
import org.apache.ignite.internal.catalog.Catalog;
import org.apache.ignite.internal.catalog.descriptors.CatalogTableDescriptor;
import org.apache.ignite.internal.catalog.descriptors.CatalogZoneDescriptor;
@@ -67,6 +65,8 @@ import org.apache.ignite.internal.metastorage.dsl.Iif;
import org.apache.ignite.internal.metastorage.dsl.StatementResult;
import org.apache.ignite.internal.partition.replicator.network.disaster.LocalPartitionStateEnum;
import org.apache.ignite.internal.partition.replicator.network.disaster.LocalPartitionStateMessage;
+import org.apache.ignite.internal.partitiondistribution.Assignment;
+import org.apache.ignite.internal.partitiondistribution.Assignments;
import org.apache.ignite.internal.replicator.TablePartitionId;
import org.apache.ignite.internal.table.distributed.disaster.exceptions.DisasterRecoveryException;
import org.apache.ignite.internal.tostring.S;
@@ -359,7 +359,8 @@ class ManualGroupUpdateRequest implements DisasterRecoveryRequest {
int replicas,
Set<Assignment> partAssignments
) {
- Set<Assignment> calcAssignments = AffinityUtils.calculateAssignmentForPartition(aliveDataNodes, partId.partitionId(), replicas);
+ Set<Assignment> calcAssignments = calculateAssignmentForPartition(aliveDataNodes, partId.partitionId(),
+ replicas);
for (Assignment calcAssignment : calcAssignments) {
if (partAssignments.size() == replicas) {
diff --git a/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/wrappers/DelegatingPlacementDriver.java b/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/wrappers/DelegatingPlacementDriver.java
index aba6e5430b..2a08a7dd9a 100644
--- a/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/wrappers/DelegatingPlacementDriver.java
+++ b/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/wrappers/DelegatingPlacementDriver.java
@@ -20,9 +20,9 @@ package org.apache.ignite.internal.table.distributed.wrappers;
import java.util.List;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.TimeUnit;
-import org.apache.ignite.internal.affinity.TokenizedAssignments;
import org.apache.ignite.internal.event.EventListener;
import org.apache.ignite.internal.hlc.HybridTimestamp;
+import org.apache.ignite.internal.partitiondistribution.TokenizedAssignments;
import org.apache.ignite.internal.placementdriver.PlacementDriver;
import org.apache.ignite.internal.placementdriver.ReplicaMeta;
import org.apache.ignite.internal.placementdriver.event.PrimaryReplicaEvent;
diff --git a/modules/table/src/main/java/org/apache/ignite/internal/utils/RebalanceUtilEx.java b/modules/table/src/main/java/org/apache/ignite/internal/utils/RebalanceUtilEx.java
index c2bb5c5d20..283769bd00 100644
--- a/modules/table/src/main/java/org/apache/ignite/internal/utils/RebalanceUtilEx.java
+++ b/modules/table/src/main/java/org/apache/ignite/internal/utils/RebalanceUtilEx.java
@@ -29,6 +29,7 @@ import static org.apache.ignite.internal.metastorage.dsl.Conditions.value;
import static org.apache.ignite.internal.metastorage.dsl.Operations.ops;
import static org.apache.ignite.internal.metastorage.dsl.Operations.put;
import static org.apache.ignite.internal.metastorage.dsl.Statements.iif;
+import static org.apache.ignite.internal.partitiondistribution.PartitionDistributionUtils.calculateAssignmentForPartition;
import static org.apache.ignite.internal.util.ByteUtils.longToBytesKeepingOrder;
import static org.apache.ignite.internal.util.CollectionUtils.difference;
import static org.apache.ignite.internal.util.CompletableFutures.nullCompletedFuture;
@@ -37,15 +38,14 @@ import java.util.Collection;
import java.util.HashSet;
import java.util.Set;
import java.util.concurrent.CompletableFuture;
-import org.apache.ignite.internal.affinity.AffinityUtils;
-import org.apache.ignite.internal.affinity.Assignment;
-import org.apache.ignite.internal.affinity.Assignments;
import org.apache.ignite.internal.lang.ByteArray;
import org.apache.ignite.internal.metastorage.Entry;
import org.apache.ignite.internal.metastorage.MetaStorageManager;
import org.apache.ignite.internal.metastorage.WatchEvent;
import org.apache.ignite.internal.metastorage.dsl.Iif;
import org.apache.ignite.internal.metastorage.dsl.Operations;
+import org.apache.ignite.internal.partitiondistribution.Assignment;
+import org.apache.ignite.internal.partitiondistribution.Assignments;
import org.apache.ignite.internal.replicator.TablePartitionId;
/**
@@ -134,7 +134,7 @@ public class RebalanceUtilEx {
return nullCompletedFuture();
}
- Set<Assignment> assignments = AffinityUtils.calculateAssignmentForPartition(dataNodes, partId.partitionId(), replicas);
+ Set<Assignment> assignments = calculateAssignmentForPartition(dataNodes, partId.partitionId(), replicas);
ByteArray pendingKey = pendingPartAssignmentsKey(partId);
diff --git a/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/TableManagerRecoveryTest.java b/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/TableManagerRecoveryTest.java
index 3cf0149dc7..8d5643b740 100644
--- a/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/TableManagerRecoveryTest.java
+++ b/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/TableManagerRecoveryTest.java
@@ -21,6 +21,7 @@ import static java.util.concurrent.CompletableFuture.completedFuture;
import static java.util.concurrent.TimeUnit.SECONDS;
import static org.apache.ignite.internal.catalog.CatalogService.DEFAULT_STORAGE_PROFILE;
import static org.apache.ignite.internal.catalog.CatalogTestUtils.createTestCatalogManager;
+import static org.apache.ignite.internal.partitiondistribution.PartitionDistributionUtils.calculateAssignments;
import static org.apache.ignite.internal.table.TableTestUtils.createHashIndex;
import static org.apache.ignite.internal.table.TableTestUtils.getTableIdStrict;
import static org.apache.ignite.internal.testframework.matchers.CompletableFutureMatcher.willCompleteSuccessfully;
@@ -60,7 +61,6 @@ import java.util.concurrent.ForkJoinPool;
import java.util.concurrent.ScheduledExecutorService;
import java.util.function.Consumer;
import java.util.function.LongFunction;
-import org.apache.ignite.internal.affinity.AffinityUtils;
import org.apache.ignite.internal.catalog.CatalogManager;
import org.apache.ignite.internal.catalog.commands.ColumnParams;
import org.apache.ignite.internal.catalog.descriptors.CatalogTableDescriptor;
@@ -91,6 +91,7 @@ import org.apache.ignite.internal.network.ClusterService;
import org.apache.ignite.internal.network.MessagingService;
import org.apache.ignite.internal.network.TopologyService;
import org.apache.ignite.internal.partition.replicator.PartitionReplicaLifecycleManager;
+import org.apache.ignite.internal.partitiondistribution.PartitionDistributionUtils;
import org.apache.ignite.internal.placementdriver.PlacementDriver;
import org.apache.ignite.internal.placementdriver.TestPlacementDriver;
import org.apache.ignite.internal.raft.Loza;
@@ -295,14 +296,14 @@ public class TableManagerRecoveryTest extends IgniteAbstractTest {
.thenReturn(mock(SchemaDescriptor.class));
}
- try (MockedStatic<AffinityUtils> affinityServiceMock = mockStatic(AffinityUtils.class)) {
+ try (MockedStatic<PartitionDistributionUtils> partitionDistributionServiceMock = mockStatic(PartitionDistributionUtils.class)) {
ArrayList<List<ClusterNode>> assignment = new ArrayList<>(PARTITIONS);
for (int part = 0; part < PARTITIONS; part++) {
assignment.add(new ArrayList<>(Collections.singleton(node)));
}
- affinityServiceMock.when(() -> AffinityUtils.calculateAssignments(any(), anyInt(), anyInt()))
+ partitionDistributionServiceMock.when(() -> calculateAssignments(any(), anyInt(), anyInt()))
.thenReturn(assignment);
}
diff --git a/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/TableManagerTest.java b/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/TableManagerTest.java
index a8afa2e211..dd8dd3eaa8 100644
--- a/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/TableManagerTest.java
+++ b/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/TableManagerTest.java
@@ -74,8 +74,6 @@ import java.util.concurrent.TimeoutException;
import java.util.function.Consumer;
import java.util.function.LongFunction;
import java.util.function.Supplier;
-import org.apache.ignite.internal.affinity.Assignment;
-import org.apache.ignite.internal.affinity.Assignments;
import org.apache.ignite.internal.catalog.CatalogManager;
import org.apache.ignite.internal.catalog.CatalogTestUtils;
import org.apache.ignite.internal.catalog.commands.ColumnParams;
@@ -105,6 +103,8 @@ import org.apache.ignite.internal.network.ClusterService;
import org.apache.ignite.internal.network.MessagingService;
import org.apache.ignite.internal.network.TopologyService;
import org.apache.ignite.internal.partition.replicator.PartitionReplicaLifecycleManager;
+import org.apache.ignite.internal.partitiondistribution.Assignment;
+import org.apache.ignite.internal.partitiondistribution.Assignments;
import org.apache.ignite.internal.placementdriver.TestPlacementDriver;
import org.apache.ignite.internal.raft.Loza;
import org.apache.ignite.internal.raft.client.TopologyAwareRaftGroupService;
diff --git a/modules/table/src/testFixtures/java/org/apache/ignite/distributed/ItTxTestCluster.java b/modules/table/src/testFixtures/java/org/apache/ignite/distributed/ItTxTestCluster.java
index 34e425445b..316243c0aa 100644
--- a/modules/table/src/testFixtures/java/org/apache/ignite/distributed/ItTxTestCluster.java
+++ b/modules/table/src/testFixtures/java/org/apache/ignite/distributed/ItTxTestCluster.java
@@ -23,6 +23,7 @@ import static java.util.stream.Collectors.toList;
import static java.util.stream.Collectors.toSet;
import static org.apache.ignite.internal.network.utils.ClusterServiceTestUtils.findLocalAddresses;
import static org.apache.ignite.internal.network.utils.ClusterServiceTestUtils.waitForTopology;
+import static org.apache.ignite.internal.partitiondistribution.PartitionDistributionUtils.calculateAssignments;
import static org.apache.ignite.internal.replicator.ReplicatorConstants.DEFAULT_IDLE_SAFE_TIME_PROPAGATION_PERIOD_MILLISECONDS;
import static org.apache.ignite.internal.testframework.matchers.CompletableFutureMatcher.willCompleteSuccessfully;
import static org.apache.ignite.internal.util.CollectionUtils.first;
@@ -62,8 +63,6 @@ import java.util.concurrent.atomic.AtomicInteger;
import java.util.function.Function;
import java.util.function.Supplier;
import java.util.stream.IntStream;
-import org.apache.ignite.internal.affinity.AffinityUtils;
-import org.apache.ignite.internal.affinity.Assignment;
import org.apache.ignite.internal.catalog.CatalogService;
import org.apache.ignite.internal.catalog.descriptors.CatalogIndexDescriptor;
import org.apache.ignite.internal.catalog.descriptors.CatalogTableDescriptor;
@@ -91,6 +90,7 @@ import org.apache.ignite.internal.network.NodeFinder;
import org.apache.ignite.internal.network.StaticNodeFinder;
import org.apache.ignite.internal.network.utils.ClusterServiceTestUtils;
import org.apache.ignite.internal.partition.replicator.network.PartitionReplicationMessageGroup;
+import org.apache.ignite.internal.partitiondistribution.Assignment;
import org.apache.ignite.internal.placementdriver.PlacementDriver;
import org.apache.ignite.internal.placementdriver.ReplicaMeta;
import org.apache.ignite.internal.placementdriver.TestPlacementDriver;
@@ -591,7 +591,7 @@ public class ItTxTestCluster {
lenient().when(catalogService.table(eq(tableId), anyLong())).thenReturn(tableDescriptor);
lenient().when(catalogService.table(eq(tableId), anyInt())).thenReturn(tableDescriptor);
- List<Set<Assignment>> calculatedAssignments = AffinityUtils.calculateAssignments(
+ List<Set<Assignment>> calculatedAssignments = calculateAssignments(
cluster.stream().map(ItTxTestCluster::extractConsistentId).collect(toList()),
1,
replicas
diff --git a/modules/transactions/build.gradle b/modules/transactions/build.gradle
index b0856c4c5f..d86eb48350 100644
--- a/modules/transactions/build.gradle
+++ b/modules/transactions/build.gradle
@@ -65,7 +65,7 @@ dependencies {
testFixturesImplementation project(':ignite-api')
testFixturesImplementation project(':ignite-schema')
testFixturesImplementation project(':ignite-runner')
- testFixturesImplementation project(':ignite-affinity')
+ testFixturesImplementation project(':ignite-partition-distribution')
testFixturesImplementation project(':ignite-metastorage-api')
testFixturesImplementation project(':ignite-placement-driver-api')
testFixturesImplementation project(':ignite-distribution-zones')
diff --git a/modules/transactions/src/testFixtures/java/org/apache/ignite/internal/tx/test/ItTransactionTestUtils.java b/modules/transactions/src/testFixtures/java/org/apache/ignite/internal/tx/test/ItTransactionTestUtils.java
index fe34a32381..c05dbb03a8 100644
--- a/modules/transactions/src/testFixtures/java/org/apache/ignite/internal/tx/test/ItTransactionTestUtils.java
+++ b/modules/transactions/src/testFixtures/java/org/apache/ignite/internal/tx/test/ItTransactionTestUtils.java
@@ -31,12 +31,12 @@ import java.util.UUID;
import java.util.concurrent.CompletableFuture;
import java.util.function.Function;
import org.apache.ignite.Ignite;
-import org.apache.ignite.internal.affinity.Assignment;
-import org.apache.ignite.internal.affinity.Assignments;
import org.apache.ignite.internal.app.IgniteImpl;
import org.apache.ignite.internal.lang.ByteArray;
import org.apache.ignite.internal.metastorage.Entry;
import org.apache.ignite.internal.metastorage.MetaStorageManager;
+import org.apache.ignite.internal.partitiondistribution.Assignment;
+import org.apache.ignite.internal.partitiondistribution.Assignments;
import org.apache.ignite.internal.placementdriver.ReplicaMeta;
import org.apache.ignite.internal.replicator.ReplicationGroupId;
import org.apache.ignite.internal.replicator.TablePartitionId;
diff --git a/settings.gradle b/settings.gradle
index 1f1ffaf2c2..6acbcd7482 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -48,7 +48,7 @@ include(':ignite-jacoco-report')
include(':ignite-configuration')
include(':ignite-configuration-presentation')
include(':ignite-core')
-include(':ignite-affinity')
+include(':ignite-partition-distribution')
include(':ignite-bytecode')
include(':ignite-runner')
include(':ignite-index')
@@ -124,7 +124,7 @@ project(":ignite-jacoco-report").projectDir = file('modules/jacoco-report')
project(":ignite-configuration").projectDir = file('modules/configuration')
project(":ignite-configuration-presentation").projectDir = file('modules/configuration-presentation')
project(":ignite-core").projectDir = file('modules/core')
-project(":ignite-affinity").projectDir = file('modules/affinity')
+project(":ignite-partition-distribution").projectDir = file('modules/partition-distribution')
project(":ignite-bytecode").projectDir = file('modules/bytecode')
project(":ignite-runner").projectDir = file('modules/runner')
project(":ignite-index").projectDir = file('modules/index')