Uploaded image for project: 'Documentation'
  1. Documentation
  2. DOCS-14459

Investigate changes in SERVER-56550: Require Versioned API options for getMore and transaction-continuing commands



    • Task
    • Status: Resolved
    • Major - P3
    • Resolution: Won't Do
    • None
    • 5.0.0-rc0
    • manual, Server
    • None



      Downstream Change Summary

      If you're a driver author, this affects you. If you're a driver user, you may see "APIMismatchError" when you use the Versioned API with the latest server, until your driver implements DRIVERS-1720. If you don't use the Versioned API this doesn't affect you.

      There are two scenarios affected:

      1. A driver passes any API parameters (apiVersion, apiStrict, apiDeprecation) to a cursor-creating command, such as find, aggregate, listCollections. Let's call the cursor-creating command an "initiating command" and getMore a "continuing command".

      2. A driver passes any API parameters to the first command in a transaction. Let's call the first command an "initiating command", and all other commands in the transaction (including commit/abortTransaction) "continuing commands".

      In the beginning, continuing commands rejected all API params. They used the same API params as the initiating command. But the Database Experience (DBX) team told me that special-casing continuing commands made driver work harder, so we changed it.

      Recently, I changed continuing commands to accept either the same API params as the initiating command, or no API params (SERVER-55614). Either way, continuing commands behave the same. This either/or behavior was a step on the way to our goal:

      Finally, I changed continuing commands to require the same API params as initiating commands. So if a driver passes any (or no) API params to an initiating command it must pass the same (or no) API params to all continuing commands.

      Description of Linked Ticket

      Once the dust settles onĀ SERVER-55614 (make Versioned API params optional for getMore/txn-continuing commands), make them required. The API params for getMore must be exactly the same as those submitted with the cursor-creating command, and those submitted with a txn-continuing command must exactly match those of the txn-initiating command.

      Scope of changes

      Impact to Other Docs

      MVP (Work and Date)

      Resources (Scope or Design Docs, Invision, etc.)


        Issue Links



              joseph.dougherty@mongodb.com Joseph Dougherty
              backlog-server-pm Backlog - Core Eng Program Management Team
              Backlog - Core Eng Program Management Team Backlog - Core Eng Program Management Team
              0 Vote for this issue
              3 Start watching this issue


                1 year, 12 weeks, 5 days ago