Search Postgresql Archives

Re: Exclusive Locks Taken on User Tables?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Marc wrote:
Hi,

I'm seeing an "EXCLUSIVE" lock being taken on a table even though the
documentation says that "This lock mode is not automatically acquired on
user tables by any PostgreSQL command."

Hmm - are you sure?

My SQL is
UPDATE users SET online = $1 where username = $2

username is the PK on the users table.

Difficult to believe that's locking the whole table.

Other locks taken by the transaction are 1 RowExclusiveLock for the users
table and 1 RowExclusiveLock on each of the 6 explict indexes on that table
and another for the implicity users_pkey index.

Fair enough.

The result of these locks is that concurrent calls for the same statement
are being serialized because the ExclusiveLock being requested is not being
granted.

Doesn't sound right.

Are you sure your ExclusiveLock isn't on a "transactionid" rather than a "relation"? Every transaction has an exclusive lock on itself.

Are you sure subsequent transactions affecting that row aren't just waiting to see if the original commits? That's normal behaviour.

--
  Richard Huxton
  Archonet Ltd

---------------------------(end of broadcast)---------------------------
TIP 4: Have you searched our list archives?

              http://archives.postgresql.org/

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux