[DRIVERS-1315] Set minWireVersion to 6 (MongoDB 3.6) Created: 02/Jul/20  Updated: 05/Apr/23  Resolved: 22/Feb/23

Status: Closed
Project: Drivers
Component/s: None
Fix Version/s: None

Type: Epic Priority: Major - P3
Reporter: Rachelle Palmer Assignee: Unassigned
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
is depended on by DRIVERS-1619 Provide informative handshake error m... Backlog
Issue split
split to CDRIVER-4098 Set minWireVersion to 6 (MongoDB 3.6) Closed
split to CXX-2319 Set minWireVersion to 6 (MongoDB 3.6) Closed
split to GODRIVER-2099 Set minWireVersion to 6 (MongoDB 3.6) Closed
split to MOTOR-791 Set minWireVersion to 6 (MongoDB 3.6) Closed
split to NODE-3469 Set minWireVersion to 6 (MongoDB 3.6) Closed
split to PHPC-1909 Set minWireVersion to 6 (MongoDB 3.6) Closed
split to PYTHON-2833 Set minWireVersion to 6 (MongoDB 3.6) Closed
split to RUBY-2747 Support MongoDB 3.6+ only - set minWi... Closed
split to RUST-934 Set minWireVersion to 6 (MongoDB 3.6) Closed
split to CSHARP-3756 Set minWireVersion to 6 (MongoDB 3.6) Closed
split to JAVA-4253 Set minWireVersion to 6 (MongoDB 3.6) Closed
Related
is related to MONGOID-5163 Drop support for MongoDB < 3.6 Closed
is related to MONGOID-5176 Deprecate support for MongoDB < 3.6 Closed
is related to PHPC-1662 Drop support for MongoDB 2.6 Closed
is related to PHPLIB-363 Drop support for MongoDB 2.6 Closed
is related to CDRIVER-2510 Drop MongoDB 2.6 Closed
Driver Changes: Needed
Quarter: FY22Q3
Detailed Project Statuses:

Lead: Bernie
Summary: With the introduction of the versioned API in MongoDB 5.0 it is possible to remove support for very old server versions without breaking the rule "upgrading from server version A to server version X must require no more than one driver version upgrade". MongoDB 3.4 reached end of life in January of 2020. MongoDB 3.6 (which reached end of life in April 2021, but seems likely to still exist in Atlas for some time) introduced OP_MSG, which replaced the previous wire protocol for MongoDB. 3.6 seems like the right new minimum server version.

2021-09-24:

  • Some teams have already begun closing out this work and most teams intend to address this ahead of their 5.1 compat release in November.
    • Python and Rust tickets are closed out.
    • PHP and Swift are blocked on C's implementation.
    • Go does not plan to address this until 6.1 due to Atlas' reliance on the driver.
    • Java is currently blocked on Cloud-side work, tracked in CLOUDP-77744 and CLOUDP-81721, as discussed in this document: https://tinyurl.com/ye8hymlv
Driver Compliance:
Key Status/Resolution FixVersion
CDRIVER-4098 Fixed 1.21.0
CXX-2319 Works as Designed
CSHARP-3756 Fixed 2.14.0
GODRIVER-2099 Fixed 1.11.0
JAVA-4253 Fixed 4.8.0
NODE-3469 Fixed 4.2.0
MOTOR-791 Fixed 3.0
PYTHON-2833 Fixed 4.0
PHPC-1909 Fixed 1.13.0
RUBY-2747 Fixed 2.17.0
RUST-934 Works as Designed
SWIFT-1278 Fixed 1.3.0

 Description   

Summary

With the introduction of the versioned API in MongoDB 5.0 it is possible to remove support for very old server versions without breaking the rule "upgrading from server version A to server version X must require no more than one driver version upgrade". MongoDB 3.4 reached end of life in January of 2020. MongoDB 3.6 (which reached end of life in April 2021, but seems likely to still exist in Atlas for some time) introduced OP_MSG, which replaced the previous wire protocol for MongoDB. 3.6 seems like the right new minimum server version.

Motivation

Who is the affected end user?

Users that are on any server versions earlier than 3.6 will no longer receive driver support. This will not impact users that are on 3.6 or later.
From an internal stakeholder perspective, we stand to see significant engineering efficiency gains as a result of dropping old support.

How does this affect the end user?

Users on anything earlier than 3.6 will need to either upgrade to a newer server version or be content with lack of modern driver support.

How likely is it that this problem or use case will occur?

Based on usage analysis, we believe that dropping support for 3.4 and earlier is the right decision as most users are on 3.6+ and we stand to see significant efficiency gains by dropping support.

If the problem does occur, what are the consequences and how severe are they?

Users will need to upgrade to a newer server version if they would like to receive modern driver support.

Is this issue urgent?

This is a significant decision, so achieving clarity on our cross-org stance is critical.

Is this ticket required by a downstream team?

This has implicit cross-org consequences, so much of this project's early effort will be establishing clarity and agreement across organizations.

Is this ticket only for tests?

No.

Cast of Characters

Engineering Lead: Bernie Hackett
Document Author:
POCers:
Product Owner:
Program Manager:
Stakeholders:

Channels & Docs

Slack Channel

Scope Document

Technical Design Document



 Comments   
Comment by Jeffrey Yemin [ 13/Jul/21 ]

It looks like the Atlas clusters we use for connectivity tests are pinned to MongoDB 3.4. They will need to be upgraded or replaced.

Comment by Jeremy Mikola [ 08/Jul/21 ]

Changing existing "depends on" language tickets to "is related to", since this issue was repurposed to drop support for MongoDB 3.4 and earlier.

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