Rsyncing really large files

Craig Barratt cbarratt at users.sourceforge.net
Tue Mar 1 07:09:43 GMT 2005


Lars Karlslund writes:

> Also the numbers speak for themselves, as the --whole-file option is
> *way* faster than the block-copy method on our setup.

At the risk of jumping into the middle of this thread without
remembering everything that was discussed...

Remember that by default rsync writes a new file and then renames that
file.  So a single byte change to a file requires a complete read and
write (plus the earlier read to generate the block checksums).

The --inplace option is more efficient in terms of disk IO, but the
drawback is that blocks earlier in the original file cannot be matched.
I haven't looked at the code, but I'm guessing --inplace still does
byte-by-byte matching.  An additional optimization for --inplace would
be to only try to match on multiples of the block size.

Also, the matching only proceeds byte-by-byte when there is no match.
Once a match is found then the entire block is skipped.  So on a file
with few changes, the byte-by-byte matching doesn't slow things down
very much.

Craig


More information about the rsync mailing list