-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
Add basic resharding types #4216
Conversation
@timvisee Mostly done, I just need to analyze how |
Properly (?) handle `ReplicaState::Resharding` everywhere (?)
Add missing documentation
Remove `ReplicaState::Resharding` from the OpenAPI spec
@@ -920,6 +922,9 @@ pub enum ReplicaState { | |||
// Shard is undergoing recovery by an external node | |||
// Normally rejects updates, accepts updates if force is true | |||
Recovery, | |||
// Points are being migrated to this shard as part of resharding | |||
#[schemars(skip)] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍 I think this is good enough for now to hide our stuff from APIs. The OpenAPI spec has not been changed in this PR.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It implements two things: a new shard replica state and a different hash ring configuration.
This can be done in two separate PRs, and I think we should prefer that. It allow us to discuss better and allows faster merging.
Tracked in #4213.
This PR adds a few basic types/variants/fields that are required as the most fundamental building blocks for resharding.
TODO:
Collection
ShardHolder::rings
Resharding
replica stateAll Submissions:
dev
branch. Did you create your branch fromdev
?New Feature Submissions:
cargo +nightly fmt --all
command prior to submission?cargo clippy --all --all-features
command?Changes to Core Features: