[Bug 13071] [PATCH] Transfer a resumed --partial-dir file in-place

samba-bugs at samba.org samba-bugs at samba.org
Fri May 1 15:49:58 UTC 2020


https://bugzilla.samba.org/show_bug.cgi?id=13071

--- Comment #10 from Ben RUBSON <ben.rubson at gmx.com> ---
Many thanks Wayne for the merge !

Your idea about trying to guess, when current transfer aborts, whether or not
the partial file will help for the next transfer more than the basis file,
sounds rather good.

But the heuristic might not be so easy.

There's almost no chance for a transfer to abort after having copied matching
data only (in this case we would simply discard the partial file).
As you said we would then have to consider amount of literal data.
If we discard a partial file containing literal data, we must be sure that, at
the end of the next transfer, we will not be in the same situation / we will
have made some progress. Otherwise there's the risk to loop again and again
with this same file.
And if we don't discard the partial file, because we think it contains enough
literal data, we will literally copy the rest of the file, whereas perhaps
almost of this data was in the basis file. Leading to longer transfer (up to
some nights instead of some minutes).
I think for example about huge files, where the total % of literal data is
rather small, but which takes time to copy. And of course this literal data
could be anywhere in the file, at the begining or at the end... This is the
extreme case I agree...

This is to address this sort of use case that I used both partial+basis in the
linked patch above.
It works fine, but implementation might not be the best one (especially with
its "dummy 0 blocks", might be avoided if sender properly knows that 2 basis
are used).
Of course this solution has drawbacks also, especially with huge files when
transfer is almost achieved. We will then checksum 2 huge files, which takes
time and resources.

-- 
You are receiving this mail because:
You are the QA Contact for the bug.



More information about the rsync mailing list