From the “GoogleUpdate.exe Is Your Update Master” files:
If you’re a Google Chrome user (on Windows), than you’ve got GoogleUpdate.exe running — providing silent, continuous updates to Chrome as Google releases them.
The only problem is sometimes an update can be a bit large, which is where the new Courgette system comes in. With Courgette, Google is going to pushing down a compressed “diff” to users. That is, instead of an entire new application, the diff is the difference between old and new (the delta).
“It is an anathema to us to push out a whole new 10MB update to give you a ten-line security fix,” Stephen Adams, Google software engineer wrote in a blog post. “We want smaller updates because it narrows the window of vulnerability. If the update is a tenth of the size, we can push ten times as many per unit of bandwidth.”
Adams added that means that users can be protected earlier and the smaller update will also work better for users on slower network connections.
It makes a whole lot of sense to me. The diff approach is one that isn’t new, Adams mentions bsdiff [a patch-building tool) in his post, but he also notes that Courgette produces diff files that are even smaller.
As an example of the difference in file sizes, Adams said that for a recent Chrome dev-channel update the full update was 10.4 Megabytes (MB), the bsdiff update was 704.5 KB and Courgette update was only — get this — 78 KB.
That is an astounding level of difference. But how exactly is Google achieving this feat of software engineering compression?