The paper provides a fascinating look at the current Windows Update architecture which is central server based, with a cluster of servers for requesting what the latest updates are, and a separate cluster of servers for actually downloading the updates. Interestingly, when a new version of a file is released the download servers produce multiple verisons of it, each corresponding to the difference betrween the current version and one of the prior versions that may already be on a users machine. That way users can just download the delta between their current version (whatever it may be) and the new one.
Some of the main findings of the paper:
- Combining smaller frequently requested patches together into larger ones can improve effectiveness
- 80% of unique downloaders appear during the first day of a patch release
- Deploying local caches at ISPs to serve their own user populations is highly effective at reducing server load. Theoretically, if each subnet of the internet had a local cache then Windows update would only need to serve out a file to each subnet cache. Local caches are thus highly efficient compared to central servers
- A peer to peer architecture can considerably reduce load but at the expense of over all internet traffic (even for small files); however, an algorithm to prefer locality (files from users using the same ISP) can reduce inter-ISP traffic by an order of magnitude