On Fri, Jul 15, 2011 at 01:13, Scott Marlowe <scott.marl...@gmail.com>wrote:
> On Wed, Jul 13, 2011 at 9:47 PM, Tony Wang <www...@gmail.com> wrote: > > On Thu, Jul 14, 2011 at 10:35, John R Pierce <pie...@hogranch.com> > wrote: > > It's a game server, and the queries are updating users' money, as normal. > > The sql is like "UPDATE player SET money = money + 100 where id = 12345". > > The locks were RowExclusiveLock for the table "player" and the indexes. > The > > weird thing is there was another ExclusiveLock for the table "player", > i.e. > > "player" got two locks, one RowExclusiveLock and one ExclusiveLock. > > In the postgresql documentation > > (http://www.postgresql.org/docs/8.4/static/explicit-locking.html), it's > said > > about the Exclusive "This lock mode is not automatically acquired on > user > > tables by any PostgreSQL command." > > You need to figure out what part of your app, or maybe a rogue > developer etc is throwing an exclusive lock. > Yeah, that's what I'm trying to do