Zeugswetter Andreas ADI SD wrote:
> 
> > > 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. 

OK, what do you suggest for 8.3?  Attached are my suggestion to use 512
and a 4k chunk size, which I think means that 2.7k is the worst values
that has a loss of around 25%.

-- 
  Bruce Momjian  <[EMAIL PROTECTED]>          http://momjian.us
  EnterpriseDB                               http://www.enterprisedb.com

  + If your life is a hard drive, Christ can be your backup. +
Index: src/include/access/tuptoaster.h
===================================================================
RCS file: /cvsroot/pgsql/src/include/access/tuptoaster.h,v
retrieving revision 1.35
diff -c -c -r1.35 tuptoaster.h
*** src/include/access/tuptoaster.h	6 Apr 2007 04:21:43 -0000	1.35
--- src/include/access/tuptoaster.h	2 Jun 2007 02:52:22 -0000
***************
*** 42,48 ****
   * given to needs_toast_table() in toasting.c before unleashing random
   * changes.
   */
! #define TOAST_TUPLES_PER_PAGE	4
  
  /* Note: sizeof(PageHeaderData) includes the first ItemId on the page */
  #define TOAST_TUPLE_THRESHOLD	\
--- 42,48 ----
   * given to needs_toast_table() in toasting.c before unleashing random
   * changes.
   */
! #define TOAST_TUPLES_PER_PAGE	16
  
  /* Note: sizeof(PageHeaderData) includes the first ItemId on the page */
  #define TOAST_TUPLE_THRESHOLD	\
***************
*** 69,75 ****
   *
   * NB: Changing TOAST_MAX_CHUNK_SIZE requires an initdb.
   */
! #define EXTERN_TUPLES_PER_PAGE	4				/* tweak only this */
  
  /* Note: sizeof(PageHeaderData) includes the first ItemId on the page */
  #define EXTERN_TUPLE_MAX_SIZE	\
--- 69,75 ----
   *
   * NB: Changing TOAST_MAX_CHUNK_SIZE requires an initdb.
   */
! #define EXTERN_TUPLES_PER_PAGE	2				/* tweak only this */
  
  /* Note: sizeof(PageHeaderData) includes the first ItemId on the page */
  #define EXTERN_TUPLE_MAX_SIZE	\
---------------------------(end of broadcast)---------------------------
TIP 4: Have you searched our list archives?

               http://archives.postgresql.org

Reply via email to