Add a persisted phase to setFCV after enabling target FCV features

XMLWordPrintableJSON

    • Type: Task
    • Resolution: Unresolved
    • Priority: Major - P3
    • None
    • Affects Version/s: 8.3.0-rc0
    • Component/s: Upgrade/Downgrade
    • None
    • Catalog and Routing
    • 🟩 Routing and Topology
    • None
    • None
    • None
    • None
    • None
    • None

      Currently in setFCV, after switching to the target FCV, the FCV is "fully upgraded/downgraded". This means that we can't do reliably do any work on the target FCV (such as _finalizeUpgrade/_finalizeDowngrade) because if setFCV gets interrupted (e.g. due to a stepdown/crash) then we will believe that the upgrade/downgrade was fully finished.

       

      After SERVER-119476, SERVER-119479, we should be able to add a new phase to setFCV which runs on the target FCV. If there is a crash, the persisted phase field will indicate that there is still outstanding work for the FCV upgrade/downgrade.

      NOTE: After the phase is persisted, the interpretation of the FCV from the FCV document should be changed to match:

      • If the phase is set and before enable_target_features, the FCV is the transitional kUpgrading/kDowngrading FCV, given by version/targetVersion/previousVersion.
      • Otherwise, the FCV is the upgraded/downgraded FCV given by “version”.

            Assignee:
            Unassigned
            Reporter:
            Joan Bruguera Micó
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: