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.
- is duplicated by
-
SERVER-28682 make ClusterIndexFilterCmd and ClusterPlanCacheCmd use the ARS
- Closed