Re: selecting a random record

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: selecting a random record
Дата
Msg-id 26586.981506519@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: selecting a random record  (Warren Vanichuk <pyber@street-light.com>)
Ответы Re: Deadlock issues (was: Re: [GENERAL] selecting a random record)
Список pgsql-general
Warren Vanichuk <pyber@street-light.com> writes:
> I have a smallish sized database that's getting alot of update transactions
> to it.  It's been running fine over the past several weeks, but suddenly I'm
> starting to see :

> NOTICE:  Deadlock detected -- See the lock(l) manual page for a possible cause.

You've probably added another function that updates the same rows in a
different, conflicting order.  For example, suppose you have two
transactions, one of which does

    UPDATE table SET f1 = 42 WHERE id = 'foo';

while the other is doing

    UPDATE table SET f1 = 23 WHERE id = 'bar';

This is fine, but now suppose the first one does

    UPDATE table SET f2 = 11 WHERE id = 'bar';

It's got to wait to see if the second one commits or not, to know which
version of the 'bar' row is relevant and should be updated.  Finally,
suppose the second transaction does

    UPDATE table SET f2 = 22 WHERE id = 'foo';

Now you have two transactions waiting for each other --- ie, deadlock.

            regards, tom lane

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

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: pg_dump crash
Следующее
От: Stephan Szabo
Дата:
Сообщение: Re: Select in function?