Hi,
when using RSync for mirroring, the checksums of a file are calculated for each
transfer. But that
causes a lot of CPU/IO load on the server machine and degrades throughput even
if there's plenty
of network bandwidth. So I want to propose a pre-calculating feature for
checksums.
The easiest way would be to add a CLI-option like '--pre-checksum' to
RSync. That way RSync would
just calculate the checksums per file and per blocks and store them in (a) cache
file(s) in
non-daemon mode. In daemon mode RSync would just look for that cache file(s) to
avoid superfluous
load recalculating the checksums on each transfer. Pre-calculating the checksums
could also be set
in the RSync config file to make the RSync daemon calculating the checksums only
once.
That would also allow to use a weak machine as mirror server an pre-calculate
the checksums on
another machine (I use RSync on a home router with an fullspeed USB disk and
files of 2 GByte size
- calculating the checksums consumes hours without any transfer and I don't
wan't to keep a
standard PC running 24h hours a day because of power consumption. But that PC
could easily do
checksum pre-calculation before moving the files to the home router/USB-disk
combo).
But anyway, RSync is a great tool! ;)
Thanx
Renne