It is possible to buffer df files in
memory and not flush those files to disk until they exceed a
specified size, or until they are required to be placed on stable
storage by the standards. That maximum buffered size is specified
with this DataFileBufferSize option. It is
declared like this:
O DataFileBufferSize=size configuration file (V8.10 and later)
-ODataFileBufferSize=size command line (V8.10 and later)
define(`confDF_BUFFER_SIZE',size) mc configuration (V8.10 and later)
Here, size is of type
numeric. If size is less than
or equal to zero, no buffering is performed (all
df files are immediately placed on disk when
opened). When size is greater than zero, all
df files are held in memory (not placed on disk
when opened) until closed, until the amount of data buffered exceeds
size, or until they are required to be
placed on stable storage by the standards. Only then is the file
created and placed on disk.
Buffered file I/O is beneficial when high rates of outbound mail are
desired because disk I/O is generally very expensive.
If the DataFileBufferSize option is not declared,
the default for the mc configuration file is to
omit this option. If the size is omitted, the
default becomes 4096 bytes.
See also the SuperSafe option (SuperSafe) and the ${opMode} macro
(${opMode}), as they can interact with this
option.
The DataFileBufferSize option is not safe. If
specified from the command line, it can cause
sendmail to relinquish its special privileges.