-
Type: Task
-
Resolution: Gone away
-
Priority: Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
Labels:None
-
QE 2022-04-18
-
135
taking a look at BF-24743, I think it’s indeed the SBE lookup perf regressions.
Regressed test cases are Aggregation.Lookup / Aggregation.Lookup.LocalArray / Aggregation.IdentityView.Lookup / Aggregation.IdentityView.Lookup.LocalArray.
There are no indexes on the foreign collection, looking at the data populator (https://github.com/mongodb/mongo-perf/blob/b156b220d51a61c2a7496f44f5cc0a7d6b46c64a/testcases/pipelines.js#L873-L931).
We use basicLookupPopulator for “Aggregation.Lookup” and “Aggregation.IdentityView.Lookup” test cases and use basicArrayLookupPopulator for “Aggregation.Lookup.LocalArray” and “Aggregation.IdentityView.Lookup.LocalArray” test cases.
And the pipeline is {$lookup: {from: “#B_COLL_lookup”, localField: “foreignKey”, foreignField: “_id”, as: “match”}} and we don’t use allowDiskUse . So, they are pushed down to the SBE and it will be NLJ-based lookup.
Aggregation.Lookup / Aggregation.IdentityView.Lookup test cases are here:
https://github.com/mongodb/mongo-perf/blob/b156b220d51a61c2a7496f44f5cc0a7d6b46c64a/testcases/pipelines.js#L1005-L1017
Aggregation.Lookup.LocalArray / Aggregation.IdentityView.Lookup.LocalArray test cases are here:
https://github.com/mongodb/mongo-perf/blob/b156b220d51a61c2a7496f44f5cc0a7d6b46c64a/testcases/pipelines.js#L1050-L1062