X-Reportbug-Version: 3.17
Package: gzip
Version: 1.3.5-12
Severity: wishlist

The current algorithm for --rsyncable is, AFAIU, flushing the compression 
buffers every 4k input bytes, causing a "fresh" compression to start.

That works only for inputs with fixed-size-blocks, ie simple byte changes; 
no insertions, no deletions.


To make that feature working also for non-fixed-size-changes I'd suggest using 
a mechanism like Manber-Hashing 
(http://citeseer.nj.nec.com/manber94finding.html) 
to determine where to break the blocks.
As gzip already has some CRC calculation this should have negligible 
performance 
impacts.


A sample implementation for this calculation is in the perl module at 
http://search.cpan.org/CPAN/authors/id/P/PM/PMAREK/DigestManberHash/Digest-ManberHash-0.7.tar.gz.


My use case is compressing a kernel and initrd image, which get periodically 
changed and rsynced to a number of destinations.
Every time the kernel includes a new driver, nearly the whole rsync image has 
to be transfered, as any insertion causes gzip to compress later blocks 
differently.


Thank you very much!


Regards,

Phil



-- System Information:
Debian Release: testing/unstable
  APT prefers testing
  APT policy: (600, 'testing'), (50, 'unstable'), (1, 'experimental')
Architecture: i386 (i686)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.14-1-686-smp
Locale: [EMAIL PROTECTED], [EMAIL PROTECTED] (charmap=ISO-8859-1) (ignored: 
LC_ALL set to de_AT)

Versions of packages gzip depends on:
ii  debianutils                   2.15.1     Miscellaneous utilities specific t
ii  libc6                         2.3.5-8    GNU C Library: Shared libraries an

gzip recommends no packages.

-- no debconf information


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to