prashantwason opened a new pull request, #19661:
URL: https://github.com/apache/hudi/pull/19661

   ### Describe the issue this Pull Request addresses
   
   Commit and deltacommit instants already carry debugging metadata 
(`hudi.version`, `engine`, selected write configs) in their `extraMetadata`, 
but clean, rollback, savepoint and restore instants do not. When investigating 
a timeline it is therefore impossible to tell which Hudi version / engine 
produced those instants. This PR extends the same debugging metadata to all 
instant types.
   
   ### Summary and Changelog
   
   Every instant on the timeline (clean, rollback, savepoint, restore, in 
addition to commit/deltacommit/replacecommit) now records the writer's 
`hudi.version` and `engine` in its `extraMetadata`, making post-hoc debugging 
of mixed-version / multi-engine writers much easier.
   
   - Add a nullable `extraMetadata` field to 5 Avro schemas: 
`HoodieRollbackPlan`, `HoodieRollbackMetadata`, `HoodieSavePointMetadata`, 
`HoodieRestorePlan`, `HoodieRestoreMetadata`
   - Wire `CommitMetadataProperties.enrich()` into clean scheduling (was 
hardcoded `Option.empty()`)
   - Thread `extraMetadata` through the rollback plan -> completed rollback 
metadata flow, including rollbacks scheduled internally by `HoodieTable` 
(inflight / log-compaction rollbacks), restore executors, and 
pending-clustering rollbacks in `BaseSparkCommitActionExecutor`
   - Thread `extraMetadata` through the restore plan -> completed restore 
metadata flow
   - Call `enrich()` in `SavepointActionExecutor` for completed savepoints
   - Fix clustering bug: the plan's `extraMetadata` was not re-merged into the 
completed `HoodieReplaceCommitMetadata`
   - Add `TimelineMetadataUtils` overloads that accept `extraMetadata`
   - Add an `extraMetadata` parameter to `HoodieTable.scheduleRollback` / 
`scheduleRestore` and `BaseRollbackPlanActionExecutor`; update all callers and 
tests
   - 10 new unit tests in `TestCommitMetadataProperties`
   
   ### Impact
   
   No user-facing API change. Timeline metadata for 
clean/rollback/savepoint/restore instants gains a few small string entries. The 
new Avro fields are nullable with a `null` default, so old readers can read new 
files and new readers can read old files. Internal `HoodieTable` / rollback 
executor method signatures gain an `extraMetadata` parameter.
   
   ### Risk Level
   
   low - Avro schema changes are backward/forward compatible (nullable fields 
with default `null`), and the metadata is purely informational and not consumed 
by any read or write path.
   
   ### Documentation Update
   
   none
   
   ### Contributor's checklist
   
   - [x] Read through [contributor's 
guide](https://hudi.apache.org/contribute/how-to-contribute)
   - [x] Enough context is provided in the sections above
   - [x] Adequate tests were added if applicable
   
   Jira Issues: T3-HUDI-9605
   


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