krishan1390 opened a new pull request, #18584: URL: https://github.com/apache/pinot/pull/18584
## Summary - Adds a new boolean `autoCompleteLineageEntry` to `LineageEntry`. Default `false` preserves the existing client-driven completion semantics (`endReplaceSegments`). - When set to `true`, the entry signals that an observer (e.g. a controller-side periodic task) is permitted to mark the entry completed automatically once all `segmentsTo` are ONLINE in the external view. - `SegmentLineage` serialization is updated to be tolerant on read (accepts both 4-tuple legacy and 5-tuple new format) and conservative on write (emits a 5th element only when the flag is `true`), so rolling upgrades and mixed-version controllers can co-exist. - `PinotHelixResourceManager`'s lineage state-transition sites (`endReplaceSegments`, two branches of `revertReplaceSegments`) preserve the flag when constructing the updated entry. - No consumer of the flag is added in this PR — a follow-up will introduce the observer that uses it. ## Test plan - [x] Extended `SegmentLineageTest` to round-trip a `LineageEntry` with `autoCompleteLineageEntry=true` through `ZNRecord`. - [x] Added a test that simulates a legacy 4-tuple `ZNRecord` written by an older controller and asserts it parses with the flag defaulting to `false`. - [x] Asserted that two entries differing only in the new flag are not equal. - [x] Confirmed default-false entries still serialize as 4-tuples (no wire-format churn for existing users). -- 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] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
