The Samba-Bugzilla – Bug 13083
[PATCH] Use both partial file + basis file
Last modified: 2017-10-12 14:28:32 UTC
Created attachment 13681 [details]
Use both partial file + basis file
In case of a transfer restart, if a partial file has been kept on receiving side, this patch makes rsync to use the usual basis file (if found) in addition to the partial file to speed-up the transfer.
- if generator founds a partial file and a basis file, it will symlink the basis file next the the partial file ;
- generator will send checksums to the sender from both files, as if there were only one big basis file ;
- between the checksums of the 2 files, generator will send some dummy 0 checksums so that sender will see the second file's blocks as if they were after the end of the final file, thus sender will be able to fully use them, especially useful using --inplace ;
- receiver, if working on a partial file as basis file, will try to open the second basis file thanks to the symlink ;
- receiver, if asked to handle a checksum with an offset greater than the partial file's length, will take the corresponding block from the second basis file.
Compatible with all sender's versions, as modification only takes place on receiver side.
Fully compatible with the "allow --partial-dir with --inplace" patch :
Hope to see both in 3.1.3 :)
Of course feel free to comment !