]> granicus.if.org Git - postgresql/commitdiff
Give VACUUM its own GUC parameter for memory usage, rather than
authorTom Lane <tgl@sss.pgh.pa.us>
Fri, 21 Sep 2001 03:32:36 +0000 (03:32 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
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 @@
 <!--
-$Header: /cvsroot/pgsql/doc/src/sgml/runtime.sgml,v 1.81 2001/09/20 14:20:27 petere Exp $
+$Header: /cvsroot/pgsql/doc/src/sgml/runtime.sgml,v 1.82 2001/09/21 03:32:35 tgl Exp $
 -->
 
 <Chapter Id="runtime">
@@ -780,6 +780,45 @@ env PGOPTIONS='-c geqo=off' psql
 
    <para>
     <variablelist>
+     <varlistentry>
+      <term><varname>COLLECT_STARTCOLLECTOR</varname> (<type>boolean</type>)</term>
+      <listitem>
+       <para>
+        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.
+       </para>
+      </listitem>
+     </varlistentry>
+
+     <varlistentry>
+      <term><varname>COLLECT_RESETONPMSTART</varname> (<type>boolean</type>)</term>
+      <listitem>
+       <para>
+        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.
+       </para>
+      </listitem>
+     </varlistentry>
+
+     <varlistentry>
+      <term><varname>COLLECT_QUERYSTRING</varname> (<type>boolean</type>)</term>
+      <term><varname>COLLECT_BLOCKLEVEL</varname> (<type>boolean</type>)</term>
+      <term><varname>COLLECT_TUPLELEVEL</varname> (<type>boolean</type>)</term>
+      <listitem>
+       <para>
+        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.
+       </para>
+      </listitem>
+     </varlistentry>
+
      <varlistentry>
       <term><varname>DEBUG_ASSERTIONS</varname> (<type>boolean</type>)</term>
       <listitem>
@@ -1013,7 +1052,7 @@ env PGOPTIONS='-c geqo=off' psql
        <primary>transaction isolation level</primary>
       </indexterm>
 
-      <term><varname>DEFAUL_TRANSACTION_ISOLATION</varname> (<type>string</type>)</term>
+      <term><varname>DEFAULT_TRANSACTION_ISOLATION</varname> (<type>string</type>)</term>
       <listitem>
        <para>
         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'
       </listitem>
      </varlistentry>
 
+     <varlistentry>
+      <term><varname>PASSWORD_ENCRYPTION</varname> (<type>boolean</type>)</term>
+      <listitem>
+       <para>
+        When a password is specified in <command>CREATE USER</> or
+       <command>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.
+       </para>
+      </listitem>
+     </varlistentry>
+
      <varlistentry>
       <term><varname>TRANSFORM_NULL_EQUALS</varname> (<type>boolean</type>)</term>
       <listitem>
@@ -1285,7 +1337,7 @@ dynamic_library_path = '/usr/local/lib/postgresql:/home/my_project/lib:$libdir'
       <listitem>
        <para>
        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'
       </listitem>
      </varlistentry>
 
+     <varlistentry>
+      <term><varname>VACUUM_MEM</varname> (<type>integer</type>)</term>
+      <listitem>
+       <para>
+       Specifies the maximum amount of memory to be used by
+       <command>VACUUM</command> 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.
+       </para>
+      </listitem>
+     </varlistentry>
+
      <varlistentry>
       <term><varname>VIRTUAL_HOST</varname> (<type>string</type>)</term>
       <listitem>
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 <peter_e@gmx.net>.
@@ -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