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

Review eviction server algorithm

    • Type: Icon: Task Task
    • Resolution: Won't Fix
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None

      There have been a number of enhancements to the eviction server recently that have been added on. It would be good to review the eviction server role as a whole and come up with a better design.

      Primary considerations:

      • Managing the running eviction worker threads - they currently start/stop too often.
      • Managing when the eviction server is asleep, and what resources (hazard pointers) it holds when it goes to sleep.
      • Managing the regularity at which the eviction server repopulates the queue
      • Managing how much content the server puts on the queue each pass
      • Managing how the eviction server works if it is only looking for pages with READGEN_OLDEST set (i.e: candidates for forced eviction). When it stops, how it finds those pages, etc
      • Add a better ability to control how aggressive the server is about finding dirty pages to evict. Especially we want to keep the amount of dirty data in the cache down to a certain limit.
      • Managing how the eviction server handles cases where there are lots of files open (more than the configured number of hazard references)
      • Managing how the eviction server can be sure to visit all pages in cache without pinning pages itself.

            Assignee:
            backlog-server-execution [DO NOT USE] Backlog - Storage Execution Team
            Reporter:
            alexander.gorrod@mongodb.com Alexander Gorrod
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated:
              Resolved: