diff --git a/doc/src/sgml/config.sgml b/doc/src/sgml/config.sgml
index 48ad9f6..4ab0939 100644
*** a/doc/src/sgml/config.sgml
--- b/doc/src/sgml/config.sgml
*************** SET ENABLE_SEQSCAN TO OFF;
*** 1966,1971 ****
--- 1966,1994 ----
+
+ vacuum_defer_cleanup_age (integer)
+
+ vacuum_defer_cleanup_age> configuration parameter
+
+
+
+ Specifies the number of transactions by which VACUUM> and
+ HOT> updates will defer cleanup of dead row versions. The
+ default is 0 transactions, meaning that dead row versions will be
+ removed as soon as possible. You may wish to set this to a non-zero
+ value when planning or maintaining a
+ configuration. The recommended value is 0> unless you have
+ clear reason to increase it. The purpose of the parameter is to
+ allow the user to specify an approximate time delay before cleanup
+ occurs. However, it should be noted that there is no direct link with
+ any specific time delay and so the results will be application and
+ installation specific, as well as variable over time, depending upon
+ the transaction rate (of writes only).
+
+
+
+
*************** COPY postgres_log FROM '/full/path/to/lo
*** 4407,4435 ****
-
- vacuum_defer_cleanup_age (integer)
-
- vacuum_defer_cleanup_age> configuration parameter
-
-
-
- Specifies the number of transactions by which VACUUM> and
- HOT> updates will defer cleanup of dead row versions. The
- default is 0 transactions, meaning that dead row versions will be
- removed as soon as possible. You may wish to set this to a non-zero
- value when planning or maintaining a
- configuration. The recommended value is 0> unless you have
- clear reason to increase it. The purpose of the parameter is to
- allow the user to specify an approximate time delay before cleanup
- occurs. However, it should be noted that there is no direct link with
- any specific time delay and so the results will be application and
- installation specific, as well as variable over time, depending upon
- the transaction rate (of writes only).
-
-
-
-
bytea_output (enum)
--- 4430,4435 ----
diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c
index 6597e18..c56ac6a 100644
*** a/src/backend/utils/misc/guc.c
--- b/src/backend/utils/misc/guc.c
*************** const char *const config_group_names[] =
*** 489,502 ****
gettext_noop("Resource Usage / Memory"),
/* RESOURCES_KERNEL */
gettext_noop("Resource Usage / Kernel Resources"),
/* WAL */
gettext_noop("Write-Ahead Log"),
/* WAL_SETTINGS */
gettext_noop("Write-Ahead Log / Settings"),
/* WAL_CHECKPOINTS */
gettext_noop("Write-Ahead Log / Checkpoints"),
/* WAL_REPLICATION */
! gettext_noop("Write-Ahead Log / Replication"),
/* QUERY_TUNING */
gettext_noop("Query Tuning"),
/* QUERY_TUNING_METHOD */
--- 489,512 ----
gettext_noop("Resource Usage / Memory"),
/* RESOURCES_KERNEL */
gettext_noop("Resource Usage / Kernel Resources"),
+ /* RESOURCES_VACUUM_DELAY */
+ gettext_noop("Resource Usage / Cost-Based Vacuum Delay"),
+ /* RESOURCES_BGWRITER */
+ gettext_noop("Resource Usage / Background Writer"),
+ /* RESOURCES_ASYNCHRONOUS */
+ gettext_noop("Resource Usage / Asynchronous Behavior"),
/* WAL */
gettext_noop("Write-Ahead Log"),
/* WAL_SETTINGS */
gettext_noop("Write-Ahead Log / Settings"),
/* WAL_CHECKPOINTS */
gettext_noop("Write-Ahead Log / Checkpoints"),
+ /* WAL_ARCHIVING */
+ gettext_noop("Write-Ahead Log / Archiving"),
+ /* WAL_STANDBY_SERVERS */
+ gettext_noop("Write-Ahead Log / Standby Servers"),
/* WAL_REPLICATION */
! gettext_noop("Write-Ahead Log / Streaming Replication"),
/* QUERY_TUNING */
gettext_noop("Query Tuning"),
/* QUERY_TUNING_METHOD */
*************** static struct config_bool ConfigureNames
*** 1213,1219 ****
},
{
! {"archive_mode", PGC_POSTMASTER, WAL_SETTINGS,
gettext_noop("Allows archiving of WAL files using archive_command."),
NULL
},
--- 1223,1229 ----
},
{
! {"archive_mode", PGC_POSTMASTER, WAL_ARCHIVING,
gettext_noop("Allows archiving of WAL files using archive_command."),
NULL
},
*************** static struct config_bool ConfigureNames
*** 1222,1228 ****
},
{
! {"hot_standby", PGC_POSTMASTER, WAL_SETTINGS,
gettext_noop("Allows connections and queries during recovery."),
NULL
},
--- 1232,1238 ----
},
{
! {"hot_standby", PGC_POSTMASTER, WAL_STANDBY_SERVERS,
gettext_noop("Allows connections and queries during recovery."),
NULL
},
*************** static struct config_bool ConfigureNames
*** 1271,1277 ****
static struct config_int ConfigureNamesInt[] =
{
{
! {"archive_timeout", PGC_SIGHUP, WAL_SETTINGS,
gettext_noop("Forces a switch to the next xlog file if a "
"new file has not been started within N seconds."),
NULL,
--- 1281,1287 ----
static struct config_int ConfigureNamesInt[] =
{
{
! {"archive_timeout", PGC_SIGHUP, WAL_ARCHIVING,
gettext_noop("Forces a switch to the next xlog file if a "
"new file has not been started within N seconds."),
NULL,
*************** static struct config_int ConfigureNamesI
*** 1384,1390 ****
},
{
! {"max_standby_delay", PGC_SIGHUP, WAL_SETTINGS,
gettext_noop("Sets the maximum delay to avoid conflict processing on hot standby servers."),
NULL,
GUC_UNIT_MS
--- 1394,1400 ----
},
{
! {"max_standby_delay", PGC_SIGHUP, WAL_STANDBY_SERVERS,
gettext_noop("Sets the maximum delay to avoid conflict processing on hot standby servers."),
NULL,
GUC_UNIT_MS
*************** static struct config_int ConfigureNamesI
*** 1477,1483 ****
},
{
! {"vacuum_cost_page_hit", PGC_USERSET, RESOURCES,
gettext_noop("Vacuum cost for a page found in the buffer cache."),
NULL
},
--- 1487,1493 ----
},
{
! {"vacuum_cost_page_hit", PGC_USERSET, RESOURCES_VACUUM_DELAY,
gettext_noop("Vacuum cost for a page found in the buffer cache."),
NULL
},
*************** static struct config_int ConfigureNamesI
*** 1486,1492 ****
},
{
! {"vacuum_cost_page_miss", PGC_USERSET, RESOURCES,
gettext_noop("Vacuum cost for a page not found in the buffer cache."),
NULL
},
--- 1496,1502 ----
},
{
! {"vacuum_cost_page_miss", PGC_USERSET, RESOURCES_VACUUM_DELAY,
gettext_noop("Vacuum cost for a page not found in the buffer cache."),
NULL
},
*************** static struct config_int ConfigureNamesI
*** 1495,1501 ****
},
{
! {"vacuum_cost_page_dirty", PGC_USERSET, RESOURCES,
gettext_noop("Vacuum cost for a page dirtied by vacuum."),
NULL
},
--- 1505,1511 ----
},
{
! {"vacuum_cost_page_dirty", PGC_USERSET, RESOURCES_VACUUM_DELAY,
gettext_noop("Vacuum cost for a page dirtied by vacuum."),
NULL
},
*************** static struct config_int ConfigureNamesI
*** 1504,1510 ****
},
{
! {"vacuum_cost_limit", PGC_USERSET, RESOURCES,
gettext_noop("Vacuum cost amount available before napping."),
NULL
},
--- 1514,1520 ----
},
{
! {"vacuum_cost_limit", PGC_USERSET, RESOURCES_VACUUM_DELAY,
gettext_noop("Vacuum cost amount available before napping."),
NULL
},
*************** static struct config_int ConfigureNamesI
*** 1513,1519 ****
},
{
! {"vacuum_cost_delay", PGC_USERSET, RESOURCES,
gettext_noop("Vacuum cost delay in milliseconds."),
NULL,
GUC_UNIT_MS
--- 1523,1529 ----
},
{
! {"vacuum_cost_delay", PGC_USERSET, RESOURCES_VACUUM_DELAY,
gettext_noop("Vacuum cost delay in milliseconds."),
NULL,
GUC_UNIT_MS
*************** static struct config_int ConfigureNamesI
*** 1554,1560 ****
* See also CheckRequiredParameterValues() if this parameter changes
*/
{
! {"max_prepared_transactions", PGC_POSTMASTER, RESOURCES,
gettext_noop("Sets the maximum number of simultaneously prepared transactions."),
NULL
},
--- 1564,1570 ----
* See also CheckRequiredParameterValues() if this parameter changes
*/
{
! {"max_prepared_transactions", PGC_POSTMASTER, RESOURCES_MEM,
gettext_noop("Sets the maximum number of simultaneously prepared transactions."),
NULL
},
*************** static struct config_int ConfigureNamesI
*** 1612,1618 ****
},
{
! {"vacuum_defer_cleanup_age", PGC_USERSET, CLIENT_CONN_STATEMENT,
gettext_noop("Age by which VACUUM and HOT cleanup should be deferred, if any."),
NULL
},
--- 1622,1628 ----
},
{
! {"vacuum_defer_cleanup_age", PGC_USERSET, WAL_STANDBY_SERVERS,
gettext_noop("Age by which VACUUM and HOT cleanup should be deferred, if any."),
NULL
},
*************** static struct config_int ConfigureNamesI
*** 1790,1796 ****
},
{
! {"bgwriter_delay", PGC_SIGHUP, RESOURCES,
gettext_noop("Background writer sleep time between rounds."),
NULL,
GUC_UNIT_MS
--- 1800,1806 ----
},
{
! {"bgwriter_delay", PGC_SIGHUP, RESOURCES_BGWRITER,
gettext_noop("Background writer sleep time between rounds."),
NULL,
GUC_UNIT_MS
*************** static struct config_int ConfigureNamesI
*** 1800,1806 ****
},
{
! {"bgwriter_lru_maxpages", PGC_SIGHUP, RESOURCES,
gettext_noop("Background writer maximum number of LRU pages to flush per round."),
NULL
},
--- 1810,1816 ----
},
{
! {"bgwriter_lru_maxpages", PGC_SIGHUP, RESOURCES_BGWRITER,
gettext_noop("Background writer maximum number of LRU pages to flush per round."),
NULL
},
*************** static struct config_int ConfigureNamesI
*** 1815,1821 ****
#else
PGC_INTERNAL,
#endif
! RESOURCES,
gettext_noop("Number of simultaneous requests that can be handled efficiently by the disk subsystem."),
gettext_noop("For RAID arrays, this should be approximately the number of drive spindles in the array.")
},
--- 1825,1831 ----
#else
PGC_INTERNAL,
#endif
! RESOURCES_ASYNCHRONOUS,
gettext_noop("Number of simultaneous requests that can be handled efficiently by the disk subsystem."),
gettext_noop("For RAID arrays, this should be approximately the number of drive spindles in the array.")
},
*************** static struct config_real ConfigureNames
*** 2143,2149 ****
},
{
! {"bgwriter_lru_multiplier", PGC_SIGHUP, RESOURCES,
gettext_noop("Multiple of the average buffer usage to free per round."),
NULL
},
--- 2153,2159 ----
},
{
! {"bgwriter_lru_multiplier", PGC_SIGHUP, RESOURCES_BGWRITER,
gettext_noop("Multiple of the average buffer usage to free per round."),
NULL
},
*************** static struct config_real ConfigureNames
*** 2197,2203 ****
static struct config_string ConfigureNamesString[] =
{
{
! {"archive_command", PGC_SIGHUP, WAL_SETTINGS,
gettext_noop("Sets the shell command that will be called to archive a WAL file."),
NULL
},
--- 2207,2213 ----
static struct config_string ConfigureNamesString[] =
{
{
! {"archive_command", PGC_SIGHUP, WAL_ARCHIVING,
gettext_noop("Sets the shell command that will be called to archive a WAL file."),
NULL
},
*************** static struct config_string ConfigureNam
*** 2630,2636 ****
#endif /* USE_SSL */
{
! {"application_name", PGC_USERSET, LOGGING,
gettext_noop("Sets the application name to be reported in statistics and logs."),
NULL,
GUC_IS_NAME | GUC_REPORT | GUC_NOT_IN_SAMPLE
--- 2640,2646 ----
#endif /* USE_SSL */
{
! {"application_name", PGC_USERSET, LOGGING_WHAT,
gettext_noop("Sets the application name to be reported in statistics and logs."),
NULL,
GUC_IS_NAME | GUC_REPORT | GUC_NOT_IN_SAMPLE
diff --git a/src/backend/utils/misc/postgresql.conf.sample b/src/backend/utils/misc/postgresql.conf.sample
index 94a4e69..5ea568a 100644
*** a/src/backend/utils/misc/postgresql.conf.sample
--- b/src/backend/utils/misc/postgresql.conf.sample
***************
*** 183,201 ****
#archive_timeout = 0 # force a logfile segment switch after this
# number of seconds; 0 disables
! # - Hot Standby -
#hot_standby = off # allows queries during recovery
#max_standby_delay = 30s # max acceptable lag to allow queries to
# complete without conflict; -1 means forever
#vacuum_defer_cleanup_age = 0 # num transactions by which cleanup is deferred
- # - Replication -
-
- #max_wal_senders = 0 # max number of walsender processes
- #wal_sender_delay = 200ms # 1-10000 milliseconds
- #wal_keep_segments = 0 # in logfile segments, 16MB each; 0 disables
-
#------------------------------------------------------------------------------
# QUERY TUNING
--- 183,201 ----
#archive_timeout = 0 # force a logfile segment switch after this
# number of seconds; 0 disables
! # - Streaming Replication -
!
! #max_wal_senders = 0 # max number of walsender processes
! #wal_sender_delay = 200ms # 1-10000 milliseconds
! #wal_keep_segments = 0 # in logfile segments, 16MB each; 0 disables
!
! # - Standby Servers -
#hot_standby = off # allows queries during recovery
#max_standby_delay = 30s # max acceptable lag to allow queries to
# complete without conflict; -1 means forever
#vacuum_defer_cleanup_age = 0 # num transactions by which cleanup is deferred
#------------------------------------------------------------------------------
# QUERY TUNING
diff --git a/src/include/utils/guc_tables.h b/src/include/utils/guc_tables.h
index 4989fac..083f003 100644
*** a/src/include/utils/guc_tables.h
--- b/src/include/utils/guc_tables.h
*************** enum config_group
*** 50,58 ****
--- 50,63 ----
RESOURCES,
RESOURCES_MEM,
RESOURCES_KERNEL,
+ RESOURCES_VACUUM_DELAY,
+ RESOURCES_BGWRITER,
+ RESOURCES_ASYNCHRONOUS,
WAL,
WAL_SETTINGS,
WAL_CHECKPOINTS,
+ WAL_ARCHIVING,
+ WAL_STANDBY_SERVERS,
WAL_REPLICATION,
QUERY_TUNING,
QUERY_TUNING_METHOD,