If a sharded output collection specified in a mapReduce command on a cluster, currently the shards will generate their own UUIDs for the collection rather than using the UUID stored on the config server.
This is because each shard puts its results into a temporary collection (which is created with a self-generated UUID), then renames the temporary collection to the final sharded output collection.
Instead of letting the shard generate the UUID for the temporary collection itself, a 3.6 mongos should pass the UUID to use as part of the MapReduceFinishCommand. The shard should use this UUID when creating the temp collection.
A shard in fcv=3.6 should uassert if the UUID is not sent as part of the MapReduceFinishCommand.
- depends on
-
SERVER-30703 make _configsvrShardCollection return the newly sharded collection's UUID
- Closed
- has to be done after
-
SERVER-31041 _configsvrShardCollection should return 'collectionsharded' and 'collectionUUID' fields on successful early return
- Closed
- has to be done before
-
SERVER-30780 Map/reduce with sharded output temporarily creates two collections with the same UUID
- Closed
- is related to
-
SERVER-30713 make mapReduce on mongos send UUID for final output collection of first pass of mapReduce to shards
- Backlog