[SERVER-30898] Gate array sorting semantic changes behind featureCompatibilityVersion Created: 30/Aug/17 Updated: 06/Dec/22 Resolved: 05/Sep/17 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Aggregation Framework, Querying |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Bug | Priority: | Major - P3 |
| Reporter: | Charlie Swanson | Assignee: | Backlog - Query Team (Inactive) |
| Resolution: | Won't Fix | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Assigned Teams: |
Query
|
| Operating System: | ALL |
| Participants: |
| Description |
|
In a mixed version sharded cluster, multiple shards can participate in the merge, each using different sorting semantics. Consider an aggregation that targets two shards, one is version 3.6 and one is version 3.4, then is merged by the 3.6 node. The results from the 3.4 node will come back in a different order than they would on the 3.6 node, but the 3.6 merging node will assume they are both sorted the same way, incorrectly using a 'merge presorted streams' algorithm, for streams that aren't actually sorted. |
| Comments |
| Comment by David Storch [ 05/Sep/17 ] |
|
Since array sorting semantics are not usefully or consistently defined in versions prior to 3.6, we do not believe it is important to preserve useful array sorting behavior in a mixed version 3.4/3.6 cluster. Users who fully upgrade to 3.6, however, should get a meaningful sort order when sorting on an array field. Closing as Won't Fix. |