Log Parameters

As explained in the section “Persistent Media I/O”, eXtremeDB maintains a database log file together with the data file(s) for persistent databases to allow for recovery in the case of a system crash. The manner in which database updates are written to the log file is determined by the value of the db_log_type element of mco_db_params_t and the Transaction Commit Policy and other settings defined in the mco_log_params_t structure whose elements are as follows:

default_commit_policy  The commit policy; defined as one of the following values: MCO_COMMIT_SYNC_FLUSH, MCO_COMMIT_BUFFERED, MCO_COMMIT_DELAYED, or  MCO_COMMIT_NO_SYNC.         (See the Transaction Commit Policy page for an explanation of the meaning of these transaction policies).
redo_log_limit  Threshold value for the REDO transaction log. After the transaction log file size reaches this value the database file is flushed to the persistent storage (the process is often referred to as a checkpoint) and the log file is truncated. Note that the log file cannot be truncated until all transactions are committed. Therefore, the redo_log_limit cannot be treated as maximum size of the transaction log, it can exceed this value. The default value is 16M.
delayed_commit_threshold  This parameter controls the MCO_COMMIT_DELAYED transaction policy. In this mode, all modified pages are pinned in the page pool and don’t get written to the persistent storage upon transaction commit. When the total size of all pinned pages reaches this threshold, or when the number of delayed commits exceeds the max_delayed_transactions value parameter, or when the max_commit_delay timeout has been reached (see below) all delayed transactions are committed to the persistent storage at once. The default value is 1/3 of the cache size.
max_delayed_transactions  This parameter controls the MCO_COMMIT_DELAYED transaction policy (see delayed_commit_threshold above). By default, the number of delayed transactions is not limited (0).
max_commit_delay This parameter controls the MCO_COMMIT_DELAYED transaction policy (see delayed_commit_threshold and max_delayed_transactions above). This is the number of application-defined clock cycles (milliseconds by default) to wait before all delayed transactions are committed to the persistent storage at once.