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

Implement placement driver to add and replace dead replicas #6515

Merged
merged 16 commits into from May 20, 2024

Conversation

luluz66
Copy link
Contributor

@luluz66 luluz66 commented May 7, 2024

Implements Driver Queue that handles cases to up-replicate and replace dead replicas.
Implements a StoreMap, which is used by the DriverQueue to figure out which store is alive or dead.

Tested locally for the following scenarios:

  • (replaceDeadReplica) run 4 raft nodes; kill one of the app that has one of the replicas; and see that eventually after the deadTimeout, the replica was added to another app.
  • (addReplica) change the min replicas for a replica from 3 to 4; and see ranges got
    added to the 4th app.

Related issues: N/A

luluz66 added a commit that referenced this pull request May 7, 2024
In replica.Replica, rename ShardID -> shardID and ReplicaID ->
replicaID.

In placement driver PR, #6515,
I need to get access to shard id and replica id through interface
functions; and golang doesn't allow me to create ShardID() when there is
a ShardID member variable.

Also, changing it to private variables make it impossible for other
classes to accidentally change shard id and replica id.
luluz66 added a commit that referenced this pull request May 7, 2024
In replica.Replica, rename ShardID -> shardID and ReplicaID ->
replicaID.

In placement driver PR, #6515,
I need to get access to shard id and replica id through interface
functions; and golang doesn't allow me to create ShardID() when there is
a ShardID member variable.

Also, changing it to private variables make it impossible for other
classes to accidentally change shard id and replica id.
@luluz66 luluz66 force-pushed the driver-prototype branch 3 times, most recently from 5e8eb1a to 1d5be36 Compare May 8, 2024 17:05
Some prototype code for placement driver.

Tested locally for the following scenerio:
- change the min replicas for a replica from 3 to 4; and see ranges got
  added to the 4th app.
@luluz66 luluz66 changed the title Implement placement driver to move ranges Implement placement driver to add and replace dead replicas May 15, 2024
@luluz66 luluz66 marked this pull request as ready for review May 15, 2024 00:15
Copy link
Member

@tylerwilliams tylerwilliams left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, Approval

@luluz66 luluz66 merged commit 2a1c26a into master May 20, 2024
17 of 18 checks passed
@luluz66 luluz66 deleted the driver-prototype branch May 20, 2024 18:13
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.

None yet

2 participants