On Wed, 28 Jan 2004, Alexandre Oliva wrote:
On Jan 28, 2004, Leonard den Ottolander leonard@den.ottolander.nl wrote:
Just always delta against the original rpm that came with the release, since everybody should have that one lying around
Lying around in the install CD? Or in .iso format on some NFS server used for the install? I guess these are the most common cases, and I somehow can't see them as convenient.
The people who rsync/xdelta would help most are those who have bandwidth problems, and they will probably have installed from CD. It might be possible to recreate an rpm from installed files (possibly using some extra downloads to fill missing info/config files).
The most common case is that the person will the previous release of an update installed on their system. If you only generate deltas from the base release, you don't help such people.
True. Probably the best way to do this would be incremental deltas, though I agree it isn't ideal.
Using an rsync-based download, OTOH, you don't need to generate deltas at all: you pre-generate the hashes on the server, the client downloads that, figures out which chunks it needs based on what it has on its end of the network, and requests only those from the server.
The catch here is that you not only have to store the hashes, but you also have to store the uncompressed rpm file, or uncompress it on the fly for each update, which hits either the cpu or the storage space on the server. You also either have to have a special rsync like server, or you have several http connections to retrieve the file bits. A static xdelta results in a single file fetch and no extra server load.
rsync does give you the chance to start from a close but not exact starting point, however it does this at the expense of bandwidth because of the hash transmission, and because it uses larger blocks. Hence you use more bandwidth for a rsync download than with a static xdelta, though I haven't tested this to see by how much.
Michael Young