On Fri, 2005-09-09 at 13:18, Bryan J. Smith wrote: > > I have, repeatedly. If the RPMs in question are stored > > with the payload unpacked, and binary deltas against each > > file (similar to the CVS repository v file) stored, > > I don't think you're realizing what you're suggesting. > Who is going to handle the load of the delta assembly? I don't particularly want to promote the delta idea, but if you keep in mind that the RPMS are already stored in increasing version-numbered revs, if a binary delta between each version were also available without changing anything else, it would be trivial for a client to decide whether it is more efficient to apply a delta to an existing cached or locally available version or pull the latest. It would take more storage, but wouldn't break anything already working and could reduce network traffic considerably. > BTW/FYI: I know how deltas work -- not only text, but the > larger issue of delta'ing binary files. And I have > personally deployed XDelta as a binary delting application > over the last 5 years, since CVS can only store binaries > whole. I haven't looked into how Subversion stores binaries > (same algorithm as XDelta?). Likewise, how does the style used in rdiff-backup compare? It claims to be similar to rsync which has proven very efficient in being able to transmit the differences between two files. With rdiff the server side work only has to be done once. > Not true! Not true at all! You're talking GBs of > transactions _per_user_. You really only need to create a delta once per RPM version update creation. > You're going to introduce: Then you need to store the delta in addition to the full versions, so there is more disk storage needed for this approach. > That's the key right there -- you think. > > Again, keep in mind that repositories merely serve out files > via HTTP today. They could still do that. The only overhead added would be for the storage of the deltas and the traffic of the client checking the sizes. You would trade that off against the network traffic saved when the client chooses the smaller delta. But, for this to work you need an on-line local cache of the base rpms. Yum saves one for a while for the updates but I doubt if enough people would set up the local cache of the base files to make this approach work unless that step is automated during the OS install. -- Les Mikesell lesmikesell at gmail.com