Last week, Microsoft announced what may come as a big relief to all Windows 10 users - a big reduction in the size of updates delivered for the OS. Customers have long been complaining about this issue since Windows 10 debuted in 2015 and it looks like Microsoft is finally beginning to get the message.
Late in 2018 or in early 2019, a new model is coming for quality updates to Windows 10 and Windows Server, which will delivers them in more compact packages. Currently, quality updates are released monthly and because they include all previously released fixes, their size is considerably big. These packages are of various types depending on how cumulative they are - some are delta updates, some are express updates and Microsoft also ships full updates which bring the OS quickly up-to-date with the latest patches. Full updates are the largest.
To simplify this confusion, Microsoft has decided to end delta, express and full updates for future releases of Windows 10, and replace them with a new package type that they claim will be even more compact and take less CPU time to install. The smaller size will save network bandwidth, make them easier to deploy using Windows Server Update Services, System Center Configuration Manager, Microsoft Update catalog or Windows Intune. These new Express updates will be redistributable Standalone Installer (.msu) files or (.cab) files.
Even Express updates took a lot of CPU time according to Microsoft but this new format will take much less. So it should install faster, but it will heavily depend on the speed of your machine (slower machines will benefit more).
Older versions of Windows 10 will continue to get delta and full updates but will still benefit from these newer update packages. This new design applies to all monthly quality updates of any class and importance.
Microsoft elaborates on the changes and previous update package descriptions as follows:
Full Update - contain compressed version (similar to ZIP style compression) of every component and binary that has changed in the OS since RTM
Express Update - The server contains compressed deltas from multiple baselines for every component and binary that has changed since RTM. Your machine chats back and forth with the server (the server could be Windows Update itself, or it could be a local WSUS server) to identify which byte ranges it needs and then downloads those ranges. Your device then hydrates those byte ranges back into complete files on your device and then does an installation. By multiple baselines, I mean that it includes deltas from specific points in time. Generally we use last months LCU (N), the month before (N-1) all the way back N-5 months, and RTM. So the server express file could be 6-7GB while the end device only downloads 150-200mb.
Small Update - The package contains the compressed delta from RTM for each file (Forward Delta), and the delta back to RTM (Reverse Delta). Essentially this means instead of containing multiple baselines, it only has 1 baseline (RTM). As an example, if your device were on the September LCU and then you installed October, your machine would apply the September reverse delta to go back to RTM and then the October forward delta to go to October (10B). It does this in a transaction so there is no possibility of your device being stuck in the middle somewhere - either the full update succeeds or does not. Since all the content is in the package itself, no server negotiation is needed. Because it only has a single baseline (from RTM) it will sometimes be larger than an express update for someone that was on the previous months patch. But the size difference should be minimal, and without the server negotiation and on device analysis it uses less CPU during download and install.
What is really great about the new smaller package format is that same file is available from Windows Update, WSUS, and Catalog. So even if you download from HTTPS (Catalog) and double click to install you get the smaller experience. Unlike express that only worked via Windows update or WSUS (or 3rd parties solutions that support the express protocol).
To make this change, there were modifications needed in both the package format itself, and in the update stack on the client. Making those types of changes to older versions of the OS would be risky (the update stack is absolutely critical). With a new version of the OS we have many months of both internal testing as well as Windows Insider previews that we can use to validate the changes at scale and reduce risk.
What do you think about this new update package format? Do you think Microsoft should have designed it from the start? What kind of improvements do you expect to updating?