Coda File System

Re: New troubles in coda land

From: Jan Harkes <jaharkes_at_cs.cmu.edu>
Date: Tue, 5 Jul 2005 12:57:54 -0400
On Tue, Jul 05, 2005 at 09:33:50AM -0600, Patrick Walsh wrote:
> 	Huh.  OK, thanks for explaining how this works.  I don't suppose we
> could then auto-resolve again so that we wound up with this:
> 
> 		server1		server2
>  Initial state	[0 0]		[0 0]
>  Store foo	[1 0]		[0 1]
>  Resolve	[1 1]		[1 1]
>  COP2		[1 2]		[2 1]
>  Resolve	[2 2]		[2 2]
> 
> ?

Yes, resolution would fix the problem. However, the COP2 doesn't
generate a callback message. So there is no reason for clients to
refetch the attributes and as a result, the conflict isn't detected
until it is too late.

And because all your clients are probably fairly synchronized in the
accesses (cronjob?) they probably all refreshed their cached data within
that same 15 second window between the store and the cop2 messages where
the resolve occurred. The first client would trigger the resolve, and
everyone would have gotten the attributes with the [1 1] version vector.

Now is a client happened to not have this file cached, or was
disconnected, it would fetch or revalidate the object, notice the
conflict, and trigger the second resolve. But we can't rely on that.

Jan
Received on 2005-07-05 12:58:58