HP JFS 3.3 and HP OnLineJFS 3.3 VERITAS File System 3.3 System Administrator's Guide

112 Chapter6
Application Interface
Cache Advisories
direct I/O request does not allocate storage or extend the file, the inode is
not immediately written.
The CPU cost of direct I/O is about the same as a raw disk transfer. For
sequential I/O to very large files, using direct I/O with large transfer
sizes can provide the same speed as buffered I/O with much less CPU
overhead.
If the file is being extended or storage is being allocated, direct I/O must
write the inode change before returning to the application. This
eliminates some of the performance advantages of direct I/O.
The direct I/O and VX_DIRECT advisories are maintained on a
per-file-descriptor basis.
Unbuffered I/O
If the VX_UNBUFFERED advisory is set, I/O behavior is the same as direct
I/O with the VX_DIRECT advisory set, so the alignment constraints that
apply to direct I/O also apply to unbuffered. For I/O with unbuffered I/O,
however, if the file is being extended, or storage is being allocated to the
file, inode changes are not updated synchronously before the write
returns to the user. The VX_UNBUFFERED advisory is maintained on a
per-file-descriptor basis.
Discovered Direct I/O
Discovered Direct I/O is not a cache advisory that the user can set using
the VX_SETCACHE ioctl. When the file system gets an I/O request larger
than the default size of 128K, it tries to use direct I/O on the request. For
large I/O sizes, Discovered Direct I/O can perform much better than
buffered I/O.
Discovered Direct I/O behavior is similar to direct I/O and has the same
alignment constraints, except writes that allocate storage or extend the
file size do not require writing the inode changes before returning to the
application.
Data Synchronous I/O
If the VX_DSYNC advisory is set, the user is requesting data synchronous
I/O. In synchronous I/O, the data is written, and the inode is written with
updated times and (if necessary) an increased file size. In data
synchronous I/O, the data is transferred to disk synchronously before the