Allow setting effective_io_concurrency even on unsupported systems

This matches the behavior of other parameters that are unsupported on
some systems (e.g., ssl).

Also document the default value.
This commit is contained in:
Peter Eisentraut 2014-10-18 21:35:46 -04:00
parent b87671f1b6
commit 7feaccc217
3 changed files with 10 additions and 4 deletions

View File

@ -1892,6 +1892,10 @@ include_dir 'conf.d'
in an error. On some operating systems (e.g., Solaris), the function
is present but does not actually do anything.
</para>
<para>
The default is 1 on supported systems, otherwise 0.
</para>
</listitem>
</varlistentry>

View File

@ -2258,11 +2258,7 @@ static struct config_int ConfigureNamesInt[] =
{
{"effective_io_concurrency",
#ifdef USE_PREFETCH
PGC_USERSET,
#else
PGC_INTERNAL,
#endif
RESOURCES_ASYNCHRONOUS,
gettext_noop("Number of simultaneous requests that can be handled efficiently by the disk subsystem."),
gettext_noop("For RAID arrays, this should be approximately the number of drive spindles in the array.")

View File

@ -1288,6 +1288,12 @@ setup_config(void)
conflines = replace_token(conflines, "#dynamic_shared_memory_type = posix",
repltok);
#if !USE_PREFETCH
conflines = replace_token(conflines,
"#effective_io_concurrency = 1",
"#effective_io_concurrency = 0");
#endif
snprintf(path, sizeof(path), "%s/postgresql.conf", pg_data);
writefile(path, conflines);