xiangfu0 commented on code in PR #20097:
URL: https://github.com/apache/pinot/pull/20097#discussion_r4416804808


##########
pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/rebalance/TableRebalancer.java:
##########
@@ -791,6 +800,11 @@ private RebalanceResult doRebalance(TableConfig 
tableConfig, RebalanceConfig reb
         Preconditions.checkState(_helixDataAccessor.getBaseDataAccessor()
                 .set(idealStatePropertyKey.getPath(), idealStateRecord, 
expectedVersion, AccessOption.PERSISTENT),
             "Failed to update IdealState");
+        if (forceCommit) {
+          for (String segment : getMovingConsumingSegments(currentAssignment, 
nextAssignment)) {
+            forceCommittedPartitions.remove(new 
LLCSegmentName(segment).getPartitionGroupId());

Review Comment:
   Non-blocking: this marker is only cleared when the partition's consuming 
segment moves. When the successor is created directly on the target instances 
(non-strict-RG, or `stepPartitionAssignment=false`), it never moves, so the 
marker stays for the rest of the rebalance. That's harmless unless the target 
changes mid-rebalance (e.g. a full recompute after an instance config change). 
In that case the partition's consuming segment would move as CONSUMING without 
a force commit. If that's intended, maybe mention it in the comment above the 
field.



-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to