Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
[DRAFT]
This PR introduces the pauseless consumption feature based on the design described in issue #10147
The only difference from the design in the issue is that, once the winner replica is identified, a custom Helix message PauselessConsumptionMessage is sent only to servers that will continue hosting consuming segments for the same partitions they previously hosted. This minimizes changes to the segment commit protocol.
The pauseless consumption feature is controlled via a configuration in StreamConfigs. Making this feature configurable helps mitigate the additional memory requirements for use cases that are less sensitive to ingestion delays. Specifically, during segment commit, pauseless consumption requires twice the off-heap memory for consuming segments.
Lastly, while this PR is still in draft mode and some aspects remain to be completed - such as adding detailed logging, refactoring RealtimeSegmentValidationManager to accommodate the new changes, and updating segmentFlushThresholdComputer - the core functionality has been verified through integration tests.