I am transferring a file from source computer C1 to destination computer D1 [ not within the same lan] using rsync. File A in C1(source) is an updated version of the file B in D1(destination). file A is 850mb while file B is 530 mb.
command used:
rsync -e "ssh -p 2222 -o StrictHostKeyChecking=no -o ConnectTimeout=10" -avvvz --stats --progress fileA.tar username@destIP:fileB.tar
here are the stats obtained:
hash search b=25600 len=899737600
Number of files: 1
Number of files transferred: 1
Total file size: 899737600 bytes
Total transferred file size: 899737600 bytes
Literal data: 709324800 bytes
Matched data: 190412800 bytes
File list size: 38
File list generation time: 0.001 seconds
File list transfer time: 0.000 seconds
Total bytes sent: 617865859
Total bytes received: 153142
sent 617865859 bytes received 153142 bytes 3501524.08 bytes/sec
total size is 899737600 speedup is 1.46
data sent - 617865859 bytes (590mb approx)
According to rsync's delta algorithm only the difference of 320 mb should be transferred along with extra bytes for checksum and instructions to bring all the transferred data together. But a total of 590mb is being transferred. Why is there an additional 270mb transferred?
Is this additional data transfer because of extra data passed as rsync instruction or checksum , or is there transfer of additional data from file A apart from the difference of 320mb - which means the delta algorithm is not very efficient in this case ?
rsyncassumes that the files are blockwise identical. If you have many minor changes spread all over the file, the difference may be small, but the algorithm won't find matching blocks. You may optimize efficiency by a lower--block-szein this case.--debug=DELTASUM4.