Move away from resharding participants using long running services.

XMLWordPrintableJSON

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

      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
            Reporter:
            Kshitij Gupta (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated: