FrankChen021 commented on code in PR #19889:
URL: https://github.com/apache/druid/pull/19889#discussion_r3735954964


##########
server/src/main/java/org/apache/druid/server/coordinator/loading/HttpLoadQueuePeon.java:
##########
@@ -409,6 +436,9 @@ private void updateSuccessOrFailureInHolder(SegmentHolder 
holder, SegmentChangeS
             if (status.getState() == SegmentChangeStatus.State.FAILED) {
               onRequestFailed(holder, status);
             } else {
+              // Retain until the inventory view catches up, so the operation 
is never invisible in both.
+              holder.markAcknowledgedByServer();
+              segmentsAwaitingConfirmation.put(holder.getSegment().getId(), 
holder);

Review Comment:
   [P2] Delay MOVE_TO callbacks until inventory confirmation
   
   The holder is retained, but the following onRequestCompleted still 
dispatches its callback immediately. For a MOVE_TO, this removes the source 
MOVE_FROM mark and queues the source DROP before the target appears in 
inventory. If that DROP is also acknowledged while the source inventory still 
shows the segment, the next coordinator run sees DROP on the source and MOVE_TO 
on the target; replica accounting treats neither as a projected loaded replica, 
so a third eligible historical can receive an unnecessary duplicate load. Defer 
the move callback until target confirmation, or account for this acknowledged 
move pair explicitly.



-- 
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