Hi Olivier, --- Olivier Fambon <[EMAIL PROTECTED]> wrote:
> Is it a hard requirement for you that row-level > locking is used ? Yes, it is very important to have a row level locking because there is a high volume of inserts in those tables... > > T3 (insert into table1) should grab the row lock > on > > table1 on a new record (not as T2 or T3) and then > > commit. But what is happening is T3 it waits for > > something and then we get the deadlock because T2 > > waits for T3 and viceversa... > > The "something" is T2. > > Sequoia does fancy things in such cases. T2 is > blocked in the db, but > holds the (sequoia pseudo) lock on table 1, which is > required by T3. > I am not sure abut this!!! In the following scenario: Begin T2 T2 - insert into table 1 Begin T3 T3 - insert into table 1 T3 - insert into table 1 Commit T3 T2 - insert into table 1 Commit T2 everything works fine with no deadlock (or even locks on table). How come in this scenario the T3 - insert into Table 1 is not locked by T2 - insert into Table 1??? This scenario is similar with the first one but I just removed the update statements. So after your explanation T3 in its first insert into table1 should be locked by T2 insert into table 1 and it is not. I am assuming that in the original scenario T3 - insert into Table1 is locked by T2 - update on Table2. So an insert into a table is locked by an update on another table??? Sorry but this it does not make any sense for me... Thank you, Ioana Danes __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com _______________________________________________ Sequoia mailing list [email protected] https://forge.continuent.org/mailman/listinfo/sequoia
