upvote
The delta-transfer algorithm [0] is about detecting which chunks of a file differ on source and target [1], and limiting the transfer to those chunks. The savings depend on how and where they differ, and ofcourse there's tradeoffs...

You seem to be referring to the selection of candidates of files to transfer (along several possible criteria like modification time, file size or file contents using checksumming) [2]

Rsync is great. However for huge filesystems (many files and directories) with relatively less change, you'll need to think about "assisting" it somewhat (by feeding it its candidates obtained in a more efficient way, using --files-from=). For example: in a renderfarm system you would have additions of files, not really updates. Keep a list of frames that have finished rendering (in a cinematic film production this could be eg. 10h/frame), and use it to feed rsync. Otherwise you'll be spending hours for rsync to build its index (both sides) over huge filesystems, instead of transferring relatively few big and new files.

In workloads where you have many sync candidates (files) that have a majority of differing chunks, it might be worth rather disabling the delta-transfer algorithm (--whole-file) and saving on the tradeoffs.

[0] https://www.andrew.cmu.edu/course/15-749/READINGS/required/c...

[1] https://en.wikipedia.org/wiki/Rsync#Determining_which_parts_...

[2] https://en.wikipedia.org/wiki/Rsync#Determining_which_files_...

reply
Rclone can "sync" with a range of different ways to check if the existing files are the same. If no hashes are available (e.g. WebDAV) I think you can set it to check by timestamp (with a tolerance) and size.

Edit: oh I see, delta transfer only sends the changed parts of files?

reply
It only sends the changed parts of files (the diffs) is my understanding which saves bandwidth.
reply
Does rclone not do that? I thought they were specifically naming themselves similarly because they also did that.
reply
My understanding is that rclone does not do true delta sync sending only the differing parts of files like rsync.
reply