Uploaded image for project: 'WiredTiger'
  1. WiredTiger
  2. WT-13450

Fix the cursor traversal logic to mark obsolete page for clean eviction

    • Type: Icon: Improvement Improvement
    • Resolution: Unresolved
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: Cache and Eviction
    • Storage Engines
    • StorEng - 2024-10-15

      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.

            Assignee:
            backlog-server-storage-engines [DO NOT USE] Backlog - Storage Engines Team
            Reporter:
            haribabu.kommi@mongodb.com Haribabu Kommi
            Votes:
            0 Vote for this issue
            Watchers:
            7 Start watching this issue

              Created:
              Updated: