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

Update block builder rollout strategy #4642

Closed

Conversation

mapno
Copy link
Member

@mapno mapno commented Jan 30, 2025

What this PR does:

Updates block-builder sts rollout strategy to ensure simultaneous updates. Otherwise it run the risk of ownership conflicts in partitions.

It requires Kubernetes >=v1.24 and MaxUnavailableStatefulSet feature gate enabled. It's ignored if not enabled or not supported.

Case scenario

There are 6 partitions and 3 block-builders.

Partition assignment is as follows:
- block-builder-0 has assigned partitions 0 and 3.
- block-builder-1 has assigned partitions 1 and 4.
- block-builder-2 has assigned partitions 2 and 5.

If a new block-builder is deployed, partition assignment will change to
- block-builder-0 has assigned partitions 0 and 4.
- block-builder-1 has assigned partitions 1 and 5.
- block-builder-2 has assigned partitions 2.
- block-builder-3 has assigned partitions 3.

As soon as block-builders are rolled out, they'll have the new config,
while older replicas will have the old config—ie. at one point,
block-builder-3 and block-builder-0 both will own partition 3

Checklist

  • Tests updated
  • Documentation added
  • CHANGELOG.md updated - the order of entries should be [CHANGE], [FEATURE], [ENHANCEMENT], [BUGFIX]

@mapno mapno force-pushed the update-block-builder-rollout-strategy branch from fb977e3 to e0889c2 Compare January 30, 2025 08:50
@mapno mapno marked this pull request as draft January 30, 2025 09:33
@mapno
Copy link
Member Author

mapno commented Jan 30, 2025

Marking as draft while I investigate the viability of this change, given that it depends on an feature gate in alpha

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.

1 participant