(Illustration by Gaich Muramatsu)
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. JanReceived on 2007-02-18 10:27:12