Hi,

when "SELECT .. WHERE .. FOR NO KEY UPDATE" is used synchronize access, and the transaction holding the lock completes, how does PostgreSQL decide /which one/ of multiple waiting transactions will the lock be granted to next?

In my testing (on Ubuntu 16.1-1.pgdg20.04+1, 64bit) with a real-world application (that acquires multiple locks on a number of relations) it seems that it is always the transaction that attempted to lock _last_ ... ? I thought that would most probably be random, or if it was not, the order would have been explained in the docs?


Thank you for any insights...
Best regards

        -hannes



Reply via email to