Updating RPMs using binary deltas (demo)

Michael Young m.a.young at durham.ac.uk
Wed Jan 28 19:35:33 UTC 2004


On Wed, 28 Jan 2004, Alexandre Oliva wrote:

> On Jan 28, 2004, Leonard den Ottolander <leonard at 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





More information about the fedora-devel-list mailing list