Product Documentation

c-treeACE V10.0 Update Guide

Previous Topic

Next Topic

Improved Automatic Recovery Performance

A number of improvements to the performance of Automatic Recovery are included in this release:

  • TRANSACTION_FLUSH - In normal operation, the TRANSACTION_FLUSH keyword controls for the maximum number of updates to a data or index buffer before it is flushed. It was found that during automatic recovery, a small (default) TRANSACTION_FLUSH setting would cause recovery to proceed much slower on very large data sets. Investigation into the automatic recovery operations revealed key insert and delete operations (such as when loading key values into an index or when redoing or undoing transactions) use the specified transaction flush value when determining to update an index buffer. These buffers could then be frequently written to disk, causing a noticeable performance impact. Increasing the flush value reduced this frequency. Modifications were made to completely skip the buffer write to disk during recovery operations as all files are closed at the end of recovery and the intermediate writes are unnecessary. The result is a much improved recovery when a large amount of data is retained in the transaction logs.
  • Skip duplicate SetNodeName entries - c-treeACE now skips duplicate SetNodeName transaction log entries for faster performance. While analyzing transaction logs for automatic recovery performance, multiple duplicate entries for setting a client node name were found. We now avoid the extraneous “set-node-name” entries in the transaction logs.
  • RECOVER_MEMLOG for faster automatic recovery with Advanced Encryption - When transaction logs are encrypted with advanced encryption enabled, FairCom recommends the use of the RECOVER_MEMLOG configuration option to load the transaction logs into memory before recovery. This provides a faster decryption as data is already decrypted upon loading of the transaction log.
  • Automatic recovery for Partitioned Files - Significant improvements overall for Partition File support are reflected in this release. This includes both the performance and operations on partition files within auto recovery. It also includes support for partition file’s new global unique indexes.
  • Recognize inaccessible files - Automatic recovery can now recognize that a c-treeACE data or index file that is required by automatic recovery exists but is not accessible. In this situation, automatic recovery logs an error message listing the name of the inaccessible files and terminates. If it is desired for some reason to skip files that are not accessible, the keyword SKIP_INACCESSIBLE_FILES YES causes automatic recovery to skip any file that is not accessible and continue forward with the automatic recovery.
  • Detect infinite loop during recovery - We resolved an issue when recovery appears to hang with 100 percent CPU usage. If a loop exists in the delete stack, we now detect it resolving an infinite loop situation. Based on the file size on disk, set an upper limit on the number of index nodes that could be in the delete stack; we truncate the delete stack if this limit is exceeded.

TOCIndex