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 --- src/backend/commands/variable.c | 30 ------------------------------ 1 file changed, 30 deletions(-) (limited to 'src/backend/commands/variable.c') diff --git a/src/backend/commands/variable.c b/src/backend/commands/variable.c index 84f044a1959..a9f2a3a3062 100644 --- a/src/backend/commands/variable.c +++ b/src/backend/commands/variable.c @@ -1145,7 +1145,6 @@ check_cluster_name(char **newval, void **extra, GucSource source) void assign_maintenance_io_concurrency(int newval, void *extra) { -#ifdef USE_PREFETCH /* * Reconfigure recovery prefetching, because a setting it depends on * changed. @@ -1153,7 +1152,6 @@ assign_maintenance_io_concurrency(int newval, void *extra) maintenance_io_concurrency = newval; if (AmStartupProcess()) XLogPrefetchReconfigure(); -#endif } /* @@ -1249,34 +1247,6 @@ check_default_with_oids(bool *newval, void **extra, GucSource source) return true; } -bool -check_effective_io_concurrency(int *newval, void **extra, GucSource source) -{ -#ifndef USE_PREFETCH - if (*newval != 0) - { - GUC_check_errdetail("\"%s\" must be set to 0 on platforms that lack support for issuing read-ahead advice.", - "effective_io_concurrency"); - return false; - } -#endif /* USE_PREFETCH */ - return true; -} - -bool -check_maintenance_io_concurrency(int *newval, void **extra, GucSource source) -{ -#ifndef USE_PREFETCH - if (*newval != 0) - { - GUC_check_errdetail("\"%s\" must be set to 0 on platforms that lack support for issuing read-ahead advice.", - "maintenance_io_concurrency"); - return false; - } -#endif /* USE_PREFETCH */ - return true; -} - bool check_ssl(bool *newval, void **extra, GucSource source) { -- cgit v1.2.3