Improve handling of WT_CACHE_FULL for inMemory storage engine

XMLWordPrintableJSON

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

      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.

        1. in_mem_table_config.patch
          4 kB
          Alexander Gorrod

            Assignee:
            Alexander Gorrod
            Reporter:
            Daniel Pasette (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            8 Start watching this issue

              Created:
              Updated:
              Resolved: