[SERVER-68517] Avoid object materialization for evaluation of field path expressions in column scan plans Created: 02/Aug/22  Updated: 12/Jan/23

Status: Open
Project: Core Server
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Task Priority: Major - P3
Reporter: Ian Boros Assignee: Backlog - Query Execution
Resolution: Unresolved Votes: 0
Labels: pm2646-m5
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
depends on SERVER-69543 Avoid object materialization in colum... Open
depends on SERVER-69542 Refactor how we track metadata slots Closed
depends on SERVER-69647 Refactor how $group optimizes itself ... Closed
is depended on by SERVER-69105 Achieve column index performance acce... Closed
Assigned Teams:
Query Execution
Participants:

 Description   

In order to evaluate a field path expression (e.g. "$address.state"), we materialize an object and then evaluate the expression over that object. The goal of this ticket is to avoid creating the intermediate object when it is created only for the purpose of evaluating field path expressions.

This will involve several sub-tasks/steps. Roughly:

1) We will have to support evaluation of field path expressions using an SBE expression rather than an SBE plan stage tree.
2) We will have to support evaluation of field path expressions directly over array info.
3) We will need to track the use of field path expressions in the stage builder, and associate each one with a slot. We will attempt to do this only for certain query "shapes."

This work will be broken up into sub-tasks as we learn more. This ticket is to track the goal of avoiding materialization for simple $group queries.



 Comments   
Comment by Charlie Swanson [ 13/Sep/22 ]

I'm using SERVER-69542 to track my current work on this, and leaving this ticket open to track dotted fields in the future

Generated at Thu Feb 08 06:11:01 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.