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

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

    XMLWordPrintableJSON

Details

    • Icon: Task Task
    • Resolution: Unresolved
    • Icon: Major - P3 Major - P3
    • None
    • None
    • None
    • None
    • Catalog and Routing
    • CAR Team 2023-12-25, CAR Team 2024-01-08, CAR Team 2024-01-22

    Description

      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.

      Attachments

        Activity

          People

            backlog-server-catalog-and-routing Backlog - Catalog and Routing
            silvia.surroca@mongodb.com Silvia Surroca
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated: