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

Enable vectorization of traverseF in kDoNotTraverseLeaf mode

    • Type: Icon: Task Task
    • Resolution: Unresolved
    • Priority: Icon: Major - P3 Major - P3
    • 8.0 Required
    • Affects Version/s: None
    • Component/s: None
    • Labels:
      None
    • Query Execution
    • v8.0
    • QE 2024-03-18, QE 2024-04-01, QE 2024-04-15, QE 2024-04-29, QE 2024-05-13
    • 105

      In block processing mode, when a $match predicate on a doted field is converted into a series of traverseF nested calls, we can operate directly with a valueBlockXXX function of the expanded navigation returned by TsBucketToCellBlockStage only if the predicate selects the kArrayElementsOnly. In this mode we know that the predicate only cares about the final leaf value, ignoring the arrays encountered during the descent.
      Some predicates, like $exists or $typeMatch, operate in kDoNotTraverseLeaf mode, where they stop right before navigating the last part of the dotted field; we can enable these functions to operate on block values if we expose a Get/Traverse/Get/Id navigation for each Get/Traverse/Get/Traverse/Id path we extract in TsBucketToCellBlockStage

            Assignee:
            alberto.massari@mongodb.com Alberto Massari
            Reporter:
            alberto.massari@mongodb.com Alberto Massari
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: