Coda File System

Re: Reintegration question

From: Jan Harkes <jaharkes_at_cs.cmu.edu>
Date: Sun, 18 Feb 2007 10:25:30 -0500
On Sun, Feb 18, 2007 at 04:46:30PM +0100, Davor Ocelic wrote:
> What currently happens in Coda when the following occurs:
> 
> a) Client A and client B retrieve the same file from Coda server
> b) Both clients get disconnected
> c) File is modified on both client A and client B
> d) Client's reconnect
> 
> Does one modification get lost, or is this situation 
> detected as some kind of a conflict?

When a client caches a file it stores the version vector (V) of the
cached object. This is sent back along with the reintegration. If client
A reconnects first it's reintegration will succeed because the version
vector on the server will match that of the client. The reintegration
will then update the version on the server to V'. Then when client B
tries to reintegrate the version vectors no longer match, so the
reintegration will fail and client B marks the object as a conflict
(local-global or reintegration conflict).

Because we always reintegrate the local changes in the same order as
they are creates, the conflict will block further reintegration until
it is resolved.

Jan
Received on 2007-02-18 10:27:12