Skip to content

[subcluster-validation] Allow a shard to span a subcluster being drained - #4397

Open
prateek2211 wants to merge 1 commit into
masterfrom
prateek-sachan_UBER/subcluster-drain-validation
Open

[subcluster-validation] Allow a shard to span a subcluster being drained#4397
prateek2211 wants to merge 1 commit into
masterfrom
prateek-sachan_UBER/subcluster-drain-validation

Conversation

@prateek2211

Copy link
Copy Markdown
Contributor

What this PR does / why we need it:
Draining a node of a subclustered placement one batch of shards at a time leaves its subcluster holding fewer replicas than its share of the placement, and the shards moved out of it are shared with another subcluster until the drain finishes. Validation rejected that state as long as both subclusters still held their full set of instances, so a node could only be drained in a single step.

A shard may now span two subclusters when either of them is incomplete, that is when it is missing instances or when it holds fewer replicas than its target shard count times the replication factor. A shard shared by two complete subclusters is still rejected.
Fixes #

Special notes for your reviewer:

Does this PR introduce a user-facing and/or backwards incompatible change?:


Does this PR require updating code package or user-facing documentation?:


…being drained

Draining a node of a subclustered placement one batch of shards at a time
leaves its subcluster holding fewer replicas than its share of the placement,
and the shards moved out of it are shared with another subcluster until the
drain finishes. Validation rejected that state as long as both subclusters
still held their full set of instances, so a node could only be drained in a
single step.

A shard may now span two subclusters when either of them is incomplete, that
is when it is missing instances or when it holds fewer replicas than its
target shard count times the replication factor. A shard shared by two
complete subclusters is still rejected.

Co-authored-by: Cursor <cursoragent@cursor.com>
@CLAassistant

Copy link
Copy Markdown

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.


prateek.sachan seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.
You have signed the CLA already but the status is still pending? Let us recheck it.

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