Create a coordinator to change all DB primaries of a draining shard

XMLWordPrintableJSON

    • Type: Task
    • Resolution: Unresolved
    • Priority: Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • None
    • Catalog and Routing
    • CAR Team 2023-12-25, CAR Team 2024-01-08, CAR Team 2024-01-22
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      When a user wants to remove a shard, all the databases placed on that shard have to be moved manually to another shard by the user. The goal for v8.0 is to implicitly move the databases from the draining shard so that the user doesn't have to be aware of the concept of DBPrimary.

      One step to get there is to build a new coordinator that moves all the databases placed on the current shard to another one.

      This coordinator will run on the config server and will be scheduled under the _configsvrRemoveShard command.

      These are the requirements the new coordinator must meet:

      • Recoverability. The coordinator will be resilient to failovers.
      • Joinability. Any request while a coordinator instance is ongoing will return the ongoing instance unless options differ, in the last case we should raise an error.
      • Only one coordinator can run at a time for a draining shard.
      • A coordinator can't be spawned for a shard if this shard is the destination shard of another coordinator.

            Assignee:
            [DO NOT USE] Backlog - Catalog and Routing
            Reporter:
            Silvia Surroca
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: