The classic plan cache did not create a cache entry for queries that only have a single solution. (Improving this is tracked by SERVER-13341.) The SBE plan cache, on the other hand, will cache single solution plans. This allows us to skip the cost of recompiling the SBE plan, even if there is no need to skip multi-planning.
The work for this improvement was originally implemented under SERVER-61083 but then subsequently disabled by SERVER-64314 since we observed some subtle correctness issues that were tricky to diagnose. The work for this ticket is to re-enable caching of single solution plans in the SBE plan cache. This will involve investigating and fixing the relevant build failures in addition to reverting the patch from SERVER-64314 that temporarily disabled single-solution SBE plan caching.
- depends on
-
SERVER-66015 Auto-parameterization works incorrectly for indexed regular expression predicates
- Closed
-
SERVER-65083 Thread seeing different set of indices can incorrectly re-use an SBE plan cache entry
- Closed
-
SERVER-65085 SBE plan cache entries can be incorrectly reused after a refineCollectionShardKey operation
- Closed
- is related to
-
SERVER-13341 Cache single solution query plans
- Backlog
-
SERVER-61083 Start caching plans that only have a single QuerySolution
- Closed
- related to
-
SERVER-64314 Temporary disable caching of single solution plans
- Closed