Tom Lane napsal(a):
Zdenek Kotala <[EMAIL PROTECTED]> writes:
Bacause MAX_TOAST_CHUNK_SIZE is related on page layout version I need have toast chunk size more flexible.

Attached patch add three new columns into pg_class

relblocksize - which is always BLCKSZ. I put it there for fullness, but i could be use in future development to specify different BLCKSZ per relation.

relsegsize - currently it is always RELSEG_FILE. I performed basic adjustment in smgr.c and md.c. Now only smgropen contains reference to RELSEG_FILE. The problem how to do it fully dynamic is how to pass information rel_rd->relsegsize down into smgropen. One idea is to extend relfilenode, but I'm not sure about it.

relmaxitemsize - it is set to TOAST_MAX_CHUNK_SIZE. Other relation has this value set to zero for now. toast functions are fully aware about this setting and use it. This column will be convert to int2vector during pg_upgrade development (I need to track information for each page version).

There is not one of these things that we have any intention of being
allowed to vary on a per-relation basis.  Why don't you read them out of
pg_control?

The problem what I need to solve is how to handle different TOAST chunk size which becomes with upgrade. if you insert new record into TOAST table it will be created on the new page which has different max chunk size, because it depends on page header size. It means that one TOAST table will have more chunk size. Use old value from previous version is possible but it could invoke waste of space in situation when pageheader in a new version is bigger.

Another solution is to take first chunk size and say - it is max chunk size.

Relsegsize is related to tablespace but when you upgrade you could want to use new size for new tables. But it is not important for pg_upgrade project.

Blocksize is more nice to have int this moment, but It makes me sense to have different block size for toast table and heap. I know that this idea requires lot of changes including buffer cache and so on.

        Zdenek

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


--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to