-
Type: Task
-
Resolution: Fixed
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: None
-
Query Optimization
-
Fully Compatible
-
v8.0
The investigation in PERF-5073 found that a key contributor to the regressions in the initialization of CanonicalQuery is the creation of a new BSONObj for each MatchExpression.
By keeping alive or moving the original BSONObj, we can reduce the cost of CanonicalQuery initialization in some cases by 50%.
This ticket will introduce the final change in expression_leaf.cpp and expression_leaf.h to remove the use of _backingBSON BSONObj
- depends on
-
SERVER-89532 Update all unit tests to respect BSONObj lifetime contract of MatchExpression
- Closed
-
SERVER-89834 Update MatchExpression optimizations to respect BSON lifetime
- Closed
-
SERVER-89151 Update change stream helpers to ensure BSONObj ownership
- Closed
-
SERVER-89152 Update lookup foreign collation to ensure BSONObj ownership
- Closed
-
SERVER-89153 Update FLE2 to ensure BSONObj ownership
- Closed
-
SERVER-90079 Update IndexBound translation to ensure correctness and performance despite changes in MatchExpression BSONObj
- Closed
- is duplicated by
-
SERVER-90079 Update IndexBound translation to ensure correctness and performance despite changes in MatchExpression BSONObj
- Closed