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

Create new resharding recipient state kAwaitingFetchTimestamp

    • Fully Compatible
    • Sharding 2021-02-22, Sharding 2021-03-08
    • 1

      Recipient States should change from 
      (1) kUnused

      (2) kCreatingCollection // where we currently create the RecipientDocument

      to 

      (1) kUnused

      (2) kAwaitingFetchTimestamp // new place where we create the recipient document, transitions into this state once the coordinator enters CoordinatorStateEnum::kPreparingToDonate
      (3) kCreatingCollection // waits for the coordinator to be in CoordinatorStateEnum::kCloning, same as before, before changing into this state.

       

      goal:

      The coordinator must wait for for all donor and recipient state documents to be inserted before it transitions to kDecisionPersisted with an abortReason.

      This means that the flush for CoordinatorStateEnum::kPreparingToDonate must wait for all the participants to majority commit the insertion of the the Donor/Recipient documents.

      Motivation:

      Currently, it is possible for resharding to fail before recipients have created their ReshardingRecipientService machines. This complicates the logic when the coordinator wants to make sure all participants have aborted the operation before completing.

            Assignee:
            max.hirschhorn@mongodb.com Max Hirschhorn
            Reporter:
            haley.connelly@mongodb.com Haley Connelly
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: