...
This is from code inspection: MatchExpression:parameterize() (db/matcher/expression.cpp) will revert parameterization of the aggregation $match when there are more than 'maxParameterCount' parameters (512 by default in my investigation), but nothing prevents this plan from being put into the SBE plan cache. Thus if the same query shape occurs again but with different constants, each plan with different constant values will be cached separately, causing cache flooding with large plans that are unlikely ever to be reused. The fix should be to avoid caching any plan that triggered the reversion of parameterization. (Concurrence from discussion with anna.wawrzyniak@mongodb.com .) Introduced in 7.0.0-rc0 by SERVER-73589. CC: amr.elhelw@mongodb.com justin.seyster@mongodb.com
xgen-internal-githook commented on Wed, 16 Aug 2023 23:43:25 +0000: Author: {'name': 'Kevin Cherkauer', 'email': 'kevin.cherkauer@mongodb.com', 'username': 'kevin-cherkauer'} Message: SERVER-79867 $match SBE auto-paramize revertMode can flood plan cache Branch: master https://github.com/mongodb/mongo/commit/3701a6c0facb713b01616b7e99154902cabe3c74 JIRAUSER1270811 commented on Mon, 14 Aug 2023 18:14:44 +0000: I have reproduced the cache flooding problem with a test that has 513 predicates in the $match expression. Correct results are returned because different values for the arguments produce different PlanCacheKeyInfo::_key values as the constants get encoded into this. This in turn leads to different queryHash values, which cause the original cached plan not to be reused for a query of the same shape but different constants, and it also leads to caching each plan with different constants in addition to the original plan, which is the cache flooding problem I was worried about. It is better not to cache a plan at all if its match expression could not be parameterized due to having more than 512 predicates. Besides the performance gain from not flooding reusable plans out of the cache, this change will also gain some additional performance by avoiding construction of the key in the first place. E.g. the _key string, before hashing, for one of my test queries is very large (almost 16K in string form): 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