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]