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

Improve handling of WT_CACHE_FULL for inMemory storage engine

    XMLWordPrintable

Details

    • Improvement
    • Status: Closed
    • Major - P3
    • Resolution: Fixed
    • 3.2.9, 3.3.12
    • 3.4.9, 3.5.7
    • Storage
    • None
    • Fully Compatible
    • v3.4, v3.2
    • Storage 2017-03-27, Storage 2017-04-17, Storage 2017-05-08
    • 3

    Description

      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.

      Attachments

        Issue Links

          Activity

            People

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

              Dates

                Created:
                Updated:
                Resolved: