BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage News Best Practices for Planet-Scale Software Updates

Best Practices for Planet-Scale Software Updates

Software updates are becoming the new norm for updating desktop installed applications / software environments including Windows, Java, your virus scanner, even little apps like RSS readers.  Perhaps the largest update service in the world is the Windows update service, which keeps many of the computers on the planet up to date.  A new Microsoft research paper has examined data from billions of Windows update queries from 300 million computers using the Windows update service in order to learn about the traffic characteristics of software patch distribution and also examine alternative architectures (P2P and caching) to support planet-scale software updating.

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

Rate this Article

Adoption
Style

BT