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

Investigate changes in PM-912: Remove legacy wire protocol opcodes

    • Type: Icon: Epic Epic
    • Resolution: Won't Do
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Component/s: None
    • None
    • Needed

      Downstream Change Summary

      The server will return an error in 5.1.0 whenever it receives an OP_QUERY find operation or an OP_GET_MORE. It will also return an error for OP_QUERY commands other than hello/isMaster.

      The server will not service OP_INSERT, OP_DELETE, OP_UPDATE, or OP_KILL_CURSORS messages. All it will do in 5.1.0 upon receipt of these messages is close the connection.

      As part of PM-912, starting with 5.1.0, all of the OP_QUERY-specific operators listed here will be removed (except for $natural, which is not affected): https://docs.mongodb.com/manual/reference/operator/query-modifier/. To provide explicit examples, we are removing support for $explain and $query, since these only make sense in the context of --readMode "legacy":

      https://docs.mongodb.com/manual/reference/operator/meta/explain/
      https://docs.mongodb.com/manual/reference/operator/meta/query/

      Also we're removing the following mongo shell command-line parameters

      • useLegacyWriteOps
      • writeMode
      • readMode
      • rpcProtocols

      The mongo shell will no longer support the OP_QUERY RPC protocol, but rather will always use OP_MSG (except for running an OP_QUERY isMaster as part of the connection handshake). For this reason, the mongo shell will no longer successfully connect to servers older than 3.6.

      PM Ticket Summary

      Summary

      Remove support for OP_QUERY, OP_GET_MORE, OP_KILL_CURSORS, OP_DELETE, OP_UPDATE, OP_INSERT, and the getLastError command.

      Motivation

      These legacy wire protocol formats have long been out of use, as modern drivers favor the OP_MSG protocol. They are being deprecated by PM-911. There is plenty of server code that can be dramatically simplified by removing support for these old wire protocol op codes.

      Documentation

      [Scope Document]

            Assignee:
            Unassigned Unassigned
            Reporter:
            backlog-server-pm Backlog - Core Eng Program Management Team
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: