ExportXMLWordPrintableJSON

    • Type: Task
    • Resolution: Fixed
    • Priority: Major - P3
    • 9.1.0-rc0, 9.1.0-rc1025
    • Affects Version/s: None
    • Component/s: None
    • None
    • Cluster Scalability
    • Fully Compatible
    • ClusterScalability 28Sep-12Oct, ClusterScalability 12Oct-26Oct, ClusterScalability 26Oct-9Nov
    • 200
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      Background / Problem

      Resharding has its own limit on the config server. ReshardingCoordinatorService::checkIfConflictsWithOtherInstances (src/mongo/db/s/resharding/resharding_coordinator_service.cpp) throws "Only one resharding operation is allowed to be active at a time". It only lets you join an existing operation with the same namespace, key, provenance, and user UUID.

      So two reshards on different collections would both get past the DDL locks on the shard, but the second one fails with ConflictingOperationInProgress when the config server tries to create its ReshardingCoordinator.

      1. _configsvrReshardCollection at configsvr_reshard_collection_cmd.cpp:287
      2. calls ReshardingCoordinator::getOrCreate at resharding_coordinator_service.cpp:139
      3. which goes through PrimaryOnlyService::getOrCreateInstance
      4. which calls ReshardingCoordinatorService::checkIfConflictsWithOtherInstances at resharding_coordinator_service.cpp:33.

      Goal

      Remove or modify this check so that concurrent reshardings and moveCollections on distinct collections within the same database are allowed.

            Assignee:
            Anja Kalaba
            Reporter:
            Anja Kalaba
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated:
              Resolved: