Updating RPMs using binary deltas (demo)

Toshio toshio at tiki-lounge.com
Mon Jan 26 21:15:31 UTC 2004


On Mon, 2004-01-26 at 10:13, Toshio wrote:
> As a proof of concept this works so far for me.  Unless someone else has
> already done this, I think I'll test it against the updates-released
> repository and see if I can generate any errors.

No errors from testing updates-released.  All signatures verify and
packages intact.  List of space savings at the bottom of this message. 
The range is 19.5% - 99.2% savings with an average of 63.9%.  I think
more than halving the bandwidth is an achievement.
However, you might notice that the kernel-source package is missing from
this list.   I cancelled the xdelta after a couple hours of running.  I
think the limiting factor on my machine was memory.

I looked into python as an eventual language for this and found that it
has rpm bindings and zlib bindings but no built in binary diff/xdelta
support.  There is an add-on module
http://freshmeat.net/projects/pysync/ for librsync, though, that may fit
the bill.

I've taken a look at SuSE's website and it seems their use case for
their patch RPMs are to distribute as an alternative for full update
RPMS against their base release.

                   kernel:  43.94% of original:  56.06% savings
                     lftp:  45.13% of original:  54.87% savings
             quagga-devel:  12.10% of original:  87.90% savings
                 ethereal:  71.32% of original:  28.68% savings
               kernel-doc:   0.93% of original:  99.07% savings
    redhat-config-printer:   0.80% of original:  99.20% savings
redhat-config-printer-gui:   2.23% of original:  97.77% savings
                   xboard:  66.87% of original:  33.13% savings
                   quagga:  36.31% of original:  63.69% savings
           ethereal-gnome:  80.54% of original:  19.46% savings
                     gaim:  40.51% of original:  59.49% savings
                  mod_ssl:  31.90% of original:  68.10% savings
                     bash:   8.84% of original:  91.16% savings
                    rsync:  39.80% of original:  60.20% savings
                     grep:  12.05% of original:  87.95% savings
                 net-snmp:  48.08% of original:  51.92% savings
           quagga-contrib:  14.49% of original:  85.51% savings
                  gnucash:   9.24% of original:  90.76% savings
                      dia:  63.72% of original:  36.28% savings
                      sed:  10.25% of original:  89.75% savings
                    gnupg:  43.28% of original:  56.72% savings
 gnucash-backend-postgres:   1.40% of original:  98.60% savings
                   procps:   9.27% of original:  90.73% savings
                 binutils:   3.64% of original:  96.36% savings
Total RPM Size: 45140838   Total Delta Size: 16309380
  Total Savings: 28831458    63.87% savings
--
Toshio <toshio at tiki-lounge.com>





More information about the fedora-devel-list mailing list