Really, really... I must agree with you. But I still want to try suggesting another solution that does not depend on a single master. I don't like no much this idea of a master. ----- Original Message ----- From: "Peter B. Volk" <PeterB.Volk@xxxxxxx> To: <mysql-dde@xxxxxxxxxxxxx> Sent: Monday, December 12, 2005 1:01 PM Subject: [mysql-dde] Re: The mutual conflict problem > Ok I guess the list strips the images down: > > here are the links: > > www.inf.tu-dresden.de/~s7205538/dde/unique_management.jpg > www.inf.tu-dresden.de/~s7205538/dde/unique_management_sequenc.jpg > > Peter > ----- Original Message ----- > From: "Peter B. Volk" <PeterB.Volk@xxxxxxx> > To: <mysql-dde@xxxxxxxxxxxxx> > Sent: Monday, December 12, 2005 3:56 PM > Subject: [mysql-dde] Re: The mutual conflict problem > > >> Hey, >> Well I could be solved by having GI-Key Masters. I've added 2 diagramms >> to >> show a few details. >> >> Peter >> ----- Original Message ----- >> From: "Fabricio Mota" <fabricio.oliveira@xxxxxxxxxxxxxxxx> >> To: "dde" <mysql-dde@xxxxxxxxxxxxx> >> Sent: Monday, December 12, 2005 2:19 PM >> Subject: [mysql-dde] The mutual conflict problem >> >> >> > Hey Guy! >> > We have a problem with uniqueness management with any approach we use. >> That is: >> > >> > Suppose Clients C1 and C2, connected respectivelly through servers S1 > and >> S2. >> > Both clients try to insert a value k, into a unique-indexed column. >> Suppose they try to insert the value approximately during the same time. >> > >> > If we think about to validate global uniqueness among servers before to >> insert, then: >> > >> > 1 - C1 tries to insert it through S1 / at same time, C2 tries it >> > through >> S2. >> > 2 - S1 validates k / C1 locally. Uniqueness is ok. S2 validates k / C2 >> locally, too. Both are ok. >> > 3 - S1 request S2 about uniqueness of k. At aproximately the same time, > S2 >> request the same for S1. >> > 4a - if we consider a fully isolated transaction approach, then S1 will >> perform C1 command, and S2 will perform C2 command, too. That's an >> inconsistence! >> > 4b - if we consider the value k is shared during transactions, both >> servers will abort, because k is already there during remote validation, >> causing a mutual abort. >> > >> > If we think about to validate global uniqueness among servers after to >> insert, replicating global indexes, then: >> > >> > 1 - C1 tries to insert it through S1 / at same time, C2 tries it >> > through >> S2. >> > 2 - S1 validates k / C1 locally. Uniqueness is ok. S2 validates k / C2 >> locally, too. Both are ok. >> > 3 - S1 tries to sync S2 about its new value k. At aproximately the same >> time, S2 tries to sync S1, too. >> > 4a - if we consider a fully isolated transaction approach, then S1 will >> update S2 with its k, and S2 will update S1 with its own k, too. That's >> an >> inconsistence, again. >> > 4b - if we consider the value k is shared during transactions, both >> servers will abort, because k is already there during remote validation, >> causing a mutual abort. >> > >> > If we consider the hypothesis 4b, what criterion could be used for both >> server to agree in which transaction to abort? >> > >> > Or so, what could we do in respect to it? >> > >> > Fabricio Mota >> > Analista de Sistemas >> > FCPC - Divisão de Planejamento do Cadastro Comercial >> > MySql-DDE discussion list >> > www.freelists.org/ >> > >> >> >> >> >> MySql-DDE discussion list >> www.freelists.org/ >> > > MySql-DDE discussion list > www.freelists.org/ > > MySql-DDE discussion list www.freelists.org/