Both of these options are used for data integrity but they may reduce performance.
The
mincache=direct, mincache=unbuffered, and
mincache=dsync modes are used in environments where applications are experiencing reliability problems caused by the kernel buffering of I/O and delayed flushing of non-synchronous I/O. The
mincache=direct and
mincache=unbuffered modes guarantee that all non-synchronous I/O requests to files will be handled as if the
VX_DIRECT or
VX_UNBUFFERED caching advisories had been specified. The
mincache=dsync mode guarantees that all non-synchronous I/O requests to files will be handled as if the
VX_DSYNC caching advisory had been specified.
Since the mincache=direct, mincache=unbuffered, and mincache=dsync modes change non-synchronous I/O to synchronous I/O, there can be a substantial degradation in throughput for small to medium size files for most applications. Since the VX_DIRECT and VX_UNBUFFERED advisories do not allow any caching of data, applications that would normally benefit from caching for reads will usually experience less degradation with the mincache=dsync mode. The mincache=direct and mincache=unbuffered options require significantly less CPU time than buffered I/O.
Note: If performance is more important than data integrity, the mincache=tmpcache mode may be used.
The
convosync=direct and
convosync=unbuffered mode convert synchronous and data synchronous reads and writes to direct reads and writes.
As with
closesync, the
direct,
unbuffered, and
dsync modes flush changes to the file to disk when it is closed. These modes can be used to speed up applications that use synchronous I/O. Many applications that are concerned with data integrity specify the
O_SYNC fcntl in order to write the file data synchronously. However, this has the side effect of updating inode times and therefore slowing down performance. The
convosync=dsync,
convosync=unbuffered, and
convosync=direct modes alleviate this problem by allowing applications to take advantage of synchronous writes without modifying inode times as well.