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)