Investigate perf regressions of the SBE lookup in microbenchmarks

XMLWordPrintableJSON

    • Type: Task
    • Resolution: Gone away
    • Priority: Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • None
    • QE 2022-04-18
    • 135
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      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

            Assignee:
            Yoon Soo Kim (Inactive)
            Reporter:
            Yoon Soo Kim (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

              Created:
              Updated:
              Resolved: