Re: Understanding updates and deadlocks more clearly

Поиск
Список
Период
Сортировка
От David G. Johnston
Тема Re: Understanding updates and deadlocks more clearly
Дата
Msg-id CAKFQuwa=H+t0Hk5+fCmfAwW1RPwHoRDUMavRO_OiuCLSrKQbpw@mail.gmail.com
обсуждение исходный текст
Ответ на Understanding updates and deadlocks more clearly  (Wells Oliver <wells.oliver@gmail.com>)
Список pgsql-admin
On Friday, September 2, 2022, Wells Oliver <wells.oliver@gmail.com> wrote:
Hey folks: I want to clarify a few things about locks on updates:

1- can two processes update the same table if they are updating different rows?

2- in the event of two processes trying to update the same row, does this always result in a deadlock?

3- is there a way to create a system whereby potentially concurrent processes can update the same row in a given table, can the server be made to queue those updates, etc?

Is it just a no-go to try and have a situation where concurrent processes are trying to update the same record?
 

Processes wait to acquire the lock necessary for updating a row.  While they are waiting they still retain any locks they already hold.  Deadlock means someone who holds a lock you are waiting for presently is waiting for a lock that the first someone holds.  Thus they will wait forever unable to acquire the lock held by the other.

It thus requires trying to update at least two different records arrived at from different directions.

David J.

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

Предыдущее
От: Wells Oliver
Дата:
Сообщение: Understanding updates and deadlocks more clearly
Следующее
От: Ron
Дата:
Сообщение: Re: Understanding updates and deadlocks more clearly