You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@ignite.apache.org by "EgorKuts (via GitHub)" <gi...@apache.org> on 2026/01/21 07:30:07 UTC

[PR] Ignite 24467 [ignite-3]

EgorKuts opened a new pull request, #7445:
URL: https://github.com/apache/ignite-3/pull/7445

   HA reset overwrites ongoing rebalance caused by the distribution zone filter change. Solution: append existing pendings to assigment queue during reset.
   
   https://issues.apache.org/jira/browse/IGNITE-24467


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@ignite.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] Ignite 24467 [ignite-3]

Posted by "EgorKuts (via GitHub)" <gi...@apache.org>.
EgorKuts commented on code in PR #7445:
URL: https://github.com/apache/ignite-3/pull/7445#discussion_r2742941783


##########
modules/table/src/main/java/org/apache/ignite/internal/table/distributed/disaster/GroupUpdateRequestHandler.java:
##########
@@ -333,7 +333,17 @@ private static CompletableFuture<Integer> partitionUpdate(
                     .stable(Assignments.of(currentAssignments, assignmentsTimestamp))
                     .target(Assignments.forced(Set.of(nextAssignment), assignmentsTimestamp))
                     .toQueue();
-
+            if (!manualUpdate) {

Review Comment:
   If A and B are left by the reset revision, they won’t be put into pending. When they start and recover, they will be destroyed.
   
   If A and B are not left by the reset revision, they will win the election and become leader instead of C.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@ignite.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] Ignite 24467 [ignite-3]

Posted by "EgorKuts (via GitHub)" <gi...@apache.org>.
EgorKuts commented on code in PR #7445:
URL: https://github.com/apache/ignite-3/pull/7445#discussion_r2742941783


##########
modules/table/src/main/java/org/apache/ignite/internal/table/distributed/disaster/GroupUpdateRequestHandler.java:
##########
@@ -333,7 +333,17 @@ private static CompletableFuture<Integer> partitionUpdate(
                     .stable(Assignments.of(currentAssignments, assignmentsTimestamp))
                     .target(Assignments.forced(Set.of(nextAssignment), assignmentsTimestamp))
                     .toQueue();
-
+            if (!manualUpdate) {

Review Comment:
   If A and B are left by the reset revision, they won’t be put into pending. When they start and recover, they will be destroyed.
   
   If A and B are not left by the reset revision, they will win the election and become leaders instead of C.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@ignite.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] Ignite-24467 fixed reset&filter rebalance race [ignite-3]

Posted by "sk0x50 (via GitHub)" <gi...@apache.org>.
sk0x50 merged PR #7445:
URL: https://github.com/apache/ignite-3/pull/7445


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@ignite.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] Ignite 24467 [ignite-3]

Posted by "alievmirza (via GitHub)" <gi...@apache.org>.
alievmirza commented on code in PR #7445:
URL: https://github.com/apache/ignite-3/pull/7445#discussion_r2727676623


##########
modules/table/src/integrationTest/java/org/apache/ignite/internal/table/distributed/disaster/ItHighAvailablePartitionsRecoveryByFilterUpdateTest.java:
##########


Review Comment:
   `assertLogicalTopologyInMetastorage(List.of(0, 3, 4, 5), node);`



##########
modules/transactions/src/integrationTest/java/org/apache/ignite/internal/disaster/ItDisasterRecoveryReconfigurationTest.java:
##########
@@ -808,19 +808,21 @@ void testAutomaticRebalanceIfMajorityIsLost() throws Exception {
 
         awaitPrimaryReplica(node0, partId);
 
-        assertRealAssignments(node0, partId, 1);
+        assertRealAssignments(node0, partId, 0, 1, 2);
 
         List<Throwable> errors = insertValues(table, partId, 0);
         assertThat(errors, is(empty()));
 
         // Check that there is no ongoing or planned rebalance.
         assertNull(getPendingAssignments(node0, partId));
 
-        assertRealAssignments(node0, partId, 1);

Review Comment:
   let's also check scenario when  offline nodes where filtered (in this case, node 2 also was removed)



##########
modules/partition-distribution/src/main/java/org/apache/ignite/internal/partitiondistribution/AssignmentsQueue.java:
##########
@@ -41,6 +41,15 @@ public class AssignmentsQueue implements Iterable<Assignments> {
     @IgniteToStringInclude
     private final Deque<Assignments> queue;
 
+    /** Constructor. */
+    public AssignmentsQueue(AssignmentsQueue... assignmentsQueues) {
+        LinkedList<Assignments> assigments = new LinkedList<>();

Review Comment:
   typo



##########
modules/table/src/main/java/org/apache/ignite/internal/table/distributed/disaster/GroupUpdateRequestHandler.java:
##########
@@ -333,7 +333,17 @@ private static CompletableFuture<Integer> partitionUpdate(
                     .stable(Assignments.of(currentAssignments, assignmentsTimestamp))
                     .target(Assignments.forced(Set.of(nextAssignment), assignmentsTimestamp))
                     .toQueue();
-
+            if (!manualUpdate) {

Review Comment:
   Let think about this zhopniy scenario
   
   ```
   A(10), B(10), C(6)
   
   A, B left
   
   C leader -> we have pending realance that include A or B [A, B, C, E(0)]
   C accepts some data -> C(10')
   A, B restarted, they wont clean up their data
   
   A(10), B(10), C(10'), E(10')
   
   ```



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@ignite.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] Ignite 24467 [ignite-3]

Posted by "EgorKuts (via GitHub)" <gi...@apache.org>.
EgorKuts commented on code in PR #7445:
URL: https://github.com/apache/ignite-3/pull/7445#discussion_r2742941783


##########
modules/table/src/main/java/org/apache/ignite/internal/table/distributed/disaster/GroupUpdateRequestHandler.java:
##########
@@ -333,7 +333,17 @@ private static CompletableFuture<Integer> partitionUpdate(
                     .stable(Assignments.of(currentAssignments, assignmentsTimestamp))
                     .target(Assignments.forced(Set.of(nextAssignment), assignmentsTimestamp))
                     .toQueue();
-
+            if (!manualUpdate) {

Review Comment:
   If A and B are left by the reset revision, they won’t be put into pending. When they start and recover, they will be destroyed.
   
   If A and B are not left by the reset revision, they will win the selection for pending and eventually become leader instead of C.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@ignite.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org