Improve eviction selection policy to avoid update-restore evictions

    • Storage Engines, Storage Engines - Transactions
    • None
    • None
    • 0

      WiredTiger has added a mode that allows for enabling precise checkpoints. When precise checkpoints are enabled, content newer than the stable timestamp (or checkpoint timestamp when a checkpoint is running) cannot be evicted - it needs to be retained in the cache.

      That means that any dirty page that is reconciled while it has content newer than the checkpoint timestamp needs to be retained in cache, and the changes that were too new to include in a reconciliation are restored in the cache (this is called update-restore eviction).

      We should add an eviction selection heuristic that avoids evicting pages with updates newer than the checkpoint timestamp, when precise checkpoints are enabled as long as there isn't an excess of cache pressure.

        1. Screenshot 2025-05-28 at 3.36.59 pm.png
          Screenshot 2025-05-28 at 3.36.59 pm.png
          376 kB
        2. Screenshot 2025-05-28 at 9.42.55 pm.png
          Screenshot 2025-05-28 at 9.42.55 pm.png
          79 kB
        3. Screenshot 2025-05-30 at 8.51.10 pm.png
          Screenshot 2025-05-30 at 8.51.10 pm.png
          501 kB
        4. Screenshot 2025-06-04 at 8.58.34 pm.png
          Screenshot 2025-06-04 at 8.58.34 pm.png
          258 kB
        5. Screenshot 2025-06-11 at 8.02.45 pm.png
          Screenshot 2025-06-11 at 8.02.45 pm.png
          159 kB
        6. Screenshot 2025-06-11 at 9.42.57 AM.png
          Screenshot 2025-06-11 at 9.42.57 AM.png
          86 kB
        7. Screenshot 2025-06-11 at 9.45.52 AM.png
          Screenshot 2025-06-11 at 9.45.52 AM.png
          62 kB
        8. Screenshot 2025-06-16 at 3.57.53 PM.png
          Screenshot 2025-06-16 at 3.57.53 PM.png
          73 kB
        9. Screenshot 2025-06-18 at 3.44.11 pm.png
          Screenshot 2025-06-18 at 3.44.11 pm.png
          525 kB
        10. wt14646_full.diff
          220 kB
        11. wt14646_minimal.diff
          65 kB

            Assignee:
            Alexander Gorrod
            Reporter:
            Alexander Gorrod
            Votes:
            0 Vote for this issue
            Watchers:
            10 Start watching this issue

              Created:
              Updated: