-
Type: Bug
-
Resolution: Done
-
Priority: Major - P3
-
Affects Version/s: 3.1.4
-
Component/s: Aggregation Framework
-
Fully Compatible
-
ALL
-
-
Query 2017-07-10, Query 2017-07-31, Query 2017-08-21
The fix implemented on SERVER-7656 doesn't fully address the issue, because it only works with an exact $match on the full shard key. However, it is possible for an aggregation to be directed to a single shard even without this. For example:
- a range query that is wholly contained within a single chunk
- a prefix match on the shard key, where the trailing fields are wholly contained within a single chunk
This means that an aggregation may be perfectly targeted to a single shard, but will not be passed through to that shard.
Case #2 is particularly problematic when _id is appended to the shard key (to guarantee granularity), but is never actually used in queries/aggs (and the rest of the shard key is usually/often enough to target just one shard).
- depends on
-
SERVER-27937 pull apart the AsyncResultsMerger logic into (1) establishing the cursors (2) sending the getMore's
- Closed
- is duplicated by
-
SERVER-23330 Optimize aggregation on sharded setup if first stage is exact match on shard key with $in
- Closed
-
SERVER-30216 Rename AggregationRequest::isFromRouter() to better represent actual meaning
- Closed
- is related to
-
SERVER-22671 Implement serverStatus section with active migrations
- Closed
- related to
-
SERVER-30899 Adapting meaning of 'fromRouter' causes problems in mixed version clusters
- Closed
-
SERVER-23955 Return what host the Shard::runCommand actually ran on
- Backlog
-
SERVER-27283 Sharded aggregations that need merging should only consider for merging the shards that have documents to contribute
- Backlog
-
SERVER-7656 Optimize aggregation on sharded setup if first stage is exact match on shard key
- Closed
-
SERVER-22760 Sharded aggregation pipelines which involve taking a simple union should merge on mongos
- Closed