Re: obtaining row locking information - Mailing list pgsql-hackers

From Tom Lane
Subject Re: obtaining row locking information
Date
Msg-id 28118.1123511172@sss.pgh.pa.us
Whole thread Raw
In response to Re: obtaining row locking information  (Tatsuo Ishii <t-ishii@sra.co.jp>)
Responses Re: obtaining row locking information
Re: obtaining row locking information
List pgsql-hackers
Tatsuo Ishii <t-ishii@sra.co.jp> writes:
> If I understand correctly, it seems the above method does show a
> locked row's TID which does not block someone else. That is a little
> bit different from what I expcted.

Well, it *could* be blocking someone else.  If there were more than one
waiter for the same tuple, one of them would be holding the tuple lock
(and blocked on the transaction ID of the actual holder of the tuple),
and the other ones would be blocked on the first waiter's tuple lock.
We put this in so that the full lock manager rules would be used to
arbitrate conflicts between shared and exclusive lockers of a tuple.
The tuple lock is being used to manage the grant order and ensure that
a would-be exclusive locker doesn't get "starved out" indefinitely if
there is a continuous chain of shared-lock requests.  See the notes in
heap_lock_tuple().
        regards, tom lane


pgsql-hackers by date:

Previous
From: "Mark Woodward"
Date:
Subject: Re: shrinking the postgresql.conf
Next
From: Tatsuo Ishii
Date:
Subject: Re: obtaining row locking information