[SERVER-60749] Change internal client to stop issuing the "availableQueryOptions" command Created: 15/Oct/21  Updated: 29/Oct/23  Resolved: 25/Oct/21

Status: Closed
Project: Core Server
Component/s: Internal Client
Affects Version/s: None
Fix Version/s: 5.2.0

Type: Improvement Priority: Major - P3
Reporter: David Storch Assignee: David Storch
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
is depended on by SERVER-60892 Delete the "availableQueryOptions" co... Closed
Documented
is documented by DOCS-14893 Investigate changes in SERVER-60749: ... Closed
Related
related to SERVER-67689 Remove the test cases for the deleted... Closed
Backwards Compatibility: Fully Compatible
Sprint: QE 2021-11-01
Participants:

 Description   

When DBClientConnection is asked by a caller to run an exhaust query, it has logic to check that the remote node supports exhaust. This is implemented by running the "availableQueryOptions" command against the remote node. We should remove this logic from the internal client for a few reasons:

  • Feature discovery has long been implemented based on the minWireVersion and maxWireVersion returned by the "hello" command on connection handshake. The "availableQueryOptions" command appears to be an outdated feature discovery mechanism that has been replaced by the wire version.
  • Only the internal client uses "availableQueryOptions". Drivers do not. Therefore, the "availableQueryOptions" command can itself be removed once it is no longer used internally.
  • All mongod versions going back to at least 3.0 support exhaust. Therefore, a 5.1 or 5.2 node will never have to communicate with a node that does not support exhaust. The check as to whether exhaust is supported is completely unnecessary.


 Comments   
Comment by Githook User [ 25/Oct/21 ]

Author:

{'name': 'David Storch', 'email': 'david.storch@mongodb.com', 'username': 'dstorch'}

Message: SERVER-60749 Change internal client to stop issuing 'availableQueryOptions' command
Branch: master
https://github.com/mongodb/mongo/commit/6e9942b464bcf90cf96f7dd2e2ce6d4f28f1a7d0

Comment by David Storch [ 15/Oct/21 ]

Once this ticket is complete, we should file a follow-up ticket under which we will actually remove the implementation of the "availableQueryOptions" command. I don't think this can be done just yet, since a 5.0 node could issue "availableQueryOptions" to a 5.1, 5.2, 5.3, or 6.0 node in a mixed version cluster.

Generated at Thu Feb 08 05:50:38 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.