-
Type: Improvement
-
Resolution: Fixed
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: Cache and Eviction, Checkpoints
-
Storage Engines
-
8
-
2024-07-09 - Nyan Cat
Summary
Currently, the checkpoint cleanup stops processing whenever it detects that eviction is needed as per the below code.
if (__wt_cache_aggressive(session) || __wt_cache_full(session) || __wt_cache_stuck(session) || __wt_eviction_needed(session, false, false, NULL)) { *skipp = true; return (0); }
As observed in an internal cluster, checkpoint-cleanup gave up whenever the eviction is required leading to an increase in disk size of the history store.
Motivation
- Does this affect any team outside of WT?
No
- How likely is it that this use case or problem will occur?
Very high operations scenario.
- If the problem does occur, what are the consequences and how severe are they?
The disk space increases.
- Is this issue urgent?
No
- Suggested Solution*
Instead of checking the eviction needed approach that checks for clean/update/dirty, checking only the clean page eviction could be beneficial as checkpoint-cleanup lead to more clean pages in the cache except when the page is marked to delete.