-
Type: Improvement
-
Resolution: Unresolved
-
Priority: Major - P3
-
None
-
Affects Version/s: None
-
Component/s: Cache and Eviction
-
Storage Engines
-
(copied to CRM)
-
StorEng - Defined Pipeline, StorEng - 2024-10-29, StorEng - 2024-11-12
Currently, the WiredTiger cursor traversal next/prev code flow marks any page with over 1000 obsolete entries for urgent dirty eviction. WiredTiger doesn't allow any dirty page eviction on a btree whenever the checkpoint is happening on it to protect it from data corruption. In such scenarios, the traversal code flow that identified the page to get evicted will not be evicted. This can lead to these pages being traversed by the cursors until the checkpoint is finished.
To improve the latency issue of these cursor operations traversing the obsolete entries pages, mark the pages into clean urgent eviction instead of dirty page urgent eviction whenever a checkpoint is happening on the btree. This approach can lead to leaving the existing on-disk with obsolete entries as it is. As those pages are anyway get cleaned whenever the checkpoint cleanup visits this btree.