Re: srfs - a new file system.

Jan Harkes
2003-10-24T14:38:52Z

On Fri, Oct 24, 2003 at 11:21:38AM +0200, Nir Tzachar wrote:
> i think ur right, but even when u do succeed, lets take a more byzantine
> approach: what if the time service is down? sabotaged? damaged? maybe it
> lies through its teeth(ports) ?? maybe ur vector time is corrupted? maybe
> a user deliberately changed his vector time - he will bring havoc upon
> ur system .

Ever heard of lamport clocks?

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.

If a server has been off-line for a while, the version on it's files are
lower than those of files that were updated on the on-line servers. So
we see that it simply has an older version and we can (trivially)
resolve the conflict by forcing the new versions to the restored server.
This even works if the broken server had to be rebuilt from scratch and
has no data (i.e. all 'versions-vectors' are all zeros).

But we don't need to have a majority of the servers available to perform
successfull writes. It is just a different solution from yours, with
it's own unique limitations (limited length of the version vector limits
maximal replication factor).

Jan