Re: How to make lazy VACUUM of one table run in several transactions ?

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: How to make lazy VACUUM of one table run in several transactions ?
Дата
Msg-id 18298.1115044719@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: How to make lazy VACUUM of one table run in several  (Hannu Krosing <hannu@tm.ee>)
Ответы Re: How to make lazy VACUUM of one table run in several  (Hannu Krosing <hannu@tm.ee>)
Список pgsql-hackers
Hannu Krosing <hannu@tm.ee> writes:
> A more general solution to the problem "VACUUM does not clean dead
> tuples fast enough due to an old transaction" problem is keeping the
> OldestXmin for each table separately as a list of table OIDs in each
> PGPROC. 

> This would be automatically extandable to long COPY, or in fact any
> single SQL statement running in its implicit transaction by examining
> the query plan and reserving all tables touched by the query and its
> dependencies. 

This is completely unworkable, since it amounts to assuming you know at
the start of a serializable transaction which tables it will touch.  In
point of fact you can't even know that for the current query let alone
future ones --- consider user-defined functions.

(Not to mention that we can't expect to fit that much info into a fixed
amount of shared memory.)
        regards, tom lane


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

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: Feature freeze date for 8.1
Следующее
От: Stephen Frost
Дата:
Сообщение: Re: Using LDAP for authorization