February 11th, 2020

Survey of Windows update formats: The Delta update

Last time, we began our survey of Windows update formats. We’ll continue with the Delta update.

The Delta update is a cut-down version of the Full update by including only files that changed since the previous version. Delta updates are typically around 300MB to 500MB in size, which is significantly less than the typical 1GB size of a Full update.

Delta updates send full files, not patches. The Delta is applied at the file level, not the byte level.

Update Full file Patch base
M0 M1 M2 M3 M4
M1
M1
M0 to M1        
M2
M2
M0 to M2 M1 to M2      
M3
 
         
M4
M4
M0 to M4 M1 to M4 M2 to M4    
M5
M5
M0 to M5 M1 to M5 M2 to M5   M4 to M5

The breakdown of files for Delta updates is as follows:

Delta update Contents
M1 M1
M2 M2
M3 (nothing)
M4 M4
M5 M5

Note that Delta update M3 contains nothing at all. That’s because the file F didn’t change between M2 and M3, so there was nothing to update.

Feature summary of Delta updates:

  • Delta updates can successfully update only customers who are running the previous monthly cumulative update (possibly with hotfixes). It cannot update customers who are more than one version behind.
  • Delta updates are a third to a half the size of a Full update.
  • Delta updates require a little bit of negotiation with the server to determine whether the client system is eligible, but once that’s determined, every eligible customer downloads the same update.
  • Delta updates are cache-friendly, because every customer downloads the same update (if they download anything at all). Therefore, caching features like caching proxies, BranchCache, and peer-to-peer delivery are effective.
  • Delta updates do not require significant server support. Once the package is negotiated, it is delivered in its entirety.

Next time, we’ll look at the Express update, which despite its name is actually larger than Full updates, or at least they’re larger on the server.

Topics
Other

Author

Raymond has been involved in the evolution of Windows for more than 30 years. In 2003, he began a Web site known as The Old New Thing which has grown in popularity far beyond his wildest imagination, a development which still gives him the heebie-jeebies. The Web site spawned a book, coincidentally also titled The Old New Thing (Addison Wesley 2007). He occasionally appears on the Windows Dev Docs Twitter account to tell stories which convey no useful information.

4 comments

Discussion is closed. Login to edit/delete existing comments.

  • David Streeter

    How does deleting files work? e.g. a file is added in M2 but later removed in M4.

    Is there a list of files to delete, or do obsolete files just get left lying around, unloved?

    • cheong00

      Since Delta updates are incremental update, for any files that should be delete in N+1 update level, it would be deleted promptly.

      If it were to be uninstalled, there is a reason why Windows create restore point on update.

      https://docs.microsoft.com/en-us/windows/win32/sr/restore-points

  • Piotr Siódmak

    I thought that to apply a patch you had to uninstall the currently installed one, effectively rolling back to the baseline (latest CU). Seemed logical because then patches are always applied against the common baseline (but every next patch would be bigger). Also I thought that was why C:\Windows\Installer keeps growing (keeps patch uninstallers).

    • Me Gusta

      The files in the Windows directories are actually hard linked to files in %SystemRoot%\WinSxS. For example, on my system:
      C:\>fsutil hardlink list c:\windows\system32\kernel32.dll
      \Windows\System32\kernel32.dll
      \Windows\WinSxS\amd64_microsoft-windows-kernel32_31bf3856ad364e35_10.0.18362.329_none_e9af874ee7d1812d\kernel32.dll
      The way Windows Update applies an update is to install the files into the WinSxS directory then removes the old hard link and then creates a new hard link to the most up to date file. So all of the files live happily side by side in the WinSxS directory...

      Read more