Re: row level lock and table level locks

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: row level lock and table level locks
Дата
Msg-id 17296.1063074815@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: row level lock and table level locks  ("Jenny -" <nat_lazy@hotmail.com>)
Список pgsql-hackers
"Jenny -" <nat_lazy@hotmail.com> writes:
>> TupleTables are just temporary data structures to hold transiently
>> created tuples during execution of a query.  There's usually one for
>> each plan node.

> The TupleTable will exist for the query from the point the query is made 
> untill the transaction is committed? or does the TupleTable go away as soon 
> as query is finished executing?

It goes away as soon as the query finishes.

My answer above was mistaken --- plan nodes usually allocate slots in a
single TupleTable created (and destroyed) by execMain.c, rather than
each having their own TupleTable.  But it's still a query-lifetime data
structure.

> I would think the TupleTable for that query is held untill the transaction 
> is committed since lock on the tuple is endtill the end of transaction

You keep looking for nonexistent locks on tuples ...

The only resources represented by a TupleTable entry are memory for
a transient tuple (if we rewrote the system today, we'd forget that
function, since short-term memory contexts can do the job better)
or a buffer pin for a tuple that's sitting in a shared disk buffer.
There is no reason to hold a buffer pin beyond the time that the tuple
might actually be referenced by the query plan.
        regards, tom lane


В списке pgsql-hackers по дате отправления:

Предыдущее
От: "Jenny -"
Дата:
Сообщение: Re: row level lock and table level locks
Следующее
От: Bruce Momjian
Дата:
Сообщение: Maximum table size