VERITAS Storage Foundation 4.1 Oracle Administrator's Guide
Chapter 3, Using VERITAS Quick I/O
Prerelease 8 September 2005, 8:54am Understanding Quick I/O
85
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.
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
Preallocation
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
in OLTP throughput when using indirect extent access. In addition, this type of preallocation causes
no fragmentation of the file system.
You must preallocate Quick I/O files because they cannot be extended through writes using their
Quick I/O interfaces. They are initially limited to the maximum size you specify at the time of
creation. To extend Quick I/O files, see “Extending a Quick I/O File” on page 104.
Naming Convention
VxFS uses a special naming convention to recognize and access Quick I/O files as raw character
devices. VxFS recognizes the file when you add the following extension to a file name:
::cdev:vxfs: