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 067ba4d806 IGNITE-22851 Move raft client's update configuration
process into replicas (#4223)
067ba4d806 is described below
commit 067ba4d806c83fb52da7e2c8c33854da9cc39c6a
Author: Mikhail Efremov <[email protected]>
AuthorDate: Thu Aug 15 18:57:57 2024 +0600
IGNITE-22851 Move raft client's update configuration process into replicas
(#4223)
---
.../partition/replicator/PartitionReplicaLifecycleManager.java | 6 ++----
.../main/java/org/apache/ignite/internal/replicator/Replica.java | 8 ++++++++
.../java/org/apache/ignite/internal/replicator/ReplicaImpl.java | 7 +++++++
.../ignite/internal/replicator/ZonePartitionReplicaImpl.java | 7 +++++++
.../apache/ignite/internal/table/distributed/TableManager.java | 6 ++----
5 files changed, 26 insertions(+), 8 deletions(-)
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 529c625c21..911848f518 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
@@ -802,8 +802,7 @@ public class PartitionReplicaLifecycleManager implements
IgniteComponent {
// Update raft client peers and learners according to the actual
assignments.
return replicaMgr.replica(zonePartitionId)
- .thenApply(Replica::raftClient)
- .thenAccept(raftClient ->
raftClient.updateConfiguration(fromAssignments(stableAssignments)));
+ .thenAccept(replica ->
replica.updatePeersAndLearners(fromAssignments(stableAssignments)));
}));
}
@@ -977,8 +976,7 @@ public class PartitionReplicaLifecycleManager implements
IgniteComponent {
: union(pendingAssignmentsNodes,
stableAssignments.nodes());
replicaMgr.replica(replicaGrpId)
- .thenApply(Replica::raftClient)
- .thenAccept(raftClient ->
raftClient.updateConfiguration(fromAssignments(newAssignments)));
+ .thenAccept(replica ->
replica.updatePeersAndLearners(fromAssignments(newAssignments)));
}), ioExecutor);
}
diff --git
a/modules/replicator/src/main/java/org/apache/ignite/internal/replicator/Replica.java
b/modules/replicator/src/main/java/org/apache/ignite/internal/replicator/Replica.java
index b9141c3f98..b476277846 100644
---
a/modules/replicator/src/main/java/org/apache/ignite/internal/replicator/Replica.java
+++
b/modules/replicator/src/main/java/org/apache/ignite/internal/replicator/Replica.java
@@ -20,6 +20,7 @@ package org.apache.ignite.internal.replicator;
import java.util.concurrent.CompletableFuture;
import org.apache.ignite.internal.network.NetworkMessage;
import
org.apache.ignite.internal.placementdriver.message.PlacementDriverReplicaMessage;
+import org.apache.ignite.internal.raft.PeersAndLearners;
import org.apache.ignite.internal.raft.client.TopologyAwareRaftGroupService;
import org.apache.ignite.internal.replicator.listener.ReplicaListener;
import org.apache.ignite.internal.replicator.message.ReplicaRequest;
@@ -73,4 +74,11 @@ public interface Replica {
* Shutdowns the replica.
*/
CompletableFuture<Void> shutdown();
+
+ /**
+ * Updates local peers and learners.
+ *
+ * @param peersAndLearners Peers and learners.
+ */
+ void updatePeersAndLearners(PeersAndLearners peersAndLearners);
}
diff --git
a/modules/replicator/src/main/java/org/apache/ignite/internal/replicator/ReplicaImpl.java
b/modules/replicator/src/main/java/org/apache/ignite/internal/replicator/ReplicaImpl.java
index ef1c673869..7f46cd276e 100644
---
a/modules/replicator/src/main/java/org/apache/ignite/internal/replicator/ReplicaImpl.java
+++
b/modules/replicator/src/main/java/org/apache/ignite/internal/replicator/ReplicaImpl.java
@@ -41,6 +41,7 @@ import
org.apache.ignite.internal.placementdriver.message.LeaseGrantedMessageRes
import
org.apache.ignite.internal.placementdriver.message.PlacementDriverMessagesFactory;
import
org.apache.ignite.internal.placementdriver.message.PlacementDriverReplicaMessage;
import org.apache.ignite.internal.raft.Peer;
+import org.apache.ignite.internal.raft.PeersAndLearners;
import org.apache.ignite.internal.raft.client.TopologyAwareRaftGroupService;
import org.apache.ignite.internal.replicator.listener.ReplicaListener;
import
org.apache.ignite.internal.replicator.message.PrimaryReplicaChangeCommand;
@@ -306,4 +307,10 @@ public class ReplicaImpl implements Replica {
listener.onShutdown();
return raftClient.unsubscribeLeader();
}
+
+ /** {@inheritDoc} */
+ @Override
+ public void updatePeersAndLearners(PeersAndLearners peersAndLearners) {
+ raftClient.updateConfiguration(peersAndLearners);
+ }
}
diff --git
a/modules/replicator/src/main/java/org/apache/ignite/internal/replicator/ZonePartitionReplicaImpl.java
b/modules/replicator/src/main/java/org/apache/ignite/internal/replicator/ZonePartitionReplicaImpl.java
index 993219518f..4ccc5489f0 100644
---
a/modules/replicator/src/main/java/org/apache/ignite/internal/replicator/ZonePartitionReplicaImpl.java
+++
b/modules/replicator/src/main/java/org/apache/ignite/internal/replicator/ZonePartitionReplicaImpl.java
@@ -22,6 +22,7 @@ import static
org.apache.ignite.internal.util.CompletableFutures.nullCompletedFu
import java.util.concurrent.CompletableFuture;
import org.apache.ignite.internal.network.NetworkMessage;
import
org.apache.ignite.internal.placementdriver.message.PlacementDriverReplicaMessage;
+import org.apache.ignite.internal.raft.PeersAndLearners;
import org.apache.ignite.internal.raft.client.TopologyAwareRaftGroupService;
import org.apache.ignite.internal.replicator.listener.ReplicaListener;
import org.apache.ignite.internal.replicator.message.ReplicaRequest;
@@ -82,4 +83,10 @@ public class ZonePartitionReplicaImpl implements Replica {
public CompletableFuture<Void> shutdown() {
return nullCompletedFuture();
}
+
+ /** {@inheritDoc} */
+ @Override
+ public void updatePeersAndLearners(PeersAndLearners peersAndLearners) {
+ raftClient.updateConfiguration(peersAndLearners);
+ }
}
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 613f457ca3..39608b66bc 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
@@ -2112,8 +2112,7 @@ public class TableManager implements
IgniteTablesInternal, IgniteComponent {
: union(pendingAssignmentsNodes,
stableAssignments.nodes());
replicaMgr.replica(replicaGrpId)
- .thenApply(Replica::raftClient)
- .thenAccept(raftClient ->
raftClient.updateConfiguration(fromAssignments(newAssignments)));
+ .thenAccept(replica ->
replica.updatePeersAndLearners(fromAssignments(newAssignments)));
}), ioExecutor);
}
@@ -2446,8 +2445,7 @@ public class TableManager implements
IgniteTablesInternal, IgniteComponent {
// Update raft client peers and learners according to the actual
assignments.
return replicaMgr.replica(tablePartitionId)
- .thenApply(Replica::raftClient)
- .thenAccept(raftClient ->
raftClient.updateConfiguration(fromAssignments(stableAssignments)));
+ .thenAccept(replica ->
replica.updatePeersAndLearners(fromAssignments(stableAssignments)));
}));
}