Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pauseless consumption #14439

Draft
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

sajjad-moradi
Copy link
Contributor

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

@Jackie-Jiang
Copy link
Contributor

Some high level questions:

  1. How does broker detect the new consuming segment?
  2. What will happen if a new consuming segment is created by the Helix message, and a rebalance is triggered moving the segment?
  3. What will happen if the new segment reaches the commit threshold before the previous segment is committed?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants