Re: foreign key introduces unnecessary locking ?

From: Stephan Szabo <sszabo(at)megazone23(dot)bigpanda(dot)com>
To: Rini Dutta <rinid(at)rocketmail(dot)com>
Cc: pgsql-sql(at)hub(dot)org, pgsql-hackers(at)hub(dot)org
Subject: Re: foreign key introduces unnecessary locking ?
Date: 2000-10-09 23:27:32
Message-ID: Pine.BSF.4.10.10010091622270.21346-100000@megazone23.bigpanda.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers pgsql-sql

On Mon, 2 Oct 2000, Rini Dutta wrote:

> When two tables (table2 and table3) have foreign keys
> referring to a common table(table1), I am unable to
> have 2 concurrent transactions - one performing insert
> on table1 and the other on table2, when the records
> being inserted have the same foreign key.
>
> If I use JDBC, one of the transactions aborts.
> If I open 2 psql sessions and try the same, one just
> waits and does not show the prompt until the other
> transaction has been committed or aborted.
>
> For example,
> create table tmp1(idx int4, data int4);
> create table tmp2(idx2 int4, col2 int4, constraint
> tmpcon2 foreign key(col2) references tmp1(idx));
> create table tmp3(idx3 int4, col3 int4, constraint
> tmpcon3 foreign key(col3) references tmp1(idx));
> insert into tmp1 values(1, 1);
>
> Transaction 1 :
> begin work;
> insert into tmp2 values(2, 1);
>
> Transaction2 :
> begin work;
> insert into tmp3 values(3,1);
>
> Since such transactions are common for me, for the
> time-being I have dropped the foreign key constraint.
> Any ideas ?

Each is attempting to grab row locks on tmp1 to prevent
the rows from going away while we're testing the
references. The second transaction is waiting for the row
lock to go away so that it can do its row lock.
I'm not sure why its failing in JDBC though.

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Vince Vielhaber 2000-10-09 23:29:33 Re: Announcing PgSQL - a Python DB-API 2.0 compliant interface to PostgreSQL
Previous Message Bruce Momjian 2000-10-09 23:22:13 Re: ALTER TABLE DROP COLUMN

Browse pgsql-sql by date

  From Date Subject
Next Message Bruce Momjian 2000-10-09 23:30:47 Re: OID Perfomance - Object-Relational databases
Previous Message Mikheev, Vadim 2000-10-09 23:11:04 RE: foreign key introduces unnecessary locking ?