Uploaded image for project: 'MongoDB Database Tools'
  1. MongoDB Database Tools
  2. TOOLS-3421

Investigate changes in SERVER-79848: Difference in behavior of $_resumeAfter between classic and SBE engines

    • Type: Icon: Investigation Investigation
    • Resolution: Done
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • Labels:

      Original Downstream Change Summary

      This patch makes it so that both the classic engine and SBE obey the following semantics for the $_requestResumeToken and $_resumeAfter query options:

      • For $_requestResumeToken, 'null' is returned as the resumeToken after scanning the last document in a collection (prior to this patch, SBE would return the record id of the last document).
      • When a null RecordId is specified to $_resumeAfter, we raise a KeyNotFound error (prior to this patch, the classic engine would restart the scan from the beginning).

        Description of Linked Ticket

        When resuming from the last record in a collection, the classic engine returns resume token {"$recordId" : null} and SBE returns the last record.
        Resuming from {"$recordId" : null} in the classic record cycles back to the start of the collection and raises "KeyNotFound" error in SBE.

            Unassigned Unassigned
            backlog-server-pm Backlog - Core Eng Program Management Team
            0 Vote for this issue
            2 Start watching this issue