SBE does not handle StorageUnavailable/TemporarilyUnavailable under cache pressure

XMLWordPrintableJSON

    • Type: Bug
    • Resolution: Unresolved
    • Priority: 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}
    • None
    • 3
    • None
    • None
    • None
    • None
    • None
    • None

      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
            Reporter:
            Mickey Winters
            Votes:
            0 Vote for this issue
            Watchers:
            9 Start watching this issue

              Created:
              Updated: