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

Evict pages with active updates

    XMLWordPrintable

    Details

    • Type: Task
    • Status: Closed
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: WT2.2
    • Component/s: None
    • Labels:

      Description

      It would be nice if we could evict pages, even if there have been new updates since the reconciliation. Or possibly as an extension, if we could evict partial sets of updates from a page.

      The use case is that we sometimes see a cache with entries for a file like:

      cache dump: file: 150385 pages, 3187MB, 3113MB dirty
      5 < 1k
      21 < 8k
      148648 < 64k
      1507 < 512k
      45 < 1M
      159 < 5M
      0 > 5M
      

      The leaf page size is configured as 8k, so an in-memory page that is 5M spans 640 on-disk pages.

      The same file is showing quite a lot of reconciliation attempts that fail due to updates that could not be included:

      Nov 06 10:14:49 2250 . page reconciliation calls
      Nov 06 10:14:49 2175 . reconciliation failed because an update could not be included
      Nov 06 10:15:20 5257 . page reconciliation calls
      Nov 06 10:15:20 5203 . reconciliation failed because an update could not be included
      Nov 06 10:15:50 3781 . page reconciliation calls
      Nov 06 10:15:50 3726 . reconciliation failed because an update could not be included
      Nov 06 10:16:20 1351 . page reconciliation calls
      Nov 06 10:16:20 1343 . reconciliation failed because an update could not be included
      Nov 06 10:17:20 2 . page reconciliation calls
      Nov 06 10:17:20 0 . reconciliation failed because an update could not be included
      Nov 06 10:17:50 4 . page reconciliation calls
      Nov 06 10:17:50 2 . reconciliation failed because an update could not be included
      Nov 06 10:18:24 5 . page reconciliation calls
      Nov 06 10:18:24 2 . reconciliation failed because an update could not be included
      

      I've cherry picked the above statistics, but they are representative. The reduced numbers of reconciliation calls happens when the benchmark switches from loading data to the run (update and read) phase.

      NOTE: This workload fits in cache - so the eviction server isn't running regularly.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                alexander.gorrod Alexander Gorrod
                Reporter:
                alexander.gorrod Alexander Gorrod
              • Votes:
                0 Vote for this issue
                Watchers:
                1 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: