Why does a managed database service apply minor patches for you but wait for you to start a major version upgrade?
answer
- compatibility risk decides
- inside the line, or across it
- the provider validates the engine
- only your workload exercises the change
- no in-place downgrade afterwards
basics
~20 sA minor patch stays inside one major version line and is meant to preserve behaviour, so the provider can apply it fleet-wide. A major upgrade changes behaviour the provider cannot test against your workload, so you schedule it, test it and own its rollback.
solid answer
~50 sThe split follows compatibility risk. A **minor patch** is a fix inside the current major line: the provider validates it once across the fleet, it is expected not to change the behaviour your queries depend on, and there is a security obligation to get it out quickly - so it is applied for you, normally in the maintenance window. A **major version upgrade** can change defaults, retire syntax, alter how queries are planned and require newer client libraries. The provider can validate the engine, but only you can run your own workload against it. It also has a different downtime profile and, critically, no in-place downgrade: getting back means restoring a pre-upgrade backup or cutting over to a copy you kept behind. That is why it is customer-initiated - until an end-of-support date passes, after which the provider does it anyway.
code
json · 13 lines{
"engine": "managed-relational",
"majorVersionLagFromLatest": 2,
"minorVersionPatching": "appliedByProvider",
"majorVersionUpgrade": "customerInitiated",
"maintenanceWindow": {
"dayOfWeek": "sunday",
"startTimeUtc": "03:00",
"durationMinutes": 60
},
"majorVersionEndOfSupport": "2027-03-31",
"onEndOfSupport": "forcedUpgradeInNextWindow"
}go deeper
Remember the split: small fixes inside the current version arrive on the provider's schedule, while a move to the next major version is something a person has to start.
Explain why: a minor patch is validated once for everyone and is meant to preserve behaviour, while a major version can change defaults, syntax and driver requirements that only your own workload exercises.
Demonstrate the upgrade as a piece of work: inventory, a rehearsal on restored data, client-library testing, a chosen cutover shape and a restore point taken before you start.
Own the policy question - how much version lag the estate tolerates, who funds the upgrade, and why letting a deadline choose the date is the most expensive option available.
## Two changes that are not the same size Managed engines version in lines. A **minor** change moves within one major line and is a bug fix, a security fix or a small hardening; the contract it offers is that behaviour you already depend on keeps working. A **major** change opens a new line, and a new line is exactly where maintainers are allowed to remove things, change defaults and alter internals. The lifecycle a managed service wraps around them differs because the risk differs, not because one is bigger work for the provider. | | Minor patch | Major version upgrade | |---|---|---| | Who triggers it | The provider, in the maintenance window | You, at a time you choose | | Compatibility risk | Low, behaviour-preserving by intent | Real: defaults, syntax, planning, client libraries | | Who tests it | The provider validates the engine build | You validate your own workload | | Rollback | Restart on the previous build if needed | No in-place downgrade - restore or cut back to a copy | | Deadline | None you manage | An end-of-support date that eventually forces it | ## Why the provider takes the minor one Three reasons stack up. 1. **It can be validated once.** The provider runs the same engine build for every customer on that line, so one validation pass covers the fleet. 2. **There is an obligation behind it.** A managed service exists because the provider operates the software; leaving known-vulnerable builds running is exactly what customers bought their way out of. 3. **The blast radius is a restart.** The worst realistic outcome is the interruption you already accepted when you nominated a window. This is why a fleet on a managed tier is, in practice, patched more consistently than a fleet of self-run instances: nobody has to remember. ## Why the major one waits for you A major upgrade can change things no provider can check on your behalf: - **Removed or renamed syntax** a query, view or stored routine still uses. - **Changed defaults** - a setting whose old value your workload silently relied on. - **A changed planner default**, so a query that was fast becomes slow on the same data, which is a load problem rather than an error. - **Client library and driver requirements**, where the application side needs an upgrade before it can talk to the new engine at all. - **Extensions or add-on components** that have their own compatibility matrix and may lag the engine. None of that shows up in a generic validation pass. It shows up when your workload runs. So the platform hands you the trigger, and with it the testing and the scheduling. ## What owning it actually means 1. **Inventory** every instance on the old major line, including the forgotten ones in non-production accounts. 2. **Rehearse** on a restored copy: run the upgrade against a real copy of the data and time it. 3. **Test the clients**, not just the engine - the driver version is as likely to block you as the queries. 4. **Choose the cutover shape.** Designs differ here: some platforms upgrade in place with an outage you must budget for, and others let you build a parallel copy, replicate into it and switch the endpoint, which trades a shorter outage for more moving parts. 5. **Keep a way back.** Take a restore point immediately before the cutover, or keep the old copy readable until you are confident, because there is no in-place downgrade. ## The part people miss Customer-initiated is not the same as optional. The same lifecycle that lets you choose the moment also puts a date on the old line. Once the end-of-support date passes, the choice returns to the provider, which applies the upgrade on its own schedule - typically inside your maintenance window, and without your rehearsal. The value of owning the trigger is entirely in using it before that date, and a team that defers a major upgrade for two years has not avoided the work; it has only arranged for the work to happen on someone else's calendar.
- If a minor patch is behaviour-preserving, why does it still need a restart?Because the running process is the old build. The fix ships as a new binary for the engine, the operating system or the layers under it, and the instance has to restart onto it. Behaviour-preserving describes the query results and interfaces you depend on, not the availability of the process during the swap.
- How do you decide between an in-place major upgrade and a parallel copy you cut over to?By what you can afford to lose. In-place is simpler and costs an outage roughly proportional to the data and the conversion work. A parallel copy replicated into and then switched costs more setup and more risk of drift, but shortens the outage to the switch and leaves the old copy as your way back.
- Does staying two major versions behind buy you stability?It buys quiet now and a deadline later. The old line still receives fixes only while it is supported, and the further behind you are, the more behaviour changes accumulate into one cutover. Lag is a debt with an interest rate, and the end-of-support date is when it comes due.
saying these in an interview costs you the question
- Assumes the provider tests the application against a new major version
- Believes a major upgrade can be rolled back in place afterwards
- Treats a customer-initiated upgrade as permanently optional
- Tests the engine but never the client libraries and drivers
- Expects a minor patch to apply without any restart at all
- Thinks version lag is free because the instance still runs