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]
