Re: srfs - a new file system.

Nir Tzachar
2003-10-24T19:16:29Z

> Ever heard of lamport clocks?
i know them as vector clocks, but yes.

> A version vector is incremented on updates. So it doesn't matter whether
> I changed the file on Saturday and you changed it on Sunday, when we
> both return on Monday the system _will_ detect that both of us have a
> new version of the same original file and considers it a conflict. It is
> just another way of detecting version differences.

i know what ur talking about, but the model lamport uses does not fit
ours. lamport's vector clocks are not self-stabilizing, and a corrupted
vector (intentionally or un-intentionally) can break ur system.
[vector clocks are also not space bounded. (although there are some
solutions to this problem.)]

let me give u an example:
lets say, you connected ur laptop to the coda pool, worked on a file
locally, and then disconnected from the pool.
now, b4 reconnecting ur laptop to the pool, u accidently dropped it, and
ur hard disk got banged. as a result, some random bits on it changed,
and the saved vector clock, as well as the local counter and the file's
content, gets corrupted.
upon reconnection, the system will rightly decide ur version is the
correct one, and will push ur corrupted replica to all other servers.
you have broken system integrity.

there is a one to 10^gazillion chance of this happening, but this is
exactly what we're aiming at: dont take any chances (or prisoners).
if we dont agree on a file, nuke it. lets stay on the safe side.

--
========================================================================
nir.