Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-65044

Investigate perf regressions of the SBE lookup in microbenchmarks

    XMLWordPrintableJSON

Details

    • Icon: Task Task
    • Resolution: Gone away
    • Icon: Major - P3 Major - P3
    • None
    • None
    • None
    • None
    • QE 2022-04-18
    • 135

    Description

      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

      Attachments

        Activity

          People

            yoonsoo.kim@mongodb.com Yoon Soo Kim
            yoonsoo.kim@mongodb.com Yoon Soo Kim
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: