Re: [HACKERS] tablelevel and rowlevel locks

From: Alvaro Herrera Munoz <alvherre(at)dcc(dot)uchile(dot)cl>
To: Jenny - <nat_lazy(at)hotmail(dot)com>
Cc: pgsql-general(at)postgresql(dot)org, pgsql-hackers(at)postgresql(dot)org
Subject: Re: [HACKERS] tablelevel and rowlevel locks
Date: 2003-09-04 19:11:19
Message-ID: 20030904191119.GI15428@dcc.uchile.cl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general pgsql-hackers

On Thu, Sep 04, 2003 at 11:21:05AM -0700, Jenny - wrote:

> >I think the locks would actually by represented by PROCLOCK structures.
> >The LOCK structures are for lockable objects, not for actual locks.
>
> Well,from what i understand, PROCLOCK stores the TransactionID and the LOCK
> its holding lock on ,so how would PROCLOCK be holding the 'actual' lock as
> apposed to the lockable objects?

Huh... look at http://developer.postgresql.org/pdf/internalpics.pdf pages 61 and 63.
Maybe it's clearer than whatever I can say. Note that "HOLDER" has been renamed
to "PROCLOCK".

Anyway, I think the LOCK structure represents something that can be locked.
The PROCLOCK struct represents that some process is holding a lock on said
object. That may be the reason why you are seeing that a lock is held by more
than one process at the same time (while in fact some of them are probably
_waiting_ for the lock).

--
Alvaro Herrera (<alvherre[(at)]dcc(dot)uchile(dot)cl>)
"I dream about dreams about dreams", sang the nightingale
under the pale moon (Sandman)

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Jan Wieck 2003-09-04 19:24:21 Re: how to call a TCL function from within a plpgsql trigger?
Previous Message Edwin Quijada 2003-09-04 19:08:40 Re: Activate Index

Browse pgsql-hackers by date

  From Date Subject
Next Message Andrew Dunstan 2003-09-04 19:13:08 Re: TCP/IP with 7.4 beta2 broken?
Previous Message Marc G. Fournier 2003-09-04 18:56:21 Re: PG7.5