how to avoid deadlock on masive update with multiples delete

Поиск
Список
Период
Сортировка
От Anibal David Acosta
Тема how to avoid deadlock on masive update with multiples delete
Дата
Msg-id 005701cda238$ba4d0350$2ee709f0$@devshock.com
обсуждение исходный текст
Ответы Re: how to avoid deadlock on masive update with multiples delete  (Jeff Janes <jeff.janes@gmail.com>)
Re: how to avoid deadlock on masive update with multiples delete  (Igor Neyman <ineyman@perceptron.com>)
Список pgsql-performance

Hi,

I have a table with about 10 millions of records, this table is update and inserted very often during the day (approx. 200 per second) , in the night the activity is a lot less, so in the first seconds of a day (00:00:01) a batch process update  some columns (used like counters) of this table setting his value to 0.

 

Yesterday, the first time it occurs, I got a deadlock when other process try to delete multiple (about 10 or 20) rows of the same table.

 

I think that maybe the situation was:

 

Process A (PA) (massive update)

Process B (PB) (multiple delete)

 

PA Block record 1, update

PA Block record 2, update

PA Block record 3, update

PB Block record 4, delete

PB Block record 5, delete

PA Block record 4, waiting

PB Block record 3, waiting

 

The other situation could be that update process while blocking rows scale to block page and the try to scale to lock table while the delete process as some locked rows.

 

Any ideas how to prevent this situation?

 

Thanks!

В списке pgsql-performance по дате отправления:

Предыдущее
От: Jeff Janes
Дата:
Сообщение: Re: Inserts in 'big' table slowing down the database
Следующее
От: Jeff Janes
Дата:
Сообщение: Re: how to avoid deadlock on masive update with multiples delete