mirror of
https://github.com/postgres/postgres.git
synced 2025-11-18 02:02:55 +03:00
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
This commit is contained in:
@@ -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)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user