Re: Understanding updates and deadlocks more clearly - Mailing list pgsql-admin

From David G. Johnston
Subject Re: Understanding updates and deadlocks more clearly
Date
Msg-id CAKFQuwa=H+t0Hk5+fCmfAwW1RPwHoRDUMavRO_OiuCLSrKQbpw@mail.gmail.com
Whole thread Raw
In response to Understanding updates and deadlocks more clearly  (Wells Oliver <wells.oliver@gmail.com>)
List 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 by date:

Previous
From: Wells Oliver
Date:
Subject: Understanding updates and deadlocks more clearly
Next
From: Ron
Date:
Subject: Re: Understanding updates and deadlocks more clearly