</listitem>
</varlistentry>
+ <varlistentry id="guc-debug-io-direct" xreflabel="debug_io_direct">
+ <term><varname>debug_io_direct</varname> (<type>string</type>)
+ <indexterm>
+ <primary><varname>debug_io_direct</varname> configuration parameter</primary>
+ </indexterm>
+ </term>
+ <listitem>
+ <para>
+ Ask the kernel to minimize caching effects for relation data and WAL
+ files using <literal>O_DIRECT</literal> (most Unix-like systems),
+ <literal>F_NOCACHE</literal> (macOS) or
+ <literal>FILE_FLAG_NO_BUFFERING</literal> (Windows).
+ </para>
+ <para>
+ May be set to an empty string (the default) to disable use of direct
+ I/O, or a comma-separated list of operations that should use direct I/O.
+ The valid options are <literal>data</literal> for
+ main data files, <literal>wal</literal> for WAL files, and
+ <literal>wal_init</literal> for WAL files when being initially
+ allocated.
+ </para>
+ <para>
+ Some operating systems and file systems do not support direct I/O, so
+ non-default settings may be rejected at startup or cause errors.
+ </para>
+ <para>
+ Currently this feature reduces performance, and is intended for
+ developer testing only.
+ </para>
+ </listitem>
+ </varlistentry>
+
<varlistentry id="guc-debug-parallel-query" xreflabel="debug_parallel_query">
<term><varname>debug_parallel_query</varname> (<type>enum</type>)
<indexterm>
</listitem>
</varlistentry>
- <varlistentry id="guc-io-direct" xreflabel="io_direct">
- <term><varname>io_direct</varname> (<type>string</type>)
- <indexterm>
- <primary><varname>io_direct</varname> configuration parameter</primary>
- </indexterm>
- </term>
- <listitem>
- <para>
- Ask the kernel to minimize caching effects for relation data and WAL
- files using <literal>O_DIRECT</literal> (most Unix-like systems),
- <literal>F_NOCACHE</literal> (macOS) or
- <literal>FILE_FLAG_NO_BUFFERING</literal> (Windows).
- </para>
- <para>
- May be set to an empty string (the default) to disable use of direct
- I/O, or a comma-separated list of operations that should use direct I/O.
- The valid options are <literal>data</literal> for
- main data files, <literal>wal</literal> for WAL files, and
- <literal>wal_init</literal> for WAL files when being initially
- allocated.
- </para>
- <para>
- Some operating systems and file systems do not support direct I/O, so
- non-default settings may be rejected at startup or cause errors.
- </para>
- <para>
- Currently this feature reduces performance, and is intended for
- developer testing only.
- </para>
- </listitem>
- </varlistentry>
-
<varlistentry id="guc-post-auth-delay" xreflabel="post_auth_delay">
<term><varname>post_auth_delay</varname> (<type>integer</type>)
<indexterm>
#if PG_O_DIRECT == 0
if (strcmp(*newval, "") != 0)
{
- GUC_check_errdetail("io_direct is not supported on this platform.");
+ GUC_check_errdetail("debug_io_direct is not supported on this platform.");
result = false;
}
flags = 0;
if (!SplitGUCList(rawstring, ',', &elemlist))
{
GUC_check_errdetail("invalid list syntax in parameter \"%s\"",
- "io_direct");
+ "debug_io_direct");
pfree(rawstring);
list_free(elemlist);
return false;
#if XLOG_BLCKSZ < PG_IO_ALIGN_SIZE
if (result && (flags & (IO_DIRECT_WAL | IO_DIRECT_WAL_INIT)))
{
- GUC_check_errdetail("io_direct is not supported for WAL because XLOG_BLCKSZ is too small");
+ GUC_check_errdetail("debug_io_direct is not supported for WAL because XLOG_BLCKSZ is too small");
result = false;
}
#endif
#if BLCKSZ < PG_IO_ALIGN_SIZE
if (result && (flags & IO_DIRECT_DATA))
{
- GUC_check_errdetail("io_direct is not supported for data because BLCKSZ is too small");
+ GUC_check_errdetail("debug_io_direct is not supported for data because BLCKSZ is too small");
result = false;
}
#endif