jackjlli commented on code in PR #8667:
URL: https://github.com/apache/pinot/pull/8667#discussion_r869674942


##########
pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/PinotHelixResourceManager.java:
##########
@@ -3132,8 +3132,20 @@ public String startReplaceSegments(String 
tableNameWithType, List<String> segmen
               // Update segment lineage entry to 'REVERTED'
               updateSegmentLineageEntryToReverted(tableNameWithType, 
segmentLineage, entryId, lineageEntry);
 
+              // Update segmentsTo of the 'REVERTED' entry to handle the 
following case:

Review Comment:
   I don't think we can directly remove the `IN_PROGRESS` entry, otherwise any 
segments in `segmentsTo` can be queried, while the next batch of segment upload 
is still in progress.
   E.g. if the 1st lineage entry is like `{segmentsTo: [s3, s4]}` and the next 
one is `{segmentsTo: [s4, s5]}`, then s3 can be queried once the lineage is 
removed. So only when s3 is removed can we safely delete the old `IN_PROGRESS` 
entry.



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