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/