Re: Further open item (Was: Status of 7.2)

Поиск
Список
Период
Сортировка
От Hannu Krosing
Тема Re: Further open item (Was: Status of 7.2)
Дата
Msg-id 3BF9756D.3090805@tm.ee
обсуждение исходный текст
Ответ на Re: Further open item (Was: Status of 7.2)  ("Tille, Andreas" <TilleA@rki.de>)
Список pgsql-hackers

Tom Lane wrote:

>Hannu Krosing <hannu@tm.ee> writes:
>
>>I'd propose a memory-only (or heavily cached) structure of tuple death 
>>transaction
>>ids for all transactions since the oldest live trx.
>>
>
>Seems like just a special-purpose reimplementation of disk pages sitting
>in shared buffers.  If you've got the memory to keep track of tuples
>you've killed recently, then you've probably got the memory to hold the
>pages they're in, so a redundant separate caching structure is not
>obviously a win.
>
I suspect that for even the border case of a table containing just 1 
CHAR(1) field the
above structure will be a lot smaller than the page cache for the same 
tuples.

>The possible win of marking index entries dead (once their tuple is
>known dead for all transactions) is that it saves visiting disk pages
>that have *not* been visited recently, and thus that aren't likely to
>be hanging around in buffers
>
>
>
>OTOH there are a lot of potential problems, most notably that
>is-the-tuple-dead-for-ALL-transactions is not the normal tuple time
>qual check, and so it'd represent extra overhead in indexscans.
>I'm also concerned about how to do it without introducing lots of
>ugly interactions (maybe even deadlocks) between the index access
>methods and the heap access code.
>
>If concurrent vacuuming turns out to be cheap enough, just running
>vacuum frequently might be a better answer than trying to push the
>maintenance work into the main line of execution.
>
What I proposed would have been mostly the job of concurrent vacuum
(marking/removing dead index tuples)

Perhaps it would be an overall win for fast changing (vs. fast-growing) 
databases if
we kept the tuple metainfo (attnum < 0) on separate (cache) pages, as it 
saves writes of
tmax updates on both UPDATE and DELETE.

If we kept them in a separate table as well that could make the metainfo 
"table"
essentially a kind of index. That table/index could of course be 
concealed inside
the main table by using typed data pages.

---------------
Hannu



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

Предыдущее
От: Hannu Krosing
Дата:
Сообщение: Re: OCTET_LENGTH is wrong
Следующее
От: Hannu Krosing
Дата:
Сообщение: Re: TOAST performance (was Re: [GENERAL] Delete Performance)