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]