Direct File I/O

From: Eugene Chu <chu_at_musp0.jpl.nasa.gov>
Date: Thu, 9 Feb 1995 11:16:08 -0800

Hello OSF Folks

I just experimented with some thing very intersting on an SGI Challenge.
They call it direct I/O to disk files; bypassing system file caching to
directly access files from within your program. It provided much more
predictable file I/O performance that required less system CPU time, and
rather independent of system load. More to the point, it allowed the
I/O operations to occur at rates much closer to actual disk speeds.
Now, this obviously comes at some cost: I had to allocate page aligned
buffers for the transfer and lock it into memory myself, and I had to
address the data in increments of 512 bytes (4096 bytes for 8 way striped
disks). But when I'm reading and writing gigabytes of data, I find that
these methods save me a lot of time from the perspective of CPU usage as
well as the wall clock. This is sort of like direct file access in VMS
using SYS$QIOW. This is NOT the same as direct access records in
FORTRAN.

So my question is: Can this be done on Ultrix or OSF systems? I don't
want to do raw I/O to raw devices, as I like to still have a file
structure on my disks. On the SGI, I enabled direct I/O by openning the
file with special flags in the open() call. However, such flags are not
to be found in any of the include files in OSF or ULTRIX. I was able to
find a brief reference to it in the man page for Prestoserve, which
claimed that direct I/O can not be done on Prestoserved (or, obviosuly,
on any other network mounted) file systems. This may have been
referring to raw I/O, or it may have been referring to direct I/O on a
file system.

So, I would be real grateful if anyone can provide some information on
this.

eyc
Received on Thu Feb 09 1995 - 17:37:24 NZDT

This archive was generated by hypermail 2.4.0 : Wed Nov 08 2023 - 11:53:45 NZDT