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

Investigate changes in SERVER-55614: Require passing Versioned API options to getMore and transaction-continuing commands



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



      Downstream Change Summary

      This ticket will make API parameters optional for getMore and transaction-continuing commands. Any user of the stable API needs to include API version parameters for those commands before the server can make the parameters required.

      Description of Linked Ticket

      The Versioned API design requires drivers and users to omit Versioned API parameters in the following two instances:
      1. When calling getMore
      2. In any command that is part of a transaction, except for the command starting the transaction.

      The reason for not allowing them on getMore calls is that it's bound to the API Version declared when creating the cursor. For transactions, the entire transaction operates under the same declared API Version, so later commands should not be able to override this.

      While this approach makes sense, it creates unnecessary workload in drivers. Drivers have to inspect command documents to know whether they should append Versioned API options for this instance. This can have a performance impact for drivers that already have raw BSON documents at this point.

      To fix this, Drivers and users should be required to include API versioning options for getMore and transaction-continuing commands, with the server emitting a command error if there is an API Version mismatch (exact comparison, e.g. apiVersion, apiStrict, and apiDeprecationErrors match).

      To aid with the transition to this new requirement, the options should be optional at first and can become required options once all drivers have updated their logic to always include these options.

      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, 1 day ago