deadlock detected - when multiple threads try to update one table
От | Harakiri |
---|---|
Тема | deadlock detected - when multiple threads try to update one table |
Дата | |
Msg-id | 20051202193354.17154.qmail@web52215.mail.yahoo.com обсуждение исходный текст |
Ответы |
Re: deadlock detected - when multiple threads try to update
|
Список | 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
В списке pgsql-general по дате отправления: