H
A compromise between "tarball on a webserver" and "rsync server" is
zsync: http://zsync.moria.org.uk/
"zsync is a file transfer program. It allows you to download a file from
a remote server, where you have a copy of an older version of the file
on your computer already. zsync downloads only the new parts of the
file. It uses the same algorithm as rsync. However, where rsync is
designed for synchronising data from one computer to another within an
organisation, zsync is designed for file distribution, with one file on
a server to be distributed to thousands of downloaders."
It seems like it would work really well, except that it would require
people to keep their old downloads; to efficiently upgrade to, say,
4.2.1, you would need the tarball from downloading 4.2.
It seems like a reasonable mix of regular file downloads and rsync.
Dan
--
--- Dan Drake
----- http://mathsci.kaist.ac.kr/~drake
-------
I just tested it, and using it should be super easy. Visit
http://sagenb.kaist.ac.kr/~drake/ and grab a tarball from there, say
sage-4.2.alpha0.tar. Install zsync, and then do
$ zsync -i sage-4.2.alpha0.tar http://sagenb.kaist.ac.kr/~drake/sage-4.2.tar.zsync
It will use the 4.2.alpha0 tarball as a source, then download the
necessary bits to give you a 4.2 tarball. If I'm reading the output
right, it used used 197 megabytes from the alpha0 tarball (so it
didn't download anything new) and only downloaded 74 megabytes. (Using
10^6 bytes = megabyte), so it only transferred about 27% of tarball
using nothing more than the webserver I am already running.
All you do is run "zsyncmake" on the file you want to efficiently serve
up. There are some options that I'll play with, but this could easily be
scripted. Then we have to educate users, which will likely be the harder
part if we want to use this.
William
--