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

Check for interrupt and/or yield between calls to doForceSpill in forceSpill method

    • Type: Icon: Improvement Improvement
    • Resolution: Unresolved
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • None
    • Query Execution
    • None
    • 3
    • TBD
    • None
    • None
    • None
    • None
    • None
    • None

      Releasing memory from a cursor is a recursive traversal of the query plan via forceSpill method.

      We should check for interrupts and yield between recursive calls to doForceSpill() methods during this traversal, similar to getNext() in agg pipeline stages.

      This allows us to yield/interrupt releaseMemory command on a query with several memory-intensive stages like SORT + GROUP.

       

      Yielding/interrupting inside a single doForceSpill() call is out of scope for this ticket

            Assignee:
            ivan.fefer@mongodb.com Ivan Fefer
            Reporter:
            ivan.fefer@mongodb.com Ivan Fefer
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated: