Give VACUUM its own GUC parameter for memory usage, rather than
authorTom Lane
Fri, 21 Sep 2001 03:32:36 +0000 (03:32 +0000)
committerTom Lane
Fri, 21 Sep 2001 03:32:36 +0000 (03:32 +0000)
piggybacking on SortMem.  Add documentation for some recently-added
GUC parameters that had so far escaped it.

doc/src/sgml/runtime.sgml
src/backend/commands/vacuumlazy.c
src/backend/utils/init/globals.c
src/backend/utils/misc/guc.c
src/backend/utils/misc/postgresql.conf.sample
src/bin/psql/tab-complete.c
src/include/miscadmin.h

index eef78e17a35eee294017f4e6a7c29c0c759c1e5f..55034494dcb60a208ecd522255dc1e2125c7c1df 100644 (file)
@@ -1,5 +1,5 @@
 
 
 
@@ -780,6 +780,45 @@ env PGOPTIONS='-c geqo=off' psql
 
    
     
+     
+      COLLECT_STARTCOLLECTOR (boolean)
+      
+       
+        Controls whether the postmaster should start the statistics-collection
+   subprocess.  This is on by default, but may be turned off if you
+   know you have no interest in collecting statistics.  This option
+   can only be set at postmaster start.
+       
+      
+     
+
+     
+      COLLECT_RESETONPMSTART (boolean)
+      
+       
+        If on, collected statistics are zeroed out whenever the postmaster
+   is restarted.  If off, statistics are accumulated across postmaster
+   restarts.  The default is on.  This option
+   can only be set at postmaster start.
+       
+      
+     
+
+     
+      COLLECT_QUERYSTRING (boolean)
+      COLLECT_BLOCKLEVEL (boolean)
+      COLLECT_TUPLELEVEL (boolean)
+      
+       
+        These flags determine what information backends send to the statistics
+   collector process: current queries, block-level activity statistics,
+   or tuple-level activity statistics.  All default to off.  Enabling
+   statistics collection costs a small amount of time per query, but
+   is invaluable for debugging and performance tuning.
+       
+      
+     
+
      
       DEBUG_ASSERTIONS (boolean)
       
@@ -1013,7 +1052,7 @@ env PGOPTIONS='-c geqo=off' psql
        transaction isolation level
       
 
-      DEFAUL_TRANSACTION_ISOLATION (string)
+      DEFAULT_TRANSACTION_ISOLATION (string)
       
        
         Each SQL transaction has an isolation level, which can be
@@ -1201,6 +1240,19 @@ dynamic_library_path = '/usr/local/lib/postgresql:/home/my_project/lib:$libdir'
       
      
 
+     
+      PASSWORD_ENCRYPTION (boolean)
+      
+       
+        When a password is specified in CREATE USER or
+   ALTER USER without writing either ENCRYPTED or
+   UNENCRYPTED, this flag determines whether the password is encrypted.
+   The default is off (do not encrypt the password), but this choice
+   may change in a future release.
+       
+      
+     
+
      
       TRANSFORM_NULL_EQUALS (boolean)
       
@@ -1285,7 +1337,7 @@ dynamic_library_path = '/usr/local/lib/postgresql:/home/my_project/lib:$libdir'
       
        
    Specifies the amount of memory to be used by internal sorts
-   and hashes before resorting to temporary disk files. The value
+   and hashes before switching to temporary disk files. The value
    is specified in kilobytes, and defaults to 512 kilobytes. Note
    that for a complex query, several sorts and/or hashes might be
    running in parallel, and each one will be allowed to use as
@@ -1403,6 +1455,19 @@ dynamic_library_path = '/usr/local/lib/postgresql:/home/my_project/lib:$libdir'
       
      
 
+     
+      VACUUM_MEM (integer)
+      
+       
+   Specifies the maximum amount of memory to be used by
+   VACUUM to keep track of to-be-reclaimed tuples.
+   The value is specified in kilobytes, and defaults to 8192 kilobytes.
+   Larger settings may improve the speed of vacuuming large tables
+   that have many deleted tuples.
+       
+      
+     
+
      
       VIRTUAL_HOST (string)
       
index 8351da5e7dfde8da3a2885fd1206b05e51c2656a..3685217fb79e3e9704983502edcfbeefeb453a31 100644 (file)
@@ -10,7 +10,7 @@
  * relations with finite memory space usage.  To do that, we set upper bounds
  * on the number of tuples and pages we will keep track of at once.
  *
- * We are willing to use at most SortMem memory space to keep track of
+ * We are willing to use at most VacuumMem memory space to keep track of
  * dead tuples.  We initially allocate an array of TIDs of that size.
  * If the array threatens to overflow, we suspend the heap scan phase
  * and perform a pass of index cleanup and page compaction, then resume
@@ -31,7 +31,7 @@
  *
  *
  * IDENTIFICATION
- *   $Header: /cvsroot/pgsql/src/backend/commands/vacuumlazy.c,v 1.6 2001/09/04 19:12:05 tgl Exp $
+ *   $Header: /cvsroot/pgsql/src/backend/commands/vacuumlazy.c,v 1.7 2001/09/21 03:32:35 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -865,8 +865,6 @@ count_nondeletable_pages(Relation onerel, LVRelStats *vacrelstats)
  * lazy_space_alloc - space allocation decisions for lazy vacuum
  *
  * See the comments at the head of this file for rationale.
- *
- * XXX Should we have our own GUC parameter, instead of using SortMem?
  */
 static void
 lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks)
@@ -874,8 +872,8 @@ lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks)
    int         maxtuples;
    int         maxpages;
 
-   maxtuples = (int) ((SortMem * 1024L) / sizeof(ItemPointerData));
-   /* stay sane if small SortMem */
+   maxtuples = (int) ((VacuumMem * 1024L) / sizeof(ItemPointerData));
+   /* stay sane if small VacuumMem */
    if (maxtuples < MAX_TUPLES_PER_PAGE)
        maxtuples = MAX_TUPLES_PER_PAGE;
 
@@ -910,7 +908,7 @@ lazy_record_dead_tuple(LVRelStats *vacrelstats,
 {
    /*
     * The array shouldn't overflow under normal behavior,
-    * but perhaps it could if we are given a really small SortMem.
+    * but perhaps it could if we are given a really small VacuumMem.
     * In that case, just forget the last few tuples.
     */
    if (vacrelstats->num_dead_tuples < vacrelstats->max_dead_tuples)
index 935340ea01d8ea2d612ad0c1a5cfa4d5e7613304..3a5ddee7bbf480a829d1ce671fca888995853a8b 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $Header: /cvsroot/pgsql/src/backend/utils/init/globals.c,v 1.59 2001/08/25 18:52:42 tgl Exp $
+ *   $Header: /cvsroot/pgsql/src/backend/utils/init/globals.c,v 1.60 2001/09/21 03:32:35 tgl Exp $
  *
  * NOTES
  *   Globals used all over the place should be declared here and not
@@ -82,6 +82,7 @@ char      FloatFormat[20] = "%f";
 bool       enableFsync = true;
 bool       allowSystemTableMods = false;
 int            SortMem = 512;
+int            VacuumMem = 8192;
 int            NBuffers = DEF_NBUFFERS;
 
 
index ebb7745347eb124e27d2a8a80f8895a1d94c3736..5a5dcac47a60decc8f9ee702f83a101e4f63617e 100644 (file)
@@ -4,7 +4,7 @@
  * Support for grand unified configuration scheme, including SET
  * command, configuration file, and command line options.
  *
- * $Header: /cvsroot/pgsql/src/backend/utils/misc/guc.c,v 1.49 2001/09/20 14:20:27 petere Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/misc/guc.c,v 1.50 2001/09/21 03:32:35 tgl Exp $
  *
  * Copyright 2000 by PostgreSQL Global Development Group
  * Written by Peter Eisentraut .
@@ -176,12 +176,11 @@ struct config_string
  *
  * 4. Add a record below.
  *
- * 5. Add it to postgresql.conf.sample
+ * 5. Add it to src/backend/utils/misc/postgresql.conf.sample.
  *
- * 6. Don't forget to document that option.
- *
- * WHEN MAKING MODIFICATIONS, remember to update postgresql.conf.sample
+ * 6. Add it to src/bin/psql/tab-complete.c, if it's a USERSET option.
  *
+ * 7. Don't forget to document the option.
  */
 
 
@@ -298,6 +297,9 @@ static struct config_int
    {"sort_mem", PGC_USERSET, &SortMem,
    512, 4*BLCKSZ/1024, INT_MAX, NULL, NULL},
 
+   {"vacuum_mem", PGC_USERSET, &VacuumMem,
+   8192, 1024, INT_MAX, NULL, NULL},
+
    {"debug_level", PGC_USERSET, &DebugLvl,
    0, 0, 16, NULL, NULL},
 
index 8faf8304ebadb2331f17466dddc4c6fc97ea4906..c39e31d7483b3c977d65f4a51c5e4cb97ba59f05 100644 (file)
@@ -53,7 +53,8 @@
 #
 #  Performance
 #
-#sort_mem = 512
+#sort_mem = 512             # min 32
+#vacuum_mem = 8192          # min 1024
 #fsync = true
 
 
 #
 #  Misc
 #
+#dynamic_library_path = '$libdir'
 #australian_timezones = false
 #deadlock_timeout = 1000
 #default_transaction_isolation = 'read committed'
 #max_expr_depth = 10000 # min 10
 #password_encryption = false
 #sql_inheritance = true
-
+#transform_null_equals = false
index bbc09a599cea72497ff74ed7c8f17d75188b8a89..c76d9c807a210306497397133b52c2cce49d47cf 100644 (file)
@@ -3,7 +3,7 @@
  *
  * Copyright 2000 by PostgreSQL Global Development Group
  *
- * $Header: /cvsroot/pgsql/src/bin/psql/tab-complete.c,v 1.37 2001/09/07 01:24:18 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/bin/psql/tab-complete.c,v 1.38 2001/09/21 03:32:36 tgl Exp $
  */
 
 /*----------------------------------------------------------------------
@@ -226,8 +226,8 @@ psql_completion(char *text, int start, int end)
        "enable_nestloop",
        "enable_mergejoin",
        "enable_hashjoin",
-       "geqo",
        "ksqo",
+       "geqo",
        "fsync",
        "debug_assertions",
        "debug_print_query",
@@ -241,6 +241,9 @@ psql_completion(char *text, int start, int end)
        "show_query_stats",
        "trace_notify",
        "sql_inheritance",
+       "australian_timezones",
+       "password_encryption",
+       "transform_null_equals",
 
        "geqo_threshold",
        "geqo_pool_size",
@@ -248,6 +251,7 @@ psql_completion(char *text, int start, int end)
        "geqo_generations",
        "geqo_random_seed",
        "sort_mem",
+       "vacuum_mem",
        "debug_level",
        "max_expr_depth",
        "commit_delay",
@@ -259,6 +263,9 @@ psql_completion(char *text, int start, int end)
        "cpu_index_tuple_cost",
        "cpu_operator_cost",
        "geqo_selection_bias",
+
+       "default_transaction_isolation",
+
        NULL
    };
 
index be1fbdd4efcc4775a5fa417485a8a40bd0d16bad..d1c8ca759815315f0c8dd7e038da17580b7e1ed1 100644 (file)
@@ -12,7 +12,7 @@
  * Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $Id: miscadmin.h,v 1.90 2001/09/08 15:24:00 petere Exp $
+ * $Id: miscadmin.h,v 1.91 2001/09/21 03:32:36 tgl Exp $
  *
  * NOTES
  *   some of the information in this file should be moved to
@@ -170,6 +170,7 @@ extern char DateFormat[];
 extern bool enableFsync;
 extern bool allowSystemTableMods;
 extern int SortMem;
+extern int VacuumMem;
 
 /*
  * A few postmaster startup options are exported here so the