Uploaded image for project: 'Drivers'
  1. Drivers
  2. DRIVERS-1315

Set minWireVersion to 6 (MongoDB 3.6)

    • Type: Icon: Epic Epic
    • Resolution: Done
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Component/s: None
    • None
    • To Do
    • minWireVersion 6
    • Hide

      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
      Show
      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
    • Needed

      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

            Assignee:
            Unassigned Unassigned
            Reporter:
            rachelle.palmer@mongodb.com Rachelle Palmer
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

              Created:
              Updated:
              Resolved: