Veritas Storage Foundation™ for Oracle 5.0.1 Administrator's Guide

Supporting direct I/O
I/O on files using read() and write() system calls typically results in data being
copied twice: once between user and kernel space, and later between kernel space
and disk. In contrast, I/O on raw devices is direct. That is, data is copied directly
between user space and disk, saving one level of copying. As with I/O on raw
devices, Quick I/O avoids extra copying.
Avoiding kernel write locks
When database I/O is performed using the write() system call, each system call
acquires and releases a write lock inside the kernel. This lock prevents multiple
simultaneous write operations on the same file. Because database systems usually
implement their own locking to manage concurrent access to files, per file writer
locks unnecessarily serialize I/O operations. Quick I/O bypasses file system per
file locking and lets the database server control data access.
Avoiding double buffering
Most database servers maintain their own buffer cache and do not need the file
system buffer cache. Database data cached in the file system buffer is therefore
redundant and results in wasted memory and extra system CPU utilization to
manage the buffer. By supporting direct I/O, Quick I/O eliminates double buffering.
Data is copied directly between the relational database management system
(RDBMS) cache and disk, which lowers CPU utilization and frees up memory that
can then be used by the database server buffer cache to further improve transaction
processing throughput.
About Quick I/O requirements
To use Quick I/O, you must:
Preallocate files on a VxFS file system
Use a special file naming convention to access the files
Preallocating files
Preallocating database files for Quick I/O allocates contiguous space for the files.
The file system space reservation algorithms attempt to allocate space for an
entire file as a single contiguous extent. When this is not possible due to lack of
contiguous space on the file system, the file is created as a series of direct extents.
Accessing a file using direct extents is inherently faster than accessing the same
data using indirect extents. Internal tests have shown performance degradation
77Using Veritas Quick I/O
About Quick I/O