-
Type:
Improvement
-
Resolution: Fixed
-
Priority:
Minor - P4
-
Affects Version/s: None
-
Component/s: Cache and Eviction
-
Storage Engines, Storage Engines - Transactions
-
SE Transactions - 2025-05-23
-
5
When WiredTiger evicts a dirty page and the cache is not under too much pressure, WiredTiger uses "scrub" eviction. That means that after writing the reconciled page, WT reloads the resulting page image into memory, so the page stays in the WT cache. Without scrub eviction, evicting a dirty page removes the page from the cache.
Scrub eviction is useful because typically a dirty page is not one of the colder pages in the cache, and would not be evicted if WT selected eviction candidates in pure LRU order. Thus scrub eviction helps us avoid unnecessary cache misses.
But it is possible to perform scrub eviction on a relatively cold page, resulting in two evictions of the page without any benefit – first a scrub eviction of a dirty page, and subsequently a clean eviction of the resulting clean page.
This can happen because the check for whether to perform scrub eviction only considers how full the cache is, not the LRU status (i.e., read generation) of the evicted pages. Specifically, if we have a dirty page with a low read generation and we are above the clean eviction target, then we could pick that page for eviction, perform scrub eviction, and subsequently chose and evict it for clean eviction.
Intuitively, this should be a rare scenario. But we could avoid it by adding a check during page eviction to not scrub if the cache is over the clean eviction target and the target page has a low read generation.
- is related to
-
WT-14602 Beautify arguments parsing for `wt verify`
-
- Closed
-
-
WT-14598 Merge disaggregated block manager into develop
-
- Closed
-
-
WT-14617 Add stats to track how many times the cache fill ratio is reaching the configured trigger values
-
- Closed
-
-
WT-14459 Move to ARMV9 perf distros
-
- Closed
-
-
WT-14091 Remove __wt_modify_reconstruct_from_upd_list WT_ROLLBACK message from format output
-
- Closed
-
- related to
-
WT-14631 Fix workgen output spacing between checkpoint and verify
-
- Closed
-
-
WT-11813 Fix cache_eviction_target_strategy_dirty stat in eviction
-
- Closed
-
-
WT-14091 Remove __wt_modify_reconstruct_from_upd_list WT_ROLLBACK message from format output
-
- Closed
-
-
WT-14646 Improve eviction selection policy to avoid update-restore evictions
-
- Needs Scheduling
-
-
WT-12808 Remove the WT_TXNID_LT and WT_TXNID_LT macros
-
- Closed
-