From: Tom Lane Date: Sat, 26 Oct 2019 16:30:41 +0000 (-0400) Subject: Doc: improve documentation of configuration settings that have units. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=63ebe2009145347680eefd240d2a690fdcdbccdf;p=postgresql Doc: improve documentation of configuration settings that have units. When we added the GUC units feature, we didn't make any great effort to adjust the documentation of individual GUCs; they tended to still say things like "this is the number of milliseconds that ...", even though users might prefer to write some other units, and SHOW might even show the value in other units. Commit 6c9fb69f2 made an effort to improve this situation, but I thought it made things less readable by injecting units information in mid-sentence. It also wasn't very consistent, and did not touch all the GUCs that have units. To improve matters, standardize on the phrasing "If this value is specified without units, it is taken as ". Also, try to standardize where this is mentioned, right before the specification of the default. (In a couple of places, doing that would've required more rewriting than seemed justified, so I wasn't 100% consistent about that.) I also tried to use the phrases "amount of time", "amount of memory", etc rather than describing the contents of GUCs in other ways, as those were the majority usage in places that weren't overcommitting to a particular unit. (I left "length of time" alone in a couple of places, though.) I failed to resist the temptation to copy-edit some awkward text, too. Backpatch to v12, like 6c9fb69f2, mainly because v12 hasn't diverged much from HEAD yet. Discussion: https://postgr.es/m/15882.1571942223@sss.pgh.pa.us --- diff --git a/doc/src/sgml/config.sgml b/doc/src/sgml/config.sgml index 886632ff43..0bb0001146 100644 --- a/doc/src/sgml/config.sgml +++ b/doc/src/sgml/config.sgml @@ -883,9 +883,10 @@ include_dir 'conf.d' - Specifies the duration of inactivity after which TCP should - send a keepalive message to the client (defaults to seconds). - A value of 0 uses the system default. + Specifies the amount of time with no network activity after which + the operating system should send a TCP keepalive message to the client. + If this value is specified without units, it is taken as seconds. + A value of 0 (the default) selects the operating system's default. This parameter is supported only on systems that support TCP_KEEPIDLE or an equivalent socket option, and on Windows; on other systems, it must be zero. @@ -894,7 +895,7 @@ include_dir 'conf.d' - On Windows, a value of 0 will set this parameter to 2 hours, + On Windows, setting a value of 0 will set this parameter to 2 hours, since Windows does not provide a way to read the system default value. @@ -909,10 +910,10 @@ include_dir 'conf.d' - Specifies the duration after which a TCP keepalive message - that is not acknowledged by the client should be retransmitted - (defaults to seconds). - A value of 0 uses the system default. + Specifies the amount of time after which a TCP keepalive message + that has not been acknowledged by the client should be retransmitted. + If this value is specified without units, it is taken as seconds. + A value of 0 (the default) selects the operating system's default. This parameter is supported only on systems that support TCP_KEEPINTVL or an equivalent socket option, and on Windows; on other systems, it must be zero. @@ -921,7 +922,7 @@ include_dir 'conf.d' - On Windows, a value of 0 will set this parameter to 1 second, + On Windows, setting a value of 0 will set this parameter to 1 second, since Windows does not provide a way to read the system default value. @@ -936,9 +937,9 @@ include_dir 'conf.d' - Specifies the number of TCP keepalives that can be lost before + Specifies the number of TCP keepalive messages that can be lost before the server's connection to the client is considered dead. - A value of 0 uses the system default. + A value of 0 (the default) selects the operating system's default. This parameter is supported only on systems that support TCP_KEEPCNT or an equivalent socket option; on other systems, it must be zero. @@ -961,9 +962,10 @@ include_dir 'conf.d' - Specifies duration (defaults to milliseconds) that transmitted data may - remain unacknowledged before a connection is forcibly closed. - A value of 0 uses the system default. + Specifies the amount of time that transmitted data may + remain unacknowledged before the TCP connection is forcibly closed. + If this value is specified without units, it is taken as milliseconds. + A value of 0 (the default) selects the operating system's default. This parameter is supported only on systems that support TCP_USER_TIMEOUT; on other systems, it must be zero. In sessions connected via a Unix-domain socket, this parameter is @@ -971,8 +973,7 @@ include_dir 'conf.d' - This parameter is not supported on Windows and on Linux version - 2.6.36 or older. + This parameter is not supported on Windows, and must be zero. @@ -996,10 +997,11 @@ include_dir 'conf.d' - Maximum duration to complete client authentication (defaults to seconds). If a + Maximum amount of time allowed to complete client authentication. If a would-be client has not completed the authentication protocol in this much time, the server closes the connection. This prevents hung clients from occupying a connection indefinitely. + If this value is specified without units, it is taken as seconds. The default is one minute (1m). This parameter can only be set in the postgresql.conf file or on the server command line. @@ -1495,10 +1497,14 @@ include_dir 'conf.d' memory buffers. The default is typically 128 megabytes (128MB), but might be less if your kernel settings will not support it (as determined during initdb). - This setting must be at least 128 kilobytes. (Non-default - values of BLCKSZ change the minimum.) However, + This setting must be at least 128 kilobytes. However, settings significantly higher than the minimum are usually needed - for good performance. This parameter can only be set at server start. + for good performance. + If this value is specified without units, it is taken as blocks, + that is BLCKSZ bytes, typically 8kB. + (Non-default values of BLCKSZ change the minimum + value.) + This parameter can only be set at server start. @@ -1591,10 +1597,15 @@ include_dir 'conf.d' - Sets the maximum number of temporary buffers used by each database - session. These are session-local buffers used only for access to - temporary tables. The default is eight megabytes - (8MB). The setting can be changed within individual + Sets the maximum amount of memory used for temporary buffers within + each database session. These are session-local buffers used only + for access to temporary tables. + If this value is specified without units, it is taken as blocks, + that is BLCKSZ bytes, typically 8kB. + The default is eight megabytes (8MB). + (If BLCKSZ is not 8kB, the default value scales + proportionally to it.) + This setting can be changed within individual sessions, but only before the first use of temporary tables within the session; subsequent attempts to change the value will have no effect on that session. @@ -1653,9 +1664,10 @@ include_dir 'conf.d' - Specifies the amount of memory to be used by internal sort operations - and hash tables before writing to temporary disk files. The value - defaults to four megabytes (4MB). + Sets the maximum amount of memory to be used by a query operation + (such as a sort or hash table) before writing to temporary disk files. + If this value is specified without units, it is taken as kilobytes. + The default value is four megabytes (4MB). Note that for a complex query, several sort or hash operations might be running in parallel; each operation will be allowed to use as much memory as this value specifies before it starts to write data into temporary @@ -1681,7 +1693,9 @@ include_dir 'conf.d' Specifies the maximum amount of memory to be used by maintenance operations, such as VACUUM, CREATE - INDEX, and ALTER TABLE ADD FOREIGN KEY. It defaults + INDEX, and ALTER TABLE ADD FOREIGN KEY. + If this value is specified without units, it is taken as kilobytes. + It defaults to 64 megabytes (64MB). Since only one of these operations can be executed at a time by a database session, and an installation normally doesn't have many of them running @@ -1708,7 +1722,9 @@ include_dir 'conf.d' Specifies the maximum amount of memory to be used by each - autovacuum worker process. It defaults to -1, indicating that + autovacuum worker process. + If this value is specified without units, it is taken as kilobytes. + It defaults to -1, indicating that the value of should be used instead. The setting has no effect on the behavior of VACUUM when run in other contexts. @@ -1730,6 +1746,7 @@ include_dir 'conf.d' equivalent), less a safety margin of a megabyte or so. The safety margin is needed because the stack depth is not checked in every routine in the server, but only in key potentially-recursive routines. + If this value is specified without units, it is taken as kilobytes. The default setting is two megabytes (2MB), which is conservatively small and unlikely to risk crashes. However, it might be too small to allow execution of complex functions. @@ -1819,8 +1836,8 @@ include_dir 'conf.d' for temporary files, such as sort and hash temporary files, or the storage file for a held cursor. A transaction attempting to exceed this limit will be canceled. - The default unit is kilobytes, and -1 (the - default) means no limit. + If this value is specified without units, it is taken as kilobytes. + -1 (the default) means no limit. Only superusers can change this setting. @@ -1907,8 +1924,9 @@ include_dir 'conf.d' - The duration (defaults to milliseconds) that the process will sleep + The amount of time that the process will sleep when the cost limit has been exceeded. + If this value is specified without units, it is taken as milliseconds. The default value is zero, which disables the cost-based vacuum delay feature. Positive values enable cost-based vacuuming. @@ -2032,13 +2050,16 @@ include_dir 'conf.d' - Specifies the delay (defaults to milliseconds) between activity rounds for the + Specifies the delay between activity rounds for the background writer. In each round the writer issues writes for some number of dirty buffers (controllable by the - following parameters). It then sleeps for bgwriter_delay - duration, and repeats. When there are no dirty buffers in the + following parameters). It then sleeps for + the length of bgwriter_delay, and repeats. + When there are no dirty buffers in the buffer pool, though, it goes into a longer sleep regardless of - bgwriter_delay. The default value is 200 + bgwriter_delay. + If this value is specified without units, it is taken as milliseconds. + The default value is 200 milliseconds (200ms). Note that on many systems, the effective resolution of sleep delays is 10 milliseconds; setting bgwriter_delay to a value that is not a multiple of 10 @@ -2104,7 +2125,7 @@ include_dir 'conf.d' - Whenever more than bgwriter_flush_after bytes have + Whenever more than this amount of data has been written by the background writer, attempt to force the OS to issue these writes to the underlying storage. Doing so will limit the amount of dirty data in the kernel's page cache, reducing the likelihood of @@ -2114,7 +2135,10 @@ include_dir 'conf.d' also are some cases, especially with workloads that are bigger than , but smaller than the OS's page cache, where performance might degrade. This setting may have no - effect on some platforms. The valid range is between + effect on some platforms. + If this value is specified without units, it is taken as blocks, + that is BLCKSZ bytes, typically 8kB. + The valid range is between 0, which disables forced writeback, and 2MB. The default is 512kB on Linux, 0 elsewhere. (If BLCKSZ is not 8kB, @@ -2323,7 +2347,7 @@ include_dir 'conf.d' - Whenever more than backend_flush_after bytes have + Whenever more than this amount of data has been written by a single backend, attempt to force the OS to issue these writes to the underlying storage. Doing so will limit the amount of dirty data in the kernel's page cache, reducing the @@ -2333,7 +2357,10 @@ include_dir 'conf.d' latency, but there also are some cases, especially with workloads that are bigger than , but smaller than the OS's page cache, where performance might degrade. This - setting may have no effect on some platforms. The valid range is + setting may have no effect on some platforms. + If this value is specified without units, it is taken as blocks, + that is BLCKSZ bytes, typically 8kB. + The valid range is between 0, which disables forced writeback, and 2MB. The default is 0, i.e., no forced writeback. (If BLCKSZ is not 8kB, @@ -2350,13 +2377,10 @@ include_dir 'conf.d' - Sets the minimum time that a snapshot can be used without risk of a - snapshot too old error occurring when using the snapshot. - This parameter can only be set at server start. - - - - Beyond the threshold, old data may be vacuumed away. This can help + Sets the minimum amount of time that a query snapshot can be used + without risk of a snapshot too old error occurring + when using the snapshot. Data that has been dead for longer than + this threshold is allowed to be vacuumed away. This can help prevent bloat in the face of snapshots which remain in use for a long time. To prevent incorrect results due to cleanup of data which would otherwise be visible to the snapshot, an error is generated @@ -2366,10 +2390,15 @@ include_dir 'conf.d' - A value of -1 disables this feature, and is the default. + If this value is specified without units, it is taken as minutes. + A value of -1 (the default) disables this feature, + effectively setting the snapshot age limit to infinity. + This parameter can only be set at server start. + + + Useful values for production work probably range from a small number - of hours to a few days. The setting will be coerced to a granularity - of minutes, and small numbers (such as 0 or + of hours to a few days. Small values (such as 0 or 1min) are only allowed because they may sometimes be useful for testing. While a setting as high as 60d is allowed, please note that in many workloads extreme bloat or @@ -2379,7 +2408,7 @@ include_dir 'conf.d' When this feature is enabled, freed space at the end of a relation cannot be released to the operating system, since that could remove - information needed to detect the snapshot too old + information needed to detect the snapshot too old condition. All space allocated to a relation remains associated with that relation for reuse only within that relation unless explicitly freed (for example, with VACUUM FULL). @@ -2394,7 +2423,7 @@ include_dir 'conf.d' Some tables cannot safely be vacuumed early, and so will not be affected by this setting, such as system catalogs. For such tables this setting will neither reduce bloat nor create a possibility - of a snapshot too old error on scanning. + of a snapshot too old error on scanning. @@ -2770,6 +2799,8 @@ include_dir 'conf.d' manually if the automatic choice is too large or too small, but any positive value less than 32kB will be treated as 32kB. + If this value is specified without units, it is taken as WAL blocks, + that is XLOG_BLCKSZ bytes, typically 8kB. This parameter can only be set at server start. @@ -2794,14 +2825,15 @@ include_dir 'conf.d' - Specifies how often the WAL writer flushes WAL. After flushing WAL it - sleeps for wal_writer_delay duration (defaults - to milliseconds), unless woken up + Specifies how often the WAL writer flushes WAL, in time terms. + After flushing WAL the writer sleeps for the length of time given + by wal_writer_delay, unless woken up sooner by an asynchronously committing transaction. If the last flush - happened less than wal_writer_delay duration ago and - less than wal_writer_flush_after bytes of WAL have been + happened less than wal_writer_delay ago and less + than wal_writer_flush_after worth of WAL has been produced since, then WAL is only written to the operating system, not flushed to disk. + If this value is specified without units, it is taken as milliseconds. The default value is 200 milliseconds (200ms). Note that on many systems, the effective resolution of sleep delays is 10 milliseconds; setting wal_writer_delay to a value that is @@ -2820,14 +2852,17 @@ include_dir 'conf.d' - Specifies how often the WAL writer flushes WAL. If the last flush - happened less than wal_writer_delay duration ago - (defaults to milliseconds) and - less than wal_writer_flush_after bytes of WAL have been + Specifies how often the WAL writer flushes WAL, in volume terms. + If the last flush happened less + than wal_writer_delay ago and less + than wal_writer_flush_after worth of WAL has been produced since, then WAL is only written to the operating system, not flushed to disk. If wal_writer_flush_after is set - to 0 then WAL data is flushed immediately. The default is - 1MB. This parameter can only be set in the + to 0 then WAL data is always flushed immediately. + If this value is specified without units, it is taken as WAL blocks, + that is XLOG_BLCKSZ bytes, typically 8kB. + The default is 1MB. + This parameter can only be set in the postgresql.conf file or on the server command line. @@ -2841,18 +2876,19 @@ include_dir 'conf.d' - commit_delay adds a time delay, measured in - microseconds, before a WAL flush is initiated. This can improve + Setting commit_delay adds a time delay + before a WAL flush is initiated. This can improve group commit throughput by allowing a larger number of transactions to commit via a single WAL flush, if system load is high enough that additional transactions become ready to commit within the - given interval. However, it also increases latency by up to - commit_delay microseconds for each WAL + given interval. However, it also increases latency by up to the + commit_delay for each WAL flush. Because the delay is just wasted if no other transactions become ready to commit, a delay is only performed if at least commit_siblings other transactions are active when a flush is about to be initiated. Also, no delays are performed if fsync is disabled. + If this value is specified without units, it is taken as microseconds. The default commit_delay is zero (no delay). Only superusers can change this setting. @@ -2900,7 +2936,8 @@ include_dir 'conf.d' - Maximum duration between automatic WAL checkpoints (defaults to seconds). + Maximum time between automatic WAL checkpoints. + If this value is specified without units, it is taken as seconds. The valid range is between 30 seconds and one day. The default is five minutes (5min). Increasing this parameter can increase the amount of time needed @@ -2935,8 +2972,8 @@ include_dir 'conf.d' - Whenever more than checkpoint_flush_after bytes - have been written while performing a checkpoint, attempt to force the + Whenever more than this amount of data has been + written while performing a checkpoint, attempt to force the OS to issue these writes to the underlying storage. Doing so will limit the amount of dirty data in the kernel's page cache, reducing the likelihood of stalls when an fsync is issued at the end of the @@ -2945,7 +2982,10 @@ include_dir 'conf.d' latency, but there also are some cases, especially with workloads that are bigger than , but smaller than the OS's page cache, where performance might degrade. This - setting may have no effect on some platforms. The valid range is + setting may have no effect on some platforms. + If this value is specified without units, it is taken as blocks, + that is BLCKSZ bytes, typically 8kB. + The valid range is between 0, which disables forced writeback, and 2MB. The default is 256kB on Linux, 0 elsewhere. (If BLCKSZ is not @@ -2966,9 +3006,11 @@ include_dir 'conf.d' Write a message to the server log if checkpoints caused by the filling of WAL segment files happen closer together - than this many seconds (which suggests that - max_wal_size ought to be raised). The default is - 30 seconds (30s). Zero disables the warning. + than this amount of time (which suggests that + max_wal_size ought to be raised). + If this value is specified without units, it is taken as seconds. + The default is 30 seconds (30s). + Zero disables the warning. No warnings will be generated if checkpoint_timeout is less than checkpoint_warning. This parameter can only be set in the postgresql.conf @@ -2987,9 +3029,11 @@ include_dir 'conf.d' Maximum size to let the WAL grow to between automatic WAL checkpoints. This is a soft limit; WAL size can exceed - max_wal_size under special circumstances, like - under heavy load, a failing archive_command, or a high - wal_keep_segments setting. The default is 1 GB. + max_wal_size under special circumstances, such as + heavy load, a failing archive_command, or a high + wal_keep_segments setting. + If this value is specified without units, it is taken as megabytes. + The default is 1 GB. Increasing this parameter can increase the amount of time needed for crash recovery. This parameter can only be set in the postgresql.conf @@ -3010,7 +3054,9 @@ include_dir 'conf.d' always recycled for future use at a checkpoint, rather than removed. This can be used to ensure that enough WAL space is reserved to handle spikes in WAL usage, for example when running large batch - jobs. The default is 80 MB. + jobs. + If this value is specified without units, it is taken as megabytes. + The default is 80 MB. This parameter can only be set in the postgresql.conf file or on the server command line. @@ -3105,7 +3151,7 @@ include_dir 'conf.d' data can be, you can set archive_timeout to force the server to switch to a new WAL segment file periodically. When this parameter is greater than zero, the server will switch to a new - segment file whenever this many seconds have elapsed since the last + segment file whenever this amount of time has elapsed since the last segment file switch, and there has been any database activity, including a single checkpoint (checkpoints are skipped if there is no database activity). Note that archived files that are closed @@ -3116,6 +3162,7 @@ include_dir 'conf.d' usually reasonable. You should consider using streaming replication, instead of archiving, if you want data to be copied off the master server more quickly than that. + If this value is specified without units, it is taken as seconds. This parameter can only be set in the postgresql.conf file or on the server command line. @@ -3674,11 +3721,15 @@ restore_command = 'copy "C:\\server\\archivedir\\%f" "%p"' # Windows - Terminate replication connections that are inactive longer - than the specified duration (defaults to milliseconds). This is useful for + Terminate replication connections that are inactive for longer + than this amount of time. This is useful for the sending server to detect a standby crash or network outage. - A value of zero disables the timeout mechanism. The default value - is 60 seconds. With a cluster distributed across multiple geographic + If this value is specified without units, it is taken as milliseconds. + The default value is 60 seconds. + A value of zero disables the timeout mechanism. + + + With a cluster distributed across multiple geographic locations, using different values per location brings more flexibility in the cluster management. A smaller value is useful for faster failure detection with a standby having a low-latency network @@ -4005,7 +4056,8 @@ ANY num_sync ( . max_standby_archive_delay applies when WAL data is being read from WAL archive (and is therefore not current). - The default is 30 seconds. Units are milliseconds if not specified. + If this value is specified without units, it is taken as milliseconds. + The default is 30 seconds. A value of -1 allows the standby to wait forever for conflicting queries to complete. This parameter can only be set in the postgresql.conf @@ -4036,7 +4088,8 @@ ANY num_sync ( . max_standby_streaming_delay applies when WAL data is being received via streaming replication. - The default is 30 seconds. Units are milliseconds if not specified. + If this value is specified without units, it is taken as milliseconds. + The default is 30 seconds. A value of -1 allows the standby to wait forever for conflicting queries to complete. This parameter can only be set in the postgresql.conf @@ -4071,13 +4124,16 @@ ANY num_sync ( num_sync ( num_sync ( num_sync ( num_sync ( num_sync ( num_sync ( value will be used. + If this value is specified without units, it is taken as milliseconds. The default value is 2 milliseconds. This parameter can only be set in the postgresql.conf file or on the server command line; @@ -7592,11 +7675,20 @@ COPY postgres_log FROM '/full/path/to/logfile.csv' WITH csv; - Abort any statement that takes more than the specified duration - (defaults to milliseconds), starting from the time the command arrives at the server - from the client. If log_min_error_statement is set to - ERROR or lower, the statement that timed out will also be - logged. A value of zero (the default) turns this off. + Abort any statement that takes more than the specified amount of time. + If log_min_error_statement is set + to ERROR or lower, the statement that timed out + will also be logged. + If this value is specified without units, it is taken as milliseconds. + A value of zero (the default) disables the timeout. + + + + The timeout is measured from the time a command arrives at the + server until it is completed by the server. + In extended query protocol, the timeout starts running when any + query-related message (Parse, Bind, Execute, Describe) arrives, and + it is cancelled by completion of an Execute or Sync message. @@ -7615,13 +7707,15 @@ COPY postgres_log FROM '/full/path/to/logfile.csv' WITH csv; - Abort any statement that waits longer than the specified duration - (defaults to milliseconds) while attempting to acquire a lock on a table, index, + Abort any statement that waits longer than the specified amount of + time while attempting to acquire a lock on a table, index, row, or other database object. The time limit applies separately to each lock acquisition attempt. The limit applies both to explicit locking requests (such as LOCK TABLE, or SELECT FOR UPDATE without NOWAIT) and to implicitly-acquired - locks. A value of zero (the default) turns this off. + locks. + If this value is specified without units, it is taken as milliseconds. + A value of zero (the default) disables the timeout. @@ -7631,7 +7725,7 @@ COPY postgres_log FROM '/full/path/to/logfile.csv' WITH csv; the same or larger value, since the statement timeout would always trigger first. If log_min_error_statement is set to ERROR or lower, the statement that timed out will be - logged. + logged. @@ -7651,13 +7745,14 @@ COPY postgres_log FROM '/full/path/to/logfile.csv' WITH csv; Terminate any session with an open transaction that has been idle for - longer than the specified duration (defaults to milliseconds). This allows any + longer than the specified amount of time. This allows any locks held by that session to be released and the connection slot to be reused; it also allows tuples visible only to this transaction to be vacuumed. See for more details about this. - The default value of 0 disables this feature. + If this value is specified without units, it is taken as milliseconds. + A value of zero (the default) disables the timeout. @@ -7884,10 +7979,11 @@ SET XML OPTION { DOCUMENT | CONTENT }; - Sets the maximum size of the GIN pending list which is used + Sets the maximum size of a GIN index's pending list, which is used when fastupdate is enabled. If the list grows larger than this maximum size, it is cleaned up by moving - the entries in it to the main GIN data structure in bulk. + the entries in it to the index's main GIN data structure in bulk. + If this value is specified without units, it is taken as kilobytes. The default is four megabytes (4MB). This setting can be overridden for individual GIN indexes by changing index storage parameters. @@ -8488,7 +8584,7 @@ dynamic_library_path = 'C:\tools\postgresql;H:\my_project\lib;$libdir' - This is the duration (defaults to milliseconds), to wait on a lock + This is the amount of time to wait on a lock before checking to see if there is a deadlock condition. The check for deadlock is relatively expensive, so the server doesn't run it every time it waits for a lock. We optimistically assume @@ -8496,7 +8592,9 @@ dynamic_library_path = 'C:\tools\postgresql;H:\my_project\lib;$libdir' just wait on the lock for a while before checking for a deadlock. Increasing this value reduces the amount of time wasted in needless deadlock checks, but slows down reporting of - real deadlock errors. The default is one second (1s), + real deadlock errors. + If this value is specified without units, it is taken as milliseconds. + The default is one second (1s), which is probably about the smallest value you would want in practice. On a heavily loaded server you might want to raise it. Ideally the setting should exceed your typical transaction time, @@ -8507,7 +8605,7 @@ dynamic_library_path = 'C:\tools\postgresql;H:\my_project\lib;$libdir' When is set, - this parameter also determines the duration to wait before + this parameter also determines the amount of time to wait before a log message is issued about the lock wait. If you are trying to investigate locking delays you might want to set a shorter than normal deadlock_timeout. @@ -9325,12 +9423,13 @@ dynamic_library_path = 'C:\tools\postgresql;H:\my_project\lib;$libdir' - If nonzero, a delay of this duration occurs when a new + The amount of time to delay when a new server process is started, after it conducts the authentication procedure. This is intended to give developers an opportunity to attach to the server process with a debugger. - This parameter defaults to seconds and cannot be changed after - session start. + If this value is specified without units, it is taken as seconds. + A value of zero (the default) disables the delay. + This parameter cannot be changed after session start. @@ -9343,14 +9442,15 @@ dynamic_library_path = 'C:\tools\postgresql;H:\my_project\lib;$libdir' - If nonzero, a delay of this duration occurs just after a + The amount of time to delay just after a new server process is forked, before it conducts the authentication procedure. This is intended to give developers an opportunity to attach to the server process with a debugger to trace down misbehavior in authentication. - This parameter defaults to seconds and can only be set in the - postgresql.conf file or on the server - command line. + If this value is specified without units, it is taken as seconds. + A value of zero (the default) disables the delay. + This parameter can only be set in the postgresql.conf + file or on the server command line.