Re: A more efficient up2date service using binary diffs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



man, 14.03.2005 kl. 08.18 skrev Florian La Roche:
> On Mon, Mar 14, 2005 at 01:59:07AM +0000, Joe Desbonnet wrote:
> > I have more results from my experiments in RPM delta compression. I've posted
> > the results so far here: http://www.wombat.ie/software/rpmdc/index.shtml
> > 
> > Conclusion so far: assuming someone has the distribution RPMs
> > available then an entire
> > update repository (about 1GB) can be generated from 200MB of files. 
> > 
> > I hope to post my code once I clean it up a bit (it's implemented in
> > Java currently).
> > 
> > Must check out rdiff also...
> 
> I've done tests some time ago that showed a 4.8 factor to reduce bandwidth
> needs for RHEL update releases. Big drawback will be the need of the previous
> packages, so this might again be only something for a local server to
> download updates, but not for normal client machines.
> Still the savings look very nice, so I think we should continue looking at
> this.

What if we made some steps here:
1. place an option in anaconda to copy all rpm's to disk. Put them in
say, /var/cache/yum/whatever/is/under/here/again
2. Create the stuff as a independent program, say rpmpatch (sympnosis:
"rpmpatch oldrpm.rpm newrpm.prpm" which outputs newrpm.rpm). This way,
it can also be used manually
3. make the master repository also create prpm's - which then will be
mirrored.
4. make yum check if:
	- are there any "old" rpm's lying around localy
	- are there any new prpm's in the repository
	- if many steps - is it a smaller download to get,
		say two prpm's, and patch incrementally untill
		you get the wanted rpm?
	If yes to theese three - get the prpm, not the full rpm.
		(get headers the usual old way - byte-ranges from
		the full rpm's)
	If no to any of theese - get the full rpm's, just as we do 		today.
5. When yum has finished downloading, use rpmpatch (maybe making it
acessable as a libary, not only a cmd-line program) to generate the full
rpm. Install it through old "rpm -Uvh" (or libary equalient) as it
normally would.

This way it will add very little complexity. No change to mirrors, no
change to rpm itself. Only a little change on the "master repo". A new
program on the client, a little change to yum to make it get the prpm's
instead of the full rpms, patch to generate full rpm, and install the
usual way.

Kyrre


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]
  Powered by Linux