fhan688 commented on code in PR #19041:
URL: https://github.com/apache/hudi/pull/19041#discussion_r3612050695


##########
hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/timeline/TimelineArchiverV2.java:
##########
@@ -234,7 +235,11 @@ private List<HoodieInstant> getCommitInstantsToArchive() 
throws IOException {
             config.getCleanerPolicy());
     
earliestInstantToRetainCandidates.add(earliestInstantToRetainForClustering);
 
-    // 4. If metadata table is enabled, do not archive instants which are more 
recent than the last compaction on the
+    // 4. If enabled, block archival based on ECTR from the last completed 
clean to ensure we don't archive
+    // commits that have data files that haven't been cleaned yet.
+    
earliestInstantToRetainCandidates.add(getEarliestInstantToRetainForClean(table, 
completedCommitsTimeline, config));

Review Comment:
   Good point. After comparing this with 
`getEarliestInstantToRetainForClustering` and the existing V2/LSM design, I 
could not identify another write action that requires this generic clean ECTR 
boundary for data correctness. The replace/clustering case that can expose 
replaced files is already protected by the clustering retain-instant logic, 
while pending instants and compaction have their own archival guards.



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

Reply via email to