-
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: enqueue replicas into lease queue when IO overloaded
Previously, when the allocator lease IO overload threshold enforcement was set to `shed`, leases would take up to 10 minutes to drain from an IO overloaded store. This was because the shed pacing mechanism was the replica scanner, which by default takes up to 10 minutes. This commit introduces (1) proactive gossip of the store capacity when it both increases over the last value and is greater than an absolute value (LeaseIOOverloadThreshold), and (2) enqueues leaseholder replicas into the lease queue when receiving a gossip update, if the gossip update is for the local store and the store is IO overloaded. In order to prevent wasted resources, the mass enqueue on overload only occurs at most once every `kv.allocator.min_io_overload_lease_shed_interval`, which defaults to 30s. The combination of (1) proactive gossip on IO overload increase, and (2) enqueuing into the lease queue on shed conditions being met, results in leases shedding from an IO overloaded node in under a second. Part of: #118866 Release note: None
- Loading branch information
Showing
9 changed files
with
214 additions
and
11 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
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
Oops, something went wrong.