-
Notifications
You must be signed in to change notification settings - Fork 1.9k
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
[Design Proposal] Decommissioning and recommissioning a zone #3917
Comments
The decommissioned node will be added in the voting exclusion explicitly from outside or it is taken care internally. If it is called from outside, then atomicity can't be guaranteed and system is not self sufficient to take care decommissioning without external API support. |
Thanks Shweta. Good point. We would invoke |
Goal
This doc proposes a high level and low level design to support for decommissioning and recommissioning a zone . For more info on feature proposal, please refer: #3402 .
Requirements
Functional
Non-Functional
Approach
The high level approach is to do all the heavy lifting in decommission API and then don't let the nodes join back again till the zone is commissioned again .
Breaking down the steps here in decommission :
APIs to store decommissioned info in cluster state .
It will also abdicate the elected master node if it is decommissioned zone.
It will remove the all the nodes in decommissioned zones.
We add one more Join Validator in here to reject joins coming from nodes in decommissioned zone and Kill-Switch for Decommission is Off.
Nodes in decommissioned zone will not send join request aggressively on getting DecommissionedException and will not storm the master and plateau the retries .
How to abdicate itself
Abdication to another node is not guaranteeing a change of cluster manager. The same node after abdicating can again become cluster manager. This might be due to the distributed nature of the cluster manager election algorithm leading to unpredictability of the new elected cluster manager .
To get around this, we are proposing to put the node in voting exclusion configuration temporarily. After the new cluster manager takes over , it will remove all the nodes in decommissioned zone from voting exclusion configuration. This might remove the previously voting excluded nodes, but since voting exclusion configuration is supposed to be short lived, this behavior might be okay .
API Design
More about this mentioned here.
The text was updated successfully, but these errors were encountered: