From 2a5e709e721cf5f890cde51755b84cfe25d1c4d9 Mon Sep 17 00:00:00 2001 From: Andres Freund Date: Sun, 30 Mar 2025 19:14:55 -0400 Subject: 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 Reviewed-by: Noah Misch Discussion: https://postgr.es/m/CAAKRu_atGgZePo=_g6T3cNtfMf0QxpvoUh5OUqa_cnPdhLd=gw@mail.gmail.com --- doc/src/sgml/config.sgml | 16 ++++++++-------- doc/src/sgml/ref/alter_tablespace.sgml | 2 +- doc/src/sgml/ref/create_tablespace.sgml | 2 +- 3 files changed, 10 insertions(+), 10 deletions(-) (limited to 'doc/src') 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 1 to 1000, or 0 to disable issuance of asynchronous I/O requests. - The default is 16 on supported systems, otherwise - 0. + The default is 16. @@ -2597,8 +2596,9 @@ include_dir 'conf.d' - On systems without prefetch advice support, attempting to configure - any value other than 0 will error out. + On systems with prefetch advice support, + effective_io_concurrency also controls the + prefetch distance. @@ -2621,10 +2621,10 @@ include_dir 'conf.d' for maintenance work that is done on behalf of many client sessions. - The default is 16 on supported systems, otherwise - 0. This value can be overridden for tables in a - particular tablespace by setting the tablespace parameter of the same - name (see ). + The default is 16. This value can be overridden + for tables in a particular tablespace by setting the tablespace + parameter of the same name (see ). 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 name RESET ( , , 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 tablespace_name and maintenance_io_concurrency. 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 , , -- cgit v1.2.3