[ 
https://issues.apache.org/jira/browse/HUDI-3721?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Raymond Xu updated HUDI-3721:
-----------------------------
    Sprint: Hudi-Sprint-Mar-21, Hudi-Sprint-Mar-22  (was: Hudi-Sprint-Mar-21)

> Metadata table blocks rollback and restore to savepoint before 
> bootstrapped/init commit
> ---------------------------------------------------------------------------------------
>
>                 Key: HUDI-3721
>                 URL: https://issues.apache.org/jira/browse/HUDI-3721
>             Project: Apache Hudi
>          Issue Type: Bug
>            Reporter: Ethan Guo
>            Assignee: Ethan Guo
>            Priority: Blocker
>              Labels: pull-request-available
>             Fix For: 0.11.0
>
>
> Say the table has instants C1 to C4, and the data table does not have MDT 
> enabled.  After C4, the writer enables MDT so MDT has DC4 as the first 
> instant with the same timestamp as C4.  The rollback of any commit before C4 
> on data table is going to fail now due to the following check.  This is going 
> to fail restore to a savepoint before C4 as well if there is any.  Yet the 
> check itself can be relaxed in such a case to allow the rollback to get 
> through.
> {code:java}
> C1 C2 C3 C4
>           | metadata table init
>       // Case 2: The instant-to-rollback was never committed to Metadata 
> Table. This can happen if the instant-to-rollback
>       // was a failed commit (never completed) as only completed instants are 
> synced to Metadata Table.
>       // But the required Metadata Table instants should not have been 
> archived
>       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));
>       }{code}
> Prashant proposes to make the bootstrap commit of metadata table have a 
> specific suffix (just like we have 001 and 002 for compaction and clean). 
> This will make it trivial to detect such cases.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to