Details
-
Bug
-
Resolution: Duplicate
-
Major - P3
-
None
-
4.4.6
-
None
-
ALL
Description
Hiding an index can result in cached plans no longer being accessible via the $planCacheStats pipeline stage.
db.foo.drop();
|
db.foo.insert({ a: 1, b: 1 });
|
db.foo.createIndex({ a: 1 });
|
db.foo.createIndex({ a: 1, b: 1 })
|
|
var q = { a: { $gte: 1 }, b: 1 }; |
|
db.foo.count(q);
|
var key = db.foo.explain().count(q).queryPlanner.planCacheKey; |
//=> E7DCAC4F
|
|
db.foo.aggregate([{ $planCacheStats: {} }, { $match: { planCacheKey: key } }, {$project: { plan: "$cachedPlan.indexName" } } ]) |
//=> { "plan" : "a_1_b_1" }
|
|
db.foo.hideIndex({ a: 1 })
|
|
db.foo.count(q);
|
var key2 = db.foo.explain().count(q).queryPlanner.planCacheKey; |
//=> E7DCAC4F
|
|
db.foo.aggregate([{ $planCacheStats: {} }, { $match: { planCacheKey: key2 } }, {$project: { plan: "$cachedPlan.indexName" } } ]) |
//=> no results
|
|
db.foo.unhideIndex({ a: 1 })
|
|
db.foo.count(q);
|
var key3 = db.foo.explain().count(q).queryPlanner.planCacheKey; |
//=> E7DCAC4F
|
|
db.foo.aggregate([{ $planCacheStats: {} }, { $match: { planCacheKey: key3 } }, {$project: { plan: "$cachedPlan.indexName" } } ]) |
//=> { "plan" : "a_1_b_1" } |
Attachments
Issue Links
- duplicates
-
SERVER-13341 Cache single solution query plans
-
- Backlog
-