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

Don't take threads resolving prepared transactions to assist with eviction

    • Type: Icon: Bug Bug
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • WT10.0.0, 4.2.4, 4.3.4
    • Affects Version/s: None
    • Component/s: None
    • Labels:
      None
    • 3
    • Storage Engines 2020-01-27, Storage Engines 2020-02-10
    • v4.2

      Summary:
      Follow-on to WT-5387, don't take threads that are resolving prepared transactions to assist with eviction.


      As part of WT-5387, we made changes to reuse cursors when resolving prepared operations on behalf of transaction resolution or timestamp checking, rather than opening a new cursor for every prepared operation. That change requires the cursor discard its held hazard pointer after each operation.

      The standard functions to discard cursor hazard pointers also do additional housekeeping work, like allocating snapshots and checking the cache. If the cache is struggling and the cursor is "idle", the thread is tasked with helping out eviction. If the cache is struggling, taking a cursor that's resolving a transaction to assist with eviction is the wrong choice, letting the transaction resolve is likely to allow pages to be evicted, and it's unlikely to be making the situation worse.

            Assignee:
            keith.bostic@mongodb.com Keith Bostic (Inactive)
            Reporter:
            keith.bostic@mongodb.com Keith Bostic (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: