release-22.1: kvserver: lower score threshold for mvcc GC eligibility #92816
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.
Backport 1/1 commits from #92118.
/cc @cockroachdb/release
Previously GC score which is calculated based on average garbage age and percentage of live data was set to 2 to avoid frequent GC invocations. Value was set high in abundance of caution.
Lowering it to 1 would guarantee that we would always collect something and not cause unnecessary frequent GC runs.
To protect against unexpected situations where GC would be firing too frequently, cooldown period of 2 hours is added. This cooldown will apply from gc score of 1 and is decreased proportionally as score reaches 2 (old threshold).
Release note (performance improvement): GC score triggering mvcc GC run is lowered. GC Score is ratio is computed from mvcc stats and uses ratio of live objects and estimated garbage age to estimate collectability of old data. Reduced score will trigger GC earlier lowering interval between runs 3 times, giving 2 times reduced peak garbage usage at the expense of 30% increase of wasteful data scanning on constantly updated data.
Release justification: Improvement required for existing client running on older version.
Fixes #38251