Rollback of log compaction should use existing pending rollback instants
- Dominant language
- Java
- Stars
- 6.2k
- Forks
- 2.5k
- Avg merge
- 2d 8h
- Merged PRs (30d)
- 111
Description
rollbackInflightLogCompaction(inflightInstant, s -> Option.empty());
*Comments*
shouldn't we pass getPendingRollbackInstantFunc in the 2nd argument.
the reason why we introduced the pending rollback is below.
Lets say c5 commit partially failed.
when we are looking to start a new commit, say C7, we deduct that c5 has failed and we trigger a rollback named RB_5.
But lets say the process crashed mid-way for RB_5.
Next time we restart the pipeline for say C8. again we deduct that c5 is partially failed and we want to rollback. but we don't want to create RB_9 for this,but re-use RB_5 again and get it to completion.
So, rollbackPendingCompaction or rollbackPendingClustering should always try to re-use rollback instants if any.
## JIRA info
- Link: https://issues.apache.org/jira/browse/HUDI-4829
- Type: Bug
- Epic: https://issues.apache.org/jira/browse/HUDI-3580
Contributor guide
No contributing guide indexed for this repository
Research direction
Start at rollbackInflightLogCompaction and trace rollbackPendingCompaction and rollbackPendingClustering, including the getPendingRollbackInstantFunc argument. Verify how a previously created pending rollback instant is found and reused after a restart, and confirm that a new rollback instant is not created for the same failed commit.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- data-engineering
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100