nsivabalan commented on a change in pull request #4016:
URL: https://github.com/apache/hudi/pull/4016#discussion_r776110075
##########
File path:
hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/action/clean/CleanActionExecutor.java
##########
@@ -230,11 +230,15 @@ public HoodieCleanMetadata execute() {
.filterInflightsAndRequested().getInstants().collect(Collectors.toList());
if (pendingCleanInstants.size() > 0) {
pendingCleanInstants.forEach(hoodieInstant -> {
- LOG.info("Finishing previously unfinished cleaner instant=" +
hoodieInstant);
- try {
- cleanMetadataList.add(runPendingClean(table, hoodieInstant));
- } catch (Exception e) {
- LOG.warn("Failed to perform previous clean operation, instant: " +
hoodieInstant, e);
+ if (table.getCleanTimeline().isEmpty(hoodieInstant)) {
Review comment:
what happens if inflight is empty, but requested is not. I understand we
will delete the inflight here. but will the instant get re-attempted to be
clean later (since the requested meta file is intact) ?
lets say there are 3 instants in pending clean, CL1, --> CL4.
out of which CL3 inflight is empty.
So, infirst round, we will trigger run pending clean for CL1, CL2 and CL4.
and delete CL3 inflight meta file.
next time, when clean action executor is executed, we will execute CL3 since
requested meta file is non empty.
Is my understanding right.
also, is this behavior acceptable ? since we are having gaps wrt executing
the clean. gaps in the sense, ordering of how cleaning is triggered for
multiple clean instants.
--
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]