Synchronous Writes and Logging Performance
In Iguana, you can specify that frequently written files, such as log files, are to be synchronized after each write operation. The details of how this is performed depend on the operating system that you are using:
- If you are using Windows, Unix or Linux, the fsync operation is invoked whenever the log output buffer and corresponding index files are flushed.
- If you are using Mac OS X, fsync and the pragma synchronous setting are set in the same way as in Windows, Unix and Linux. In addition, the F_FULLFSYNC file control operation is used, which ensures that all buffered data is flushed to disk. In the Mac environment, F_FULLFSYNC is the only way to ensure reliable and safe writing of files to disk. Unfortunately, this is significantly slower than asynchronous writes.
Note: files that are not updated frequently, such as log metafiles, are always written synchronously.
Tip: If your files are being synchronized after each write operation and your Iguana channels have a high volume of activity, it is best to store the Iguana log files and database files on a physical device other than that on which the operating system and other applications are stored. This ensures that the synchronize operations do not adversely affect the performance of your operating system or of the other applications that you are running.
For details on how to change the Iguana log directory, see Changing the Log Directory.