This document describes Binary Delta Compression (BDC) technology and its use in software update deployment. This implementation of BDC technology developed by Microsoft reduces the download size of software update packages by downloading only the differences between old files and new files.
isn’t this essentially what diffs are? but for source and not binary? then just zip it up?
“This implementation of BDC technology developed by Microsoft reduces the download size of software update packages by downloading only the differences between old files and new files.”
One of those “obvious” ideas. Hope no one has a patent on it.
Subversion uses a similar algorithm called vdelta to minimize the communications overhead on network connections.
What exactly is the point of this document? or even publishing this in osnews at all?
its just a simple algo that finds the difference, delta or whatever. Do you really need an 8 page report with all that illustration and stuff to explain that?
Try Googling the web or newsgroups for “binary diff” and see how many other people have thought about it.
Used to send patches to their games like Doom using a method like this. Talk about an old trick.
who said it was a new trick???
…I wish Fedora would use something like this. Everytime I update the kernel it’s like a 50MB download. (Inluding kernel-source needed to install nvidia drivers.)
According to this document Microsoft Word and Word Viewer are now considered to be operating systems. Silly mistake.
rsync only transfers the differences.
Could anyone please post a pdf version?
Well this shouldn’t be too surprising to anyone. After all, in Windows95 they “invented” long filenames and multitasking.
Rsync takes MD5 checksums of all files, sends the list, and resends files that don’t have a matching md5 sum. So rsync doesn’t send only differences for individual files, but does for folders.
Great idea of Microsoft. Unfortunately for them this has already been done before, so they can’t claim patents for their technology. It must be made sure that Microsoft will not be recognized as the inventors, because that would be unfair to their predecessors on this topic.
Wrong!
A simple google search for “rsync documentation” would have shown you:
http://samba.anu.edu.au/rsync/tech_report/node2.html
And this algorithm, used by rsync, of course transfers *only* the differences of a file.
I’m happy with xdelta as used by Trolltech and KDE project.
The title is misleading. The whitepaper does not describe a new algorithm. Also, the whitepaper contains marketspeak, which is unfortunate, but typical for a corporate company.
While it may be useful for documenting things inside Microsoft, outside the organization it’s a waste of disk space and bandwidth.
-Vesko
It is also unfortunate how calling something technology – The Binary Delta Compression TECHNOLOGY!!!, can make something seem as important as the discovery of a completely new method of compression. I get the idea: we tell you “TECH” and you give us the DOUGH, regardless of the extent of product crappiness.
I have used xdelta (open source) two years ago for binary diffs. Its developed by a Berkley student.
http://www.xcf.berkeley.edu/~jmacd/xdelta.html
http://www.cvshome.org/dev/softxdelta.html
I believe lot of open/closed source software use it.
Delta patches? Yeah, old hat. I used to install delta patches for old DOS games in the past, you know, the RTP stuff.
Suse uses binary-delta for online-updates (security-updates)
This is not exactely anything new. Rsync has used this method for ages… Syncing mirror sites by transfering entire files would be hell. Also various online games use a simmilar approach when updating clients on connect.
This is just another example of Microsoft “inventing” something that has been in use for ages.
The concept is fairly shallow. Creating a working implementation is a little difficult. The server sending the patch needs to know exactly which file is on the requesting computer. There are only two ways of doing this:
1) have the requestor send the entire file to the server before getting the patch
2) reliable versioning
Performing 1) makes the entire compression useless. Techniques for 2) aren’t at a level that is really satisfactory. Some sort of binary signing would be necessary.
steve has #1 wrong. you don’t send the whole file, you send a hash (md5, sha1, etc) of the file. if it doesn’t match, then you can run a hash on certian parts of the file to see where the diff is and download only that part. I think thats how rsync works.
Isn’t this the idea of mpeg compression? Only send the changes on each framel instead of each new frame. Wonder how they got that idea?
This implementation of BDC…
MS is not claiming that they’re the first.
“One of those “obvious” ideas. Hope no one has a patent on it.”
MS could not even think about patenting it. Any sort of compression is based on the concept of finding redundancies or patterns. Binary diff is just a twist.
More like bsdiff/patch, though these are horribly slow.