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

    XMLWordPrintable

    Details

    • Type: Task
    • Status: Closed
    • Priority: Major - P3
    • Resolution: Won't Do
    • Affects Version/s: None
    • Fix Version/s: 5.0.0-rc0
    • Component/s: manual, Server
    • Labels:
      None

      Description

      Description

      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.)

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              joseph.dougherty Joseph Dougherty
              Reporter:
              backlog-server-pm Backlog - Core Eng Program Management Team
              Participants:
              Last commenter:
              Backlog - Core Eng Program Management Team Backlog - Core Eng Program Management Team
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Dates

                Due:
                Created:
                Updated:
                Resolved:
                Days since reply:
                17 weeks, 1 day ago
                Date of 1st Reply: