From: | Harakiri <harakiri_23(at)yahoo(dot)com> |
---|---|
To: | pgsql-general(at)postgresql(dot)org |
Subject: | deadlock detected - when multiple threads try to update one table |
Date: | 2005-12-02 19:33:53 |
Message-ID: | 20051202193354.17154.qmail@web52215.mail.yahoo.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Hello,
im using postgresql 8 under SLES 9 and RH 3.x - under
both OS i encountered the following problem :
Lets say i have a table, which has no reference to any
other table - and i create one entry for each day of
the year within this table (PK). During a day, i
update the values within that specific entry - this
entry will be updated from multiple threads.
Under a higher load, i get a message from postgresql
"deadlock detected" - im using JDBC to update/query
postgresql.
However, i do not understand why i would get a
"deadlock detected" error message because i only
INCREASE the values of the fields - i do not overwrite
them - my statement simplified looks like this :
update mytable set field1 = field1 + 1, field2 =
field2 + 4200 where pkDate = someDate
Now, multiple threads with a connection pool are
connecting to postgres - and i can reproduce the
deadlock problem when i use a test class which starts
1000 threads to update this table.
Increasing the value of deadlock_timeout helps a bit -
but solves not the problem - because i think there
should not be a problem at all - the transaction
management of postgres should be able to handle two or
more threads which only want to increase the value o f
specific fields - like in programming i++;
Releated Questions
a) Is there another way to increase field values
within postgres other then field = field + MY_VALUE
b) Is it a problem with postgresql or is it my code ?
Thanks
__________________________________________
Yahoo! DSL Something to write home about.
Just $16.99/mo. or less.
dsl.yahoo.com
From | Date | Subject | |
---|---|---|---|
Next Message | Stephan Szabo | 2005-12-02 19:40:16 | Re: deadlock detected - when multiple threads try to update |
Previous Message | P G | 2005-12-02 19:29:38 | Re: How: single db, multiple users |