Critical state information concerning ongoing transactions is saved on a continual basis in the transaction log file. A chronological series of transaction log files is maintained during FairCom DB operation. Transaction log files containing actual transaction information are saved as ordinary files and given names in sequential order, starting with L0000001.FCS (which can be thought of as “active FairCom Server log, number 0000001”) and incrementing sequentially (i.e., the next log file is L0000002.FCS, etc.). By default, FairCom DB retains up to four active logs at a given time.
By default, transaction log files are extended and flushed to ensure log space is available. Transaction logs are also 0xff filled to ensure known contents. The 0xff filling of the log file (and forcing its directory entries to disk) occurs during log write operations. For high transaction rate systems, this means log file processing is frequently busy with extension and fill processing, leading to increased latency for transactions in progress when log extension occurs.
Transaction log templates allows high throughput systems to maintain one or more preformed transaction logs ready to use. With log templates enabled, an empty log file is created at server startup, L0000000.FCT, to serve as a template. The first actual full log, L0000001.FCS, is copied from this template as well as the next blank log, L0000002.FCT. Whenever a new log is required, the corresponding blank log file is renamed from L000000X.FCT to L000000X.FCS and, asynchronously, the next blank log, L000000Y.FCT, is then copied from the template.