By default, UNIX file systems transfer data that is written to a buffer maintained by the operating system (buffer cache). At some point determined by the operating system, this data is then transferred to disk. You may force the data written to disk during write operations by setting IOTYPE=3.
For most applications this has the effect of providing a solid state disk for small files and improves performance. However, for extremely large files, moving the data twice can degrade performance.
FMS provides the raw I/O and direct I/O options as a way to bypass the buffer cache and transfer data directly to disks.
To use the RAW I/O feature, you specify IOTYPE=1 in the license file. In addition, you must also provide a file called FMSRAW that describes the raw devices. This file contains a record for each raw I/O device in the following format:
Column 1: Queue number (0 to 9) Column 2: Stripe number (0 to 9) Column 3: Volume number (0 to 9) Column 4: Space Column 5 and up: Raw device name
The first record contains the mount point for the unstriped files. This is the information normally placed in the directory FMSDISK. The first four columns of this record should be blank.
Each of the following records specifies the mount point for one of the FMS stripes. The values of the FMS Parameters NUMIOQ, NUMSTP and NUMVOL determine the number of records required. This is the information normally placed in directories FMSDISKijk, where i is the queue number, j is the stripe number and k is the volume number.
FMS opens each of these files when FMSINI is called. When you call FMS routines to create files from your application, they are placed within these files.
You may also use the RAW I/O option to address files that are part of the UNIX file system. If you specify a valid path name instead of the raw device name in the FMSRAW file, FMS opens the file and treats it as a raw device. While this does not provide the potential performance benefits of true RAW devices, it may be used to store some of the file data as normal files and some as raw files.
touch /tmp/MYDATA
The file FMSRAW would contain the following:
/tmp/MYDATA
000 rrz3c
010 rrz4c
020 rrz5c
where rrz is the character entry point to the disk partition as listed in the /dev directory.
Without RAW I/O, FMS would normally place the files in the directories FMSDISK, FMSDISK000, FMSDISK010 and FMSDISK020. With RAW I/O, the files are placed within the RAW files. In essence, each RAW file contains the same information that would normally be placed in a directory.