Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-62563

Support sharding for collectionUUID parameter of aggregate command

    • Type: Icon: Task Task
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • 5.3.0
    • Affects Version/s: None
    • Component/s: None
    • Labels:
    • Fully Compatible
    • Replication 2022-02-07, Repl 2022-02-21

      Currently the collectionUUID option for the aggregate command is disallowed on mongos.


      Context change:

      In the case of sharded collection, documents can be spanned to multiple shards, so the aggregation request can be directed to any subset of the shards, and if the targeted subset doesn't include the primaryShard of the database that may result in not finding the collection corresponding to the given collectionUUID.

      To solve this problem we came up with two solutions:
      1- Send dummy request to the primaryShard if the targeted shard subset doesn't include it and we didn't find the collection corresponding to the given collectionUUID.

      2- Only allow collectionUUID parameter for commands that it must hit the primaryShard.


      We have decided to go with the second solution for sharded aggregation command, so we are going to allow the collectionUUID parameter for only $indexStats and $collStats aggregation pipelines as replicator only needs these two pipelines. 

            m.maher@mongodb.com Moustafa Maher
            gregory.noma@mongodb.com Gregory Noma
            0 Vote for this issue
            3 Start watching this issue