Re: PG_PAGE_LAYOUT_VERSION 5 - time for change

Поиск
Список
Период
Сортировка
От Zdenek Kotala
Тема Re: PG_PAGE_LAYOUT_VERSION 5 - time for change
Дата
Msg-id 490DF510.9010001@sun.com
обсуждение исходный текст
Ответ на Re: PG_PAGE_LAYOUT_VERSION 5 - time for change  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers
Tom Lane napsal(a):
> Heikki Linnakangas <heikki.linnakangas@enterprisedb.com> writes:
>> Hmm, you're right. I think it can be made to work by storing the *end* 
>> offset of each chunk. To find the chunk containing offset X, search for 
>> the first chunk with end_offset > X.
> 
> Yeah, that seems like it would work, and it would disentangle us
> altogether from needing a hard-wired chunk size.  The only downside is
> that it'd be a pain to convert in-place.  However, if we are also going
> to add identifying information to the toast chunks (like the owning
> column's number or datatype), then you could tell whether a toast chunk
> had been converted by checking t_natts.  So in principle a toast table
> could be converted a page at a time.  If the converted data didn't fit
> you could push one of the chunks out to some new page of the file.

Yeah it was, main intention. Problem is toast index, but It is common problem 
not only for toast tables.

> On the whole I like this a lot better than Zdenek's original proposal
> http://archives.postgresql.org/pgsql-hackers/2008-10/msg00556.php
> which didn't seem to me to solve much of anything.

Agree. This approach is much better. It add more complexity now for converting 
chunk from old to the new version. But it add a benefit - for example vacuum can 
remove data from dropped columns and so on.
    Zdenek

-- 
Zdenek Kotala              Sun Microsystems
Prague, Czech Republic     http://sun.com/postgresql



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

Предыдущее
От: "David Rowley"
Дата:
Сообщение: Re: Windowing Function Patch Review -> Performance Comparison.
Следующее
От: Heikki Linnakangas
Дата:
Сообщение: Re: [COMMITTERS] pgsql: Unite ReadBufferWithFork, ReadBufferWithStrategy, and