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

Enable vectorization of traverseF in kDoNotTraverseLeaf mode

    XMLWordPrintableJSON

Details

    • Icon: Task Task
    • Resolution: Unresolved
    • Icon: Major - P3 Major - P3
    • None
    • None
    • None
    • None
    • Query Execution

    Description

      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

      Attachments

        Activity

          People

            backlog-query-execution Backlog - Query Execution
            alberto.massari@mongodb.com Alberto Massari
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated: