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

Reevaulate migration destination session usage

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

      The session is checked out at the beginning and we "yield" from time to time (example) during the course of the migration. The main purpose of this session + txnNumber is to prevent older primaries from running the _migrateClone on the destination. However, it also had run into issues (for ex, SERVER-76720) because the session is held for almost the entire duration.

      Some ideas:
      1. Perhaps make migration destination manager a primary only service + possibly additional checks to prevent old instances trying to rerun migrateClone and possibly trigger range deleter on non-orphaned data.
      2. Keep the session + txnNumber but only hold it at the very beginning when checking if it is allowed to continue running. This way we can also get rid of the "yielding" code and won't have to worry about not forgetting to yield when adding new blocking code.

            Assignee:
            backlog-server-cluster-scalability [DO NOT USE] Backlog - Cluster Scalability
            Reporter:
            randolph@mongodb.com Randolph Tan
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated: