Add unchangeable GUC "variables" segment_size, wal_block_size, and
authorTom Lane
Thu, 10 Jul 2008 22:08:17 +0000 (22:08 +0000)
committerTom Lane
Thu, 10 Jul 2008 22:08:17 +0000 (22:08 +0000)
wal_segment_size to make those configuration parameters available to clients,
in the same way that block_size was previously exposed.  Bernd Helmle, with
comments from Abhijit Menon-Sen and some further tweaking by me.

doc/src/sgml/config.sgml
src/backend/utils/misc/guc.c

index 6a0f039e7194f260f93b428f410761a646af2681..d212d084d8c138b41f214e1ad0a2bde538b605a2 100644 (file)
@@ -1,4 +1,4 @@
-
+
 
 
   Server Configuration
@@ -4865,6 +4865,22 @@ dynamic_library_path = 'C:\tools\postgresql;H:\my_project\lib;$libdir'
       
      
 
+     
+      segment_size (integer)
+      
+       segment_size configuration parameter
+      
+      
+       
+        Reports the number of blocks (pages) that can be stored within a file
+        segment.  It is determined by the value of RELSEG_SIZE
+        when building the server.  The maximum size of a segment file in bytes
+        is equal to segment_size multiplied by
+        block_size; by default this is 1GB.
+       
+      
+     
+
      
       server_encoding (string)
       
@@ -4901,12 +4917,42 @@ dynamic_library_path = 'C:\tools\postgresql;H:\my_project\lib;$libdir'
       
       
        
-        Reports the version number of the server as an integer. It is determined 
+        Reports the version number of the server as an integer. It is determined
         by the value of PG_VERSION_NUM when building the server.
        
       
      
 
+     
+      wal_block_size (integer)
+      
+       wal_block_size configuration parameter
+      
+      
+       
+        Reports the size of a WAL disk block.  It is determined by the value
+        of XLOG_BLCKSZ when building the server. The default value
+        is 8192 bytes.
+       
+      
+     
+
+     
+      wal_segment_size (integer)
+      
+       wal_segment_size configuration parameter
+      
+      
+       
+        Reports the number of blocks (pages) in a WAL segment file.
+        The total size of a WAL segment file in bytes is equal to
+        wal_segment_size multiplied by wal_block_size;
+        by default this is 16MB.  See  for
+        more information.
+       
+      
+     
+
     
    
 
index ddf9d424024d6f9063541b9e14c1c915c4cf6330..8b072895b1e72f2d75b260984f7fa723a605541b 100644 (file)
@@ -10,7 +10,7 @@
  * Written by Peter Eisentraut .
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/utils/misc/guc.c,v 1.463 2008/07/08 02:07:29 momjian Exp $
+ *   $PostgreSQL: pgsql/src/backend/utils/misc/guc.c,v 1.464 2008/07/10 22:08:17 tgl Exp $
  *
  *--------------------------------------------------------------------
  */
@@ -377,6 +377,9 @@ static int  max_function_args;
 static int max_index_keys;
 static int max_identifier_length;
 static int block_size;
+static int segment_size;
+static int wal_block_size;
+static int wal_segment_size;
 static bool integer_datetimes;
 
 /* should be static, but commands/variable.c needs to get at these */
@@ -1753,6 +1756,39 @@ static struct config_int ConfigureNamesInt[] =
        BLCKSZ, BLCKSZ, BLCKSZ, NULL, NULL
    },
 
+   {
+       {"segment_size", PGC_INTERNAL, PRESET_OPTIONS,
+           gettext_noop("Shows the number of pages per disk file."),
+           NULL,
+           GUC_UNIT_BLOCKS | GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
+       },
+       &segment_size,
+       RELSEG_SIZE, RELSEG_SIZE, RELSEG_SIZE, NULL, NULL
+   },
+
+   {
+       {"wal_block_size", PGC_INTERNAL, PRESET_OPTIONS,
+           gettext_noop("Shows the block size in the write ahead log."),
+           NULL,
+           GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
+       },
+       &wal_block_size,
+       XLOG_BLCKSZ, XLOG_BLCKSZ, XLOG_BLCKSZ, NULL, NULL
+   },
+
+   {
+       {"wal_segment_size", PGC_INTERNAL, PRESET_OPTIONS,
+           gettext_noop("Shows the number of pages per write ahead log segment."),
+           NULL,
+           GUC_UNIT_XBLOCKS | GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
+       },
+       &wal_segment_size,
+       (XLOG_SEG_SIZE / XLOG_BLCKSZ), 
+       (XLOG_SEG_SIZE / XLOG_BLCKSZ), 
+       (XLOG_SEG_SIZE / XLOG_BLCKSZ),
+       NULL, NULL
+   },
+
    {
        {"autovacuum_naptime", PGC_SIGHUP, AUTOVACUUM,
            gettext_noop("Time to sleep between autovacuum runs."),