diff options
author | Andres Freund <andres@anarazel.de> | 2025-03-30 19:14:55 -0400 |
---|---|---|
committer | Andres Freund <andres@anarazel.de> | 2025-03-30 19:16:47 -0400 |
commit | 2a5e709e721cf5f890cde51755b84cfe25d1c4d9 (patch) | |
tree | e48d7981c9ea2c20b9da99e5f78c7173875f7c68 /doc/src | |
parent | ae3df4b34155d4a3811762e78d5076e64df66fba (diff) | |
download | postgresql-2a5e709e721cf5f890cde51755b84cfe25d1c4d9.tar.gz postgresql-2a5e709e721cf5f890cde51755b84cfe25d1c4d9.zip |
Enable IO concurrency on all systems
Previously effective_io_concurrency and maintenance_io_concurrency could not
be set above 0 on machines without fadvise support. AIO enables IO concurrency
without such support, via io_method=worker.
Currently only subsystems using the read stream API will take advantage of
this. Other users of maintenance_io_concurrency (like recovery prefetching)
which leverage OS advice directly will not benefit from this change. In those
cases, maintenance_io_concurrency will have no effect on I/O behavior.
Author: Melanie Plageman <melanieplageman@gmail.com>
Reviewed-by: Noah Misch <noah@leadboat.com>
Discussion: https://postgr.es/m/CAAKRu_atGgZePo=_g6T3cNtfMf0QxpvoUh5OUqa_cnPdhLd=gw@mail.gmail.com
Diffstat (limited to 'doc/src')
-rw-r--r-- | doc/src/sgml/config.sgml | 16 | ||||
-rw-r--r-- | doc/src/sgml/ref/alter_tablespace.sgml | 2 | ||||
-rw-r--r-- | doc/src/sgml/ref/create_tablespace.sgml | 2 |
3 files changed, 10 insertions, 10 deletions
diff --git a/doc/src/sgml/config.sgml b/doc/src/sgml/config.sgml index f55f38cb85b..0d02e21a1ab 100644 --- a/doc/src/sgml/config.sgml +++ b/doc/src/sgml/config.sgml @@ -2585,8 +2585,7 @@ include_dir 'conf.d' session attempts to initiate in parallel. The allowed range is <literal>1</literal> to <literal>1000</literal>, or <literal>0</literal> to disable issuance of asynchronous I/O requests. - The default is <literal>16</literal> on supported systems, otherwise - <literal>0</literal>. + The default is <literal>16</literal>. </para> <para> @@ -2597,8 +2596,9 @@ include_dir 'conf.d' </para> <para> - On systems without prefetch advice support, attempting to configure - any value other than <literal>0</literal> will error out. + On systems with prefetch advice support, + <varname>effective_io_concurrency</varname> also controls the + prefetch distance. </para> <para> @@ -2621,10 +2621,10 @@ include_dir 'conf.d' for maintenance work that is done on behalf of many client sessions. </para> <para> - The default is <literal>16</literal> on supported systems, otherwise - <literal>0</literal>. This value can be overridden for tables in a - particular tablespace by setting the tablespace parameter of the same - name (see <xref linkend="sql-altertablespace"/>). + The default is <literal>16</literal>. This value can be overridden + for tables in a particular tablespace by setting the tablespace + parameter of the same name (see <xref + linkend="sql-altertablespace"/>). </para> </listitem> </varlistentry> diff --git a/doc/src/sgml/ref/alter_tablespace.sgml b/doc/src/sgml/ref/alter_tablespace.sgml index 6ec863400d1..d0e08089ddb 100644 --- a/doc/src/sgml/ref/alter_tablespace.sgml +++ b/doc/src/sgml/ref/alter_tablespace.sgml @@ -88,7 +88,7 @@ ALTER TABLESPACE <replaceable>name</replaceable> RESET ( <replaceable class="par and <varname>maintenance_io_concurrency</varname>. Setting these values for a particular tablespace will override the planner's usual estimate of the cost of reading pages from tables in - that tablespace, and the executor's prefetching behavior, as established + that tablespace, and how many concurrent I/Os are issued, as established by the configuration parameters of the same name (see <xref linkend="guc-seq-page-cost"/>, <xref linkend="guc-random-page-cost"/>, diff --git a/doc/src/sgml/ref/create_tablespace.sgml b/doc/src/sgml/ref/create_tablespace.sgml index 9d5ab025261..b77e774c53f 100644 --- a/doc/src/sgml/ref/create_tablespace.sgml +++ b/doc/src/sgml/ref/create_tablespace.sgml @@ -110,7 +110,7 @@ CREATE TABLESPACE <replaceable class="parameter">tablespace_name</replaceable> and <varname>maintenance_io_concurrency</varname>. Setting these values for a particular tablespace will override the planner's usual estimate of the cost of reading pages from tables in - that tablespace, and the executor's prefetching behavior, as established + that tablespace, and how many concurrent I/Os are issued, as established by the configuration parameters of the same name (see <xref linkend="guc-seq-page-cost"/>, <xref linkend="guc-random-page-cost"/>, |