[SERVER-41747] Refactor cluster aggregate planning to only attempt to split the pipeline once Created: 14/Jun/19  Updated: 06/Dec/22

Status: Backlog
Project: Core Server
Component/s: Aggregation Framework, Internal Code
Affects Version/s: None
Fix Version/s: None

Type: Improvement Priority: Major - P3
Reporter: Charlie Swanson Assignee: Backlog - Query Optimization
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Assigned Teams:
Query Optimization
Sprint: Query 2019-07-01
Participants:

 Description   

During development on SERVER-5477 we noticed that Pipeline::requiredToRunOnMongos() emulates much of the logic in cluster_aggregation_planner::splitPipeline(). This caused problems when we wanted to add the shard key as a parameter to distributedPlanLogic(), because keeping track of what the shard key is at every stage in the pipeline is non-trivial due to renamed and modified paths at each stage. 

After staring at this problem for a while, george.wangensteen, ted.tuckman and I think the best solution is to do a refactor to push the logic about where the pipeline is required to run down into cluster_aggregation_planner::splitPipeline() and then delete helpers on Pipeline such as requiredToRunOnMongos().


Generated at Thu Feb 08 04:58:33 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.