[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: |
|
||||||||
| 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: |