-
Notifications
You must be signed in to change notification settings - Fork 3.8k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
kvserver: consider suspect stores "live" for computing quorum
Previously, when making the determination of whether a range could achieve quorum, the allocator ignored "suspect" stores. In other words, a range with 3 replicas would be considered unavailable for rebalancing decisions if it had 2 or more replicas on stores that are marked suspect. This meant that if a given cluster had multiple nodes missing their liveness heartbeats intermittently, operations like node decommissioning would never make progress past a certain point (the replicate queue would never decide to move replicas away because it would think their ranges are unavailable, even though they're really not). This patch fixes this by slightly altering the state transitions for how stores go in and out of "suspect" and by having the replica rebalancing code specifically ask for suspect stores to be included in the set of "live" replicas when it makes the determination of whether a given range can achieve. Release note (bug fix): A bug that was introduced in 21.1.5, which prevented nodes from decommissioning in a cluster if it had multiple nodes intermittently missing their liveness heartbeats has been fixed.
- Loading branch information
1 parent
36ed61e
commit 20fd356
Showing
7 changed files
with
115 additions
and
36 deletions.
There are no files selected for viewing
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
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
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
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
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
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
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