Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-26239

Improve handling of WT_CACHE_FULL for inMemory storage engine

    • Type: Icon: Improvement Improvement
    • Resolution: Done
    • Priority: Icon: Major - P3 Major - P3
    • 3.4.9, 3.5.7
    • Affects Version/s: 3.2.9, 3.3.12
    • Component/s: Storage
    • Labels:
      None
    • Fully Compatible
    • v3.4, v3.2
    • Storage 2017-03-27, Storage 2017-04-17, Storage 2017-05-08
    • 3

      There are multiple places in the code where there are problems related to handling WT_CACHE_FULL error returns. Three examples of code paths that need to be changed to handle WT_CACHE_FULL properly are:

      • If an index build would use more space than is available in memory. The particular error is encountered while cleaning up after such a problem, the solution is to retry the cleanup until it succeeds.
      • In WiredTigerSessionCache::releaseSession the call to haveDropsQueued results in a call to syncSizeInfo, which results in an update to the size storer table that can fail.
      • When an index build fails due to cache full, the path to rolling back the index build involves first updating the MongoDB metadata table via KVCollectionCatalogEntry::removeIndex. Since the cache is full, doing the update into the metadata also fails with WT_CACHE_FULL.

            Assignee:
            alexander.gorrod@mongodb.com Alexander Gorrod
            Reporter:
            dan@mongodb.com Daniel Pasette (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            8 Start watching this issue

              Created:
              Updated:
              Resolved: