[SERVER-43340] Make the plan cache commands on mongos send database version and move them off connection versioning Created: 14/Sep/19  Updated: 29/Oct/23  Resolved: 25/Sep/19

Status: Closed
Project: Core Server
Component/s: Sharding
Affects Version/s: None
Fix Version/s: 4.3.1

Type: Task Priority: Major - P3
Reporter: Esha Maharishi (Inactive) Assignee: Cheahuychou Mao
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate
is duplicated by SERVER-28682 make ClusterIndexFilterCmd and Cluste... Closed
Backwards Compatibility: Fully Compatible
Sprint: Sharding 2019-09-23, Sharding 2019-10-07
Participants:

 Description   

We should replace the plan cache commands' use of Strategy::commandOp/ParallelSortClusteredCursor/DBClient with scatterGatherVersionedTargetByRoutingTable/MultiStatementTransactionRequestsSender/TaskExecutor (see example).

There are two reasons to take this opportunity to switch these commands to the new path:

1) scatterGatherVersionedTargetByRoutingTable already attaches database version when appropriate, whereas the Strategy::commandOp path does not support database versioning.

2) The Strategy::commandOp path uses the legacy shard versioning protocol (connection versioning). The plan cache commands are one of the few remaining users of connection versioning. It would be great to remove all remaining users so we can delete the legacy connection versioning code.



 Comments   
Comment by Githook User [ 25/Sep/19 ]

Author:

{'name': 'Chou Mao', 'username': 'cheahuychou', 'email': 'chou.mao@10gen.com'}

Message: SERVER-43340 Make the plan cache commands on mongos send database version and move them off connection versioning
Branch: master
https://github.com/mongodb/mongo/commit/65388a9c2939a0fda5c9e2addbac377e2c49c176

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