<hru...@gmail.com> wrote:

> Does rsync suppose that a part of a file in the server is equal to
> a part of a file in the client, if a hash value of these parts are
> equal?

Yes.

> Does cvsync do the same?

(Embarrassingly, I don't actually remember how cvsync works in
detail.)

> Is this reliable?

In practice, yes.

If you reduce 2^n bit chunks of data to 2^m bit hash values, with
n > m, there will always be collisions, i.e., chunks of data that
are different but have the same hash value.  However, the likelihood
of such a collision can be made very, very small.

Also, you can never transmit data with perfect reliability over an
unreliable channel.  With increasing effort you can make the
probability of an undetected error arbitrarily small, but you can
never reduce it to nothing.

I will point out that the respective probabilities of data bits
being corrupted on disk, in memory, on the various buses, or even
inside the processor, are all non-zero.  I don't have good figures
at hand, but you'll need scientific notation to express how much
more likely these events are than collisions for a 128-bit hash.

(HGST, for instance, tells me that for their latest 4TB drives the
error rate (non-recoverable, bits read) is 1 in 10^15.)

> Is there a reliable way to make a local copy of the repository and
> update it from time to time

Yes, that's exactly what cvsync is for.

-- 
Christian "naddy" Weisgerber                          na...@mips.inka.de

Reply via email to