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

SBE does not handle StorageUnavailable/TemporarilyUnavailable under cache pressure

    • Type: Icon: Bug Bug
    • Resolution: Unresolved
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • Query Execution
    • ALL
    • Hide

      run a test with SBE enabled and WTWriteConflictExceptionForReads
      set to {'activationProbability': 0.1}

      Show
      run a test with SBE enabled and WTWriteConflictExceptionForReads set to {'activationProbability': 0.1}

      When we interact with the storage layer and cause it to bring a new page into the WiredTiger cache there is a change that under cache pressure we need to retry backoff if there isn't enough cache to fit the new page. the classic engine has code to do this here https://github.com/mongodb/mongo/blame/528d3eebf23c58beeb03fe6a500d2e6a3851fd58/src/mongo/db/query/plan_executor_impl.h#L95. After looking at sbe::ScanStage and similar we only check if yield is needed and don't expect this exception to occur. This results in potentially returning temporarily unavailable to users which may be unexpected

            Assignee:
            Unassigned Unassigned
            Reporter:
            mickey.winters@mongodb.com Mickey Winters
            Votes:
            0 Vote for this issue
            Watchers:
            8 Start watching this issue

              Created:
              Updated: