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

Move away from resharding participants using long running services.

    • Type: Icon: Improvement Improvement
    • Resolution: Unresolved
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • None
    • Cluster Scalability

      Currently resharding participants rely on long running primary only services that stick around for the entire duration of the resharding operation (ReshardingRecipientService, ReshardingDonorService).

       

      Because of SPM-3977  to remove usage of refreshes in those POS, these POS would become coupled with the explicit commands driving the transitions now. This is also leading to a pattern where the commands drive some state and then itself waits for this state to be persisted. max.hirschhorn@mongodb.com pointed out that instead of coupling these together, it might be better for each new command to instead just have a mini-service that does the task.

       

      I think this would be an improvement over our current control flow which goes from the command to the POS AND vice-versa. But since we have to support the promise based refresh architecture for FCV 8.0 in the newer binaries, it's easier to re-use that implementation for SPM-3977 and the other phases. I think a natural point of doing this work is either after moving all the phase transitions to explicit commands or when moving to push based resharding.

            Assignee:
            Unassigned Unassigned
            Reporter:
            kshitij.gupta@mongodb.com Kshitij Gupta (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated: