(<acronym>AIO</acronym>) describes
performing <acronym>I/O</acronym> in a non-blocking way (asynchronously),
in contrast to synchronous <acronym>I/O</acronym>, which blocks for the
entire duration of the <acronym>I/O</acronym>.
</para>
<para>
With <acronym>AIO</acronym>, starting an <acronym>I/O</acronym> operation
is separated from waiting for the result of the operation, allowing
multiple <acronym>I/O</acronym> operations to be initiated concurrently,
as well as performing <acronym>CPU</acronym> heavy operations
concurrently with <acronym>I/O</acronym>. The price for that increased
concurrency is increased complexity.
</para>
<glossseealso otherterm="glossary-io" />
</glossdef>
</glossentry>
<glossentry id="glossary-atomic">
<glossterm>Atomic</glossterm>
<glossdef>
<para>
In reference to a <glossterm linkend="glossary-datum">datum</glossterm>:
the fact that its value cannot be broken down into smaller
components.
</para>
</glossdef>
<glossdef>
<para>
In reference to a
<glossterm linkend="glossary-transaction">database transaction</glossterm>:
see <glossterm linkend="glossary-atomicity">atomicity</glossterm>.
</para>
</glossdef>
</glossentry>
<glossentry id="glossary-atomicity">
<glossterm>Atomicity</glossterm>
<glossdef>
<para>
The property of a <glossterm linkend="glossary-transaction">transaction</glossterm>
that either all its operations complete as a single unit or none do.
In addition, if a system failure occurs during the execution of a
transaction, no partial results are visible after recovery.
This is one of the <acronym>ACID</acronym> properties.
</para>
</glossdef>
</glossentry>
<glossentry id="glossary-attribute">
<glossterm>Attribute</glossterm>
<glossdef>
<para>
An element with a certain name and data type found within a
<glossterm linkend="glossary-tuple">tuple</glossterm>.
</para>
</glossdef>
</glossentry>
<glossentry id="glossary-autovacuum">
<glossterm>Autovacuum (process)</glossterm>
<glossdef>
<para>
A set of background processes that routinely perform
<glossterm linkend="glossary-vacuum">vacuum</glossterm>
and <glossterm linkend="glossary-analyze">analyze</glossterm> operations.
The <glossterm linkend="glossary-auxiliary-proc">auxiliary process</glossterm>
that coordinates the work and is always present (unless autovacuum
is disabled) is known as the <firstterm>autovacuum launcher</firstterm>,
and the processes that carry out the tasks are known as the
<firstterm>autovacuum workers</firstterm>.
</para>
<para>
For more information, see
<xref linkend="autovacuum"/>.
</para>
</glossdef>
</glossentry>
<glossentry id="glossary-auxiliary-proc">
<glossterm>Auxiliary process</glossterm>
<glossdef>
<para>
A process within an <glossterm linkend="glossary-instance">instance</glossterm>
that is in charge of some specific background task for the instance.
The auxiliary processes consist of <!-- in alphabetical order -->
<!-- NB: In the code, the autovac launcher doesn't use the auxiliary
process scaffolding; however it does behave as one so we list it
here anyway. In addition, logger isn't connected to shared memory so
most code outside postmaster.c doesn't even consider it a "proc" in
the first place.
-->
the <glossterm linkend="glossary-autovacuum">autovacuum launcher</glossterm>
(but not the autovacuum workers),
the <glossterm linkend="glossary-background-writer">background writer</glossterm>,
the <glossterm linkend="glossary-checkpointer">checkpointer</glossterm>,
the <glossterm linkend="glossary-logger">logger</glossterm>,
the <glossterm linkend="glossary-startup-process">startup process</glossterm>,
the <glossterm