-
Notifications
You must be signed in to change notification settings - Fork 3.9k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
allocator: replace read amp with io thresh
Previously, L0-sublevels used to be checked as a gauge of store health in order to exclude unhealthy stores from being allocation targets. In the L0-sublevels, L0-filecount and may be used for additional measures of store health, making it more informative than looking at `L0-sublevels` alone. This commit replaces uses of L0-sublevels in the allocator and storepool with `IOThreshold`. L0-sublevels is still gossiped for compatibility with mixed version (23.1 <-> 22.2) clusters. The prior cluster settings which controlled how store health was considered in allocation decisions is now deprecated: `kv.allocator.L0_sublevels_threshold` `kv.allocator.L0_sublevels_threshold_enforce` The new cluster settings which perform an identical function is: `kv.allocator.io_overload_threshold` Which has the same concept as `L0-sublevels_threshold`, however is adjusted for `IOThreshold` where a value above 1 indicates overload. The default cluster setting value is set to `0.8`, which is intentional to prevent allocation before overload occurs. `kv.allocator.io_overload_threshold_enforcement` Is introduced as a replacement for `L0_sublevels_threshold_enforce`, the options are identical. The 10 minute max L0-sublevel tracking period is not continued for IOThreshold. Instead, the value is taken as is from gossip. Resolves: #85084 Release note (ops change): Deprecate cluster settings `kv.allocator.l0_sublevels_threshold` and `kv.allocator.L0_sublevels_threshold_enforce` and introduce `kv.allocator.io_overload_threshold` and `kv.allocator.io_overload_threshold_enforcement`. The enforcement cluster setting is unchanged, however renamed. The threshold cluster setting is adapted to `IOThreshold`, where a value greater or equal to 1 indicates IO overload. The default is set to 0.8 to prevent allocation prior to overload occurring.
- Loading branch information
Showing
11 changed files
with
438 additions
and
391 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
300 changes: 153 additions & 147 deletions
300
pkg/kv/kvserver/allocator/allocatorimpl/allocator_scorer.go
Large diffs are not rendered by default.
Oops, something went wrong.
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
169 changes: 82 additions & 87 deletions
169
pkg/kv/kvserver/allocator/allocatorimpl/allocator_test.go
Large diffs are not rendered by default.
Oops, something went wrong.
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.