yihua opened a new pull request #5114:
URL: https://github.com/apache/hudi/pull/5114


   ## What is the purpose of the pull request
   
   Before this change, the sequence of changes in the rollback action are:
   (1) Get the instant (C1) to roll back.  If there is already a pending 
rollback (RB_C1) for the same instant (C1) in the active timeline, the same 
rollback instant (RB_C1) and the rollback plan are reused.  Otherwise, schedule 
a new rollback instant.
   (2) Transition C1 to inflight if completed.
   (3) Delete data files written by C1.
   (4) Delete instant files (C1) in the data table timeline.
   (5) Commit changes from the rollback (RB_C1) to metadata table
   (6) Transition the rollback instant (RB_C1) from inflight to complete on 
data table timeline.
   
   By design, we should only change data table timeline after committing the 
changes to the metadata table.  This PR changes the order of timeline changes 
as below, switching the order of (4) and (5) above:
   (1) Get the instant (C1) to roll back.  If there is already a pending 
rollback (RB_C1) for the same instant (C1) in the active timeline, the same 
rollback instant (RB_C1) and the rollback plan is reused.  Otherwise, schedule 
a new rollback instant.
   (2) Transition C1 to inflight if completed.
   (3) Delete data files written by C1.
   ***(4) Commit changes from the rollback (RB_C1) to metadata table***
   ***(5) Delete instant files (C1) in the data table timeline.***
   (6) Transition the rollback instant (RB_C1) from inflight to complete on 
data table timeline.
   
   ## Brief change log
   
     - Changes the order of timeline change in `BaseRollbackActionExecutor`, by 
first applying the rollback metadata to the metadata table, then deleting the 
instant files of the instant to rollback in the data table timeline, and 
finally transiting the inflight rollback to complete in the data table timeline.
   
   ## Verify this pull request
   
   This pull request is already covered by existing tests around rollbacks.
   
   ## Committer checklist
   
    - [ ] Has a corresponding JIRA in PR title & commit
    
    - [ ] Commit message is descriptive of the change
    
    - [ ] CI is green
   
    - [ ] Necessary doc changes done or have another open PR
          
    - [ ] For large changes, please consider breaking it into sub-tasks under 
an umbrella JIRA.
   


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