Linked by Thom Holwerda on Thu 16th Jul 2009 21:44 UTC
Google One of the more controversial features of Google's Chrome/Chromium web browser is the way it handles updates. Contrary to other browsers, updates on Chrome are installed silently and automatically, without asking for the user's consent. While convenient and effective, it was also a security risk and sometimes it slowed people's machines down. Google now proposes a fix called Courgette.
Thread beginning with comment 373830
To view parent comment, click here.
To read all comments associated with this story, please click here.
RE[2]: Layman explanation attempt
by n4cer on Fri 17th Jul 2009 03:39 UTC in reply to "RE: Layman explanation attempt "
n4cer
Member since:
2005-07-06

From what I understand, this isn't particularly new - Linux and Windows have delta updates which are binary diffs; I remember Microsoft before Microsoft developed a technology to reduce the size of updates; where a 1MB update might have a 500K file which is only around 30K difference between the old and new file.


Here's the relevant info from MS' Binary Delta Compression reference:

The Delta Compression API offers special handling for certain types of executable files (PE files, such as EXE or DLL files.) In particular, executables designed to run on the 32-bit Intel i386 family get special treatment. When the basis and target files are similar executables, this feature can reduce the size of the delta significantly—typically 50-70% further.

To get the maximum benefit from this feature, symbol files from the LINK process can be supplied during delta creation. This will help the creation process recognize the nature of the changes between the files. Richer symbol info, such as private symbols, will help make smaller deltas. Figure 3 illustrates this process.

Figure 3. Delta compression using symbol files

None of the symbol data is passed in the delta, and the symbol files are not needed during the delta apply process.

See Optional Data for Delta Create for more information on how symbols can be provided.

http://msdn.microsoft.com/en-us/library/ms811406.aspx

Reply Parent Bookmark Score: 3

galvanash Member since:
2006-01-25

Interesting. What they are doing sounds very similar, but they require the user to supply the symbol tables manually. Google's approach doesn't require anyone to supply the symbol tables, it creates them itself directly from the machine code (at least it creates something _like_ a symbol table and uses it for the same purpose).

I don't know which approach is more effective, but if they are close then Google's approach would be far more convenient.

Reply Parent Bookmark Score: 2

galvanash Member since:
2006-01-25

Also, from my understanding of the MS documentation: the Delta Compression API when used without the user supplied symbol table is probably roughly equivalent to bsdiff. It may be slightly more effective because it understands PE format, but that is just a guess.I don't see any other magic going on.

Reply Parent Bookmark Score: 3