<msalais@msym.fr> writes:
> But my concern here is really to understand in which situations, a COMMIT
> statement can wait on a lock especially that I have no triggers, and no
> deferrable constraints...
The core code does nothing with advisory locks. If COMMIT is blocking
on one of those, it must be a consequence of user-defined code that
is running at pre-commit time. You've given us nothing to go on about
what that could be.
> By the way I also have commits which are waiting on ClientRead...
That, on the other hand, is surely impossible. I think maybe you
are misreading the stats display. Typically I'd expect that such a
case indicates that the session is idle (awaiting a new command)
and the COMMIT is the last thing it did before that.
regards, tom lane