Details
-
Task
-
Resolution: Fixed
-
Major - P3
-
None
-
None
-
None
-
Fully Compatible
-
CAR Team 2023-12-11, CAR Team 2023-12-25, CAR Team 2024-01-08, CAR Team 2024-01-22, CAR Team 2024-02-05
Description
On sharded clusters, some aggregation stages such as $lookup, $graphLookup, $out and $merge may choose to split the pipeline and designate a merging shard. The router chooses the merging shard according to its cached routing table (for the inner collection in case of $lookup/$graphLookup, and the output collection in the case of $out/$merge). This routing table can potentially be stale – if it is, the query plan will perform sub-optimally, but results will be correct.
This ticket is to prevent scenarios where a router stays stale indefinitely and keeps choosing sub-optimal plans.