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]

Reply via email to