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

Improve eviction of internal pages from idle trees

    • Type: Icon: Improvement Improvement
    • Resolution: Done
    • Priority: Icon: Major - P3 Major - P3
    • WT2.9.3, 3.5.9
    • Affects Version/s: None
    • Component/s: None
    • Labels:
      None
    • Storage Engines
    • Storage 2017-03-27, Storage 2017-04-17, Storage 2017-05-08

      The current eviction algorithm will generally queue one internal page from the tree each time eviction visits it. Then in the queue, internal pages are weighted so that they are very unlikely to be evicted.

      That makes sense in busy trees because evicting internal pages is counter-productive, and also mostly wasted work because they usually have leaf pages underneath.

      If instead, the walk only attempted to queue internal pages without children (which the walk can make a reasonable guess at by checking if an internal page is the parent of the previous page seen), and we reduce or eliminate the bias against internal pages during the sort, then idle trees should be fully evicted, so that only a root page remains. At that point, we can be smarter about not visiting such pages in eviction, and potentially have sweep treat them as candidates to close.

            Assignee:
            michael.cahill@mongodb.com Michael Cahill (Inactive)
            Reporter:
            michael.cahill@mongodb.com Michael Cahill (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated:
              Resolved: