[nexus] Auto-update schema on boot#9030
Conversation
davepacheco
left a comment
There was a problem hiding this comment.
Do we need to update single-sled too?
In terms of impact to existing systems, as I understand it:
- Systems that get updated via the MUPdate process from before this change to after: Nexus will immediately do the schema update on startup, rather than waiting for an operator to run the schema updater by hand. This should be fine because we've previously parked the rack so old Nexus instances shouldn't be running. But I'd like to check in with support about it.
- Systems that get updated via the MUPdate process in the future: same as above.
- For systems that get updated with self-service update: the handoff process + the new DataStore startup code ensures that we don't do this schema update until we're sure the old Nexus instances are never going to use the database again, so this is safe.
- It's now dangerous to MUPdate one sled containing a Nexus instance to a newer image than the other Nexus instances while they're running, but we already knew that and documented in #8954 so no impact here.
Is all that correct?
I'll update it too (deba8cd). That one isn't the prod we deploy to customers, but might as well make these consistent.
Yup.
Yeah, because they'll be skipping the handoff stuff for MUPdate, by remaining "active" and the same nexus generation. So yeah, this will be the same as the case above.
Yup, and we'll be in a world where all nexuses are quiescing cooperatively + checking their metadata on boot, to uphold that property that "no old Nexuses are hanging around when the new nexus takes over".
Yeah, seems correct to me! |
davepacheco
left a comment
There was a problem hiding this comment.
This looks good to me but I would still like to check in with support about it.
Fixes #8912 Should be merged after the rest of Nexus quiesce/handoff is complete.
Fixes #8912
Should be merged after the rest of Nexus quiesce/handoff is complete.