Re: TOAST usage setting

Zeugswetter Andreas DCP SD <zeugswettera@spardat.at>

From: "Zeugswetter Andreas ADI SD" <ZeugswetterA@spardat.at>
To: "Jim C. Nasby" <decibel@decibel.org>, "Bruce Momjian" <bruce@momjian.us>
Cc: "Gregory Stark" <stark@enterprisedb.com>, "Tom Lane" <tgl@sss.pgh.pa.us>, <pgsql-hackers@postgresql.org>
Date: 2007-06-05T09:41:36Z
Lists: pgsql-hackers
> > The big question is do we want to drop the target tuple  size down
to 
> > 512, and increase the chunk size to 8k for 8.3?  Dropping the tuple 
> > size down to 512 is going to give us some smaller TOAST values to
fill 
> > in free space created by the 8k chuck size, assuming you have both 
> > types of values in the table.  Do we want to increase the access
time 
> > of long TOAST by 6% if it means having more wasted space for lots of

> > 4.1k values?
> 
> If we do that people could see their disk space usage increase by up
to
> 16x: currently 513 bytes fits in heap and takes (roughly) 513 
> bytes;

No, you misunderstood. Bruce was suggesting changing the target to 512.
That means if a row is wider than ~2k, toaster will try to toast until
the base row is
~512 bytes. I would not do that part for 8.3. 

> if we make that change it would then get toasted and 
> take 8K. I don't think we want to do that. Disk space aside, 
> it's almost certain to seriously hurt performance as soon as 
> you don't fit entirely in memory.

No, allowing one toast chunk to fill a page does not mean that every
chunk uses a whole page. 

Andreas