[DOCS-14459] Investigate changes in SERVER-56550: Require Versioned API options for getMore and transaction-continuing commands Created: 16/May/21  Updated: 13/Nov/23  Resolved: 20/May/21

Status: Closed
Project: Documentation
Component/s: manual, Server
Affects Version/s: None
Fix Version/s: 5.0.0-rc0, Server_Docs_20231030, Server_Docs_20231106, Server_Docs_20231105, Server_Docs_20231113

Type: Task Priority: Major - P3
Reporter: Backlog - Core Eng Program Management Team Assignee: Joseph Dougherty
Resolution: Won't Do Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Documented
documents SERVER-56550 Require Versioned API options for get... Closed
Duplicate
duplicates DOCS-14397 Investigate changes in SERVER-55614: ... Closed
Participants:
Days since reply: 2 years, 37 weeks, 6 days ago
Epic Link: DOCSP-14217

 Description   

Description

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



 Comments   
Comment by Joseph Dougherty [ 20/May/21 ]

Closing as this is a duplicate of https://jira.mongodb.org/browse/DOCS-14397.

Comment by Joseph Dougherty [ 20/May/21 ]

jeffrey.allen Yes, it certainly looks that way to me! I'll close this one out. Thanks!

Comment by Jeffrey Allen [ 17/May/21 ]

I think this is a duplicate of DOCS-14397? joseph.dougherty can you verify?

Generated at Thu Feb 08 08:10:25 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.