-
Notifications
You must be signed in to change notification settings - Fork 24.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
Voting config exclusions should work with absent nodes #55291
Merged
DaveCTurner
merged 1 commit into
elastic:7.x
from
DaveCTurner:2020-04-16-backport-50836-voting-config-exclusions
Apr 16, 2020
Merged
Voting config exclusions should work with absent nodes #55291
DaveCTurner
merged 1 commit into
elastic:7.x
from
DaveCTurner:2020-04-16-backport-50836-voting-config-exclusions
Apr 16, 2020
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Today the voting config exclusions API accepts node filters and resolves them to a collection of node IDs against the current cluster membership. This is problematic since we may want to exclude nodes that are not currently members of the cluster. For instance: - if attempting to remove a flaky node from the cluster you cannot reliably exclude it from the voting configuration since it may not reliably be a member of the cluster - if `cluster.auto_shrink_voting_configuration: false` then naively shrinking the cluster will remove some nodes but will leaving their node IDs in the voting configuration. The only way to clean up the voting configuration is to grow the cluster back to its original size (potentially replacing some of the voting configuration) and then use the exclusions API. This commit adds an alternative API that accepts node names and node IDs but not node filters in general, and deprecates the current node-filters-based API. Relates elastic#47990.
DaveCTurner
added
>enhancement
>deprecation
:Distributed Coordination/Cluster Coordination
Cluster formation and cluster state publication, including cluster membership and fault detection.
backport
v7.8.0
labels
Apr 16, 2020
Pinging @elastic/es-distributed (:Distributed/Cluster Coordination) |
DaveCTurner
changed the title
Voting config exclusions should work with absent nodes (#50836)
Voting config exclusions should work with absent nodes
Apr 16, 2020
@elasticmachine please run elasticsearch-ci/2 |
DaveCTurner
added a commit
that referenced
this pull request
Apr 16, 2020
DaveCTurner
deleted the
2020-04-16-backport-50836-voting-config-exclusions
branch
April 16, 2020 11:28
pgomulka
added a commit
to pgomulka/elasticsearch
that referenced
this pull request
Jul 16, 2021
the exception message has changed in elastic#55291. This is not covered by rest api compatibility, so no need to return the old message for v7 requests. This commit adds a transformation to allow for the 7.x test to pass with a new exception message relates elastic#51816
ywangd
pushed a commit
to ywangd/elasticsearch
that referenced
this pull request
Jul 30, 2021
…lastic#75406) the exception message has changed in elastic#55291. This is not covered by rest api compatibility, so no need to return the old message for v7 requests. This commit adds a transformation to allow for the 7.x test to pass with a new exception message relates elastic#51816
DaveCTurner
added a commit
to DaveCTurner/elasticsearch
that referenced
this pull request
Oct 7, 2021
In elastic#55291 we deprecated the older form of the voting config exclusions API but forgot to record this deprecation in the docs. This commit adds the missing docs.
DaveCTurner
added a commit
that referenced
this pull request
Jan 26, 2022
In #55291 we deprecated the older form of the voting config exclusions API but forgot to record this deprecation in the docs. This commit adds the missing docs. Co-authored-by: James Rodewig <james.rodewig@elastic.co>
DaveCTurner
added a commit
that referenced
this pull request
Jan 26, 2022
In #55291 we deprecated the older form of the voting config exclusions API but forgot to record this deprecation in the docs. This commit adds the missing docs. Co-authored-by: James Rodewig <james.rodewig@elastic.co>
DaveCTurner
added a commit
that referenced
this pull request
Jan 26, 2022
In #55291 we deprecated the older form of the voting config exclusions API but forgot to record this deprecation in the docs. This commit adds the missing docs. Co-authored-by: James Rodewig <james.rodewig@elastic.co>
DaveCTurner
added a commit
that referenced
this pull request
Jan 26, 2022
In #55291 we deprecated the older form of the voting config exclusions API but forgot to record this deprecation in the docs. This commit adds the missing docs. Co-authored-by: James Rodewig <james.rodewig@elastic.co>
DaveCTurner
added a commit
that referenced
this pull request
Jan 26, 2022
In #55291 we deprecated the older form of the voting config exclusions API but forgot to record this deprecation in the docs. This commit adds the missing docs. Co-authored-by: James Rodewig <james.rodewig@elastic.co>
DaveCTurner
added a commit
that referenced
this pull request
Jan 26, 2022
In #55291 we deprecated the older form of the voting config exclusions API but forgot to record this deprecation in the docs. This commit adds the missing docs. Co-authored-by: James Rodewig <james.rodewig@elastic.co>
DaveCTurner
added a commit
that referenced
this pull request
Jan 26, 2022
In #55291 we deprecated the older form of the voting config exclusions API but forgot to record this deprecation in the docs. This commit adds the missing docs. Co-authored-by: James Rodewig <james.rodewig@elastic.co>
DaveCTurner
added a commit
that referenced
this pull request
Jan 26, 2022
In #55291 we deprecated the older form of the voting config exclusions API but forgot to record this deprecation in the docs. This commit adds the missing docs. Co-authored-by: James Rodewig <james.rodewig@elastic.co>
DaveCTurner
added a commit
that referenced
this pull request
Jan 26, 2022
In #55291 we deprecated the older form of the voting config exclusions API but forgot to record this deprecation in the docs. This commit adds the missing docs. Co-authored-by: James Rodewig <james.rodewig@elastic.co>
DaveCTurner
added a commit
that referenced
this pull request
Jan 26, 2022
In #55291 we deprecated the older form of the voting config exclusions API but forgot to record this deprecation in the docs. This commit adds the missing docs. Co-authored-by: James Rodewig <james.rodewig@elastic.co>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
backport
>deprecation
:Distributed Coordination/Cluster Coordination
Cluster formation and cluster state publication, including cluster membership and fault detection.
>enhancement
v7.8.0
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Today the voting config exclusions API accepts node filters and resolves them
to a collection of node IDs against the current cluster membership.
This is problematic since we may want to exclude nodes that are not currently
members of the cluster. For instance:
if attempting to remove a flaky node from the cluster you cannot reliably
exclude it from the voting configuration since it may not reliably be a
member of the cluster
if
cluster.auto_shrink_voting_configuration: false
then naively shrinkingthe cluster will remove some nodes but will leaving their node IDs in the
voting configuration. The only way to clean up the voting configuration is to
grow the cluster back to its original size (potentially replacing some of the
voting configuration) and then use the exclusions API.
This commit adds an alternative API that accepts node names and node IDs but
not node filters in general, and deprecates the current node-filters-based API.
Relates #47990.
Backport of #50836 to 7.x.