sivabalan narayanan created HUDI-4112:
-----------------------------------------

             Summary: Relax constraint in metadata table that rollback of a 
commit that got archived in MDT throws exception
                 Key: HUDI-4112
                 URL: https://issues.apache.org/jira/browse/HUDI-4112
             Project: Apache Hudi
          Issue Type: Bug
          Components: metadata
            Reporter: sivabalan narayanan


when we are trying to rollback a commit, and if the commit it archived in MDT, 
when this rollback is getting applied to MDT, we throw exception. 

 

excerpt from HoodieTableMetadataUtil.java

 
{code:java}
HoodieInstant syncedInstant = new HoodieInstant(false, 
HoodieTimeline.DELTA_COMMIT_ACTION, instantToRollback);
if 
(metadataTableTimeline.getCommitsTimeline().isBeforeTimelineStarts(syncedInstant.getTimestamp()))
 {
  throw new HoodieMetadataException(String.format("The instant %s required to 
sync rollback of %s has been archived",
      syncedInstant, instantToRollback));
}
shouldSkip = !metadataTableTimeline.containsInstant(syncedInstant);
if (!hasNonZeroRollbackLogFiles && shouldSkip) {
  LOG.info(String.format("Skipping syncing of rollbackMetadata at %s, since 
this instant was never committed to Metadata Table",
      instantToRollback));
  return;
} {code}
 

This is very much valid in case of restore operation. 

C1, C2, C3, C4, C5, C6. 

C2 savepointed. 

but MDT could have archived C2(aggressive archival commits) since all C1 to C6 
are committed. So, when we trigger restore to C1, it will invoke rollback of 
C6, C5... C2. 

So, with savepoint and restore flow, this is a valid scenario and we need to 
relax the constraint. 

 

 



--
This message was sent by Atlassian Jira
(v8.20.7#820007)

Reply via email to