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

The logic in attachCursorSourceToPipelineForLocalRead performs shard versioning by UUID

    • Type: Icon: Bug Bug
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • 7.1.0-rc0, 7.0.2
    • Affects Version/s: None
    • Component/s: Sharding
    • Labels:
    • Sharding EMEA
    • Fully Compatible
    • ALL
    • v7.0
    • Sharding EMEA 2023-08-07

      The logic in CommonMongodProcessInterface::attachCursorSourceToPipelineForLocalRead performs shard versioning by UUID, even if namespace is available. The shard version comes from the previous call up the stack, which establishes the collection as expected UNSHARDED.

      There are a couple of problems with this:

      1. Shard versioning by UUID is not something that we currently support in the protocol, unless the version is UNSHARDED. The protocol is always NSS -> ShardVersion and if instead of NSS we have UUID, there is currently no reliable way to infer what is the namespace that corresponds to that collection and we need to rely on the contents of the local catalog.
      2. We plan to get rid of UNSHARDED collections, which means this problem will get worse.

            jordi.serra-torrens@mongodb.com Jordi Serra Torrens
            kaloian.manassiev@mongodb.com Kaloian Manassiev
            0 Vote for this issue
            5 Start watching this issue