Objective of ‘Prepare Upgrade’
The objective of the ‘Prepare upgrade’ step is to make sure all the OMs use the same version of the software to update their DBs (apply transaction) for a given request.
To ensure this, we need to make sure that
- For every operational OM (at least a quorum of OMs should be operational), all unapplied transactions should be applied.
- For an OM that is not operational during the prepare step, it should get a Ratis snapshot (entire OM RocksDB) to get up to speed with the rest of the OMs after the upgrade.
The design doc is attached as a PDF, and a corresponding flow diagram that is mentioned in the doc is also attached.