Product Documentation

FairCom ISAM for C

Previous Topic

Next Topic

Avoiding File Flush at Server Shutdown

With the FairCom cache system, it is possible for users to have extremely large cache sizes (e.g., 2GB). With caches this large, it may be possible for a non-tranlog file to never be written to disk during its entire life cycle (tranlog files are written to disk by background flushing). The c‑tree Server flushes files to disk when it is shut down. In the case of a “scratch” or “temp” file, it may not be necessary to flush the file to disk. If the file is large, this will cause extra time for the server to shut down, and you might not want to suffer this extra shutdown time.

To handle this situation, the server keyword NO_SHUTDOWN_FLUSH allows the server to skip flushing non-transaction controlled files during server shutdown. Non-transaction controlled files can be specified as shown below for this treatment. Notice that such a file will be corrupted after shutdown (if file flushing was indeed skipped). For a server, configuration entries are of the form:

NO_SHUTDOWN_FLUSH <file name>

Note that <file name> may specify a wildcard pattern.

FairCom provides two keywords to flush updates for non-tranlog files to the file system as soon as possible in the background:

NONTRAN_DATA_FLUSH_SEC IMMEDIATE

NONTRAN_INDEX_FLUSH_SEC IMMEDIATE

For non-tranlog files, cache writes occur only for background flush, page replacement, explicit flush request, or file close.

NO_SHUTDOWN_FLUSH <file name> applies only to non-tranlog files. Furthermore, it only applies when NONTRAN_DATA_FLUSH_SEC IMMEDIATE and NONTRAN_INDEX_FLUSH_SEC IMMEDIATE are not in ctsrv.cfg. These settings are present by default.

To use the skip file flush at shutdown file list for a bound server, use calls of the following form, where filname points to the file name, bytes and member are LONG, but the values are ignored:

ctFILELIST(filname,&bytes,&member,ctNO_FLUSHlist,ctADDfilelist);

TOCIndex