Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[WIP] migrations: introduce new system which supports long-running mi…
…grations This subsumes the cluster version cluster setting. There is a large overlap with pkg/sqlmigrations, which should be cleaned up in the future. With the new system a CockroachDB binary upgrade will work as follows: - If the customer wants the upgrade to auto-finalize, they leave the `cluster.preserve_downgrade_option` cluster setting to its default value. (same as before) - Each node is rolled one-by-one onto the new binary, waiting for it to health check and for latencies to stabilize before moving onto the next node. (same as before) - If the `cluster.preserve_downgrade_option` option is used, the cluster can be rolled back to the previous binary, but (some) new features are not available. Once the cluster stabilizes, the customer can commit to the new version to unlock these features. - To commit to the new version, the user runs: (same as before) `SET CLUSTER SETTING version = 'v20.1.0'` or `RESET CLUSTER SETTING cluster.preserve_downgrade_option` - [NEW] Before, the new features were available quickly, but now there may be a delay. To wait for the features to be available, the user polls: `SHOW UPGRADE STATUS` - [NEW] If a user quickly upgrades from major version X to major version X+1 and then onto major version X+2, they must wait for the X+1 upgrade to finish finalization before rolling any nodes onto X+2. If an X+2 node connects to this cluster before the upgrade finalization is done, it will crash (which hopefully will be noticed by the deployment tooling). This is unfortunate but a necessary trade off in allowing us to reduce our technical debt. Closes #39182 Release note (<category, see below>): <what> <show> <why>
- Loading branch information