Vista Software
Tip: CommitLevel explained (getting excellent performance)

CommitLevel explained (getting excellent performance)

Applies to: ALL

The Apollo CommitLevel property was designed to give users more control over how data is buffered by Apollo and by Windows. There are three values for CommitLevel:

  • clFull (slowest, uses no buffering)
  • clNormal (DEFAULT, good performance, uses Windows buffering)
  • clNone (fastest performance, uses Apollo and Windows buffering)

The name of CommitLevel may not be the most descriptive and we should have most likely set the default value of CommitLevel to clNone instead of clNormal. Let me explain how using the various settings of CommitLevel can dramatically affect performance

1) CommitLevel clFull (SLOWEST)
This mode forces Apollo and Windows to always write to disk. There is a big performance penalty to use this mode, but the data is always flushed by both Apollo and Windows.

2) CommitLevel clNormal (GOOD PERFORMANCE) (DEFAULT)
This mode is ideal for desktop configurations where there is a single user working on the data and you want to ensure that data is always saved to disk. clNormal mode provides decent performance because it lets Windows manage the memory as it normally does but it still doesn't use Apollo/SDE's internal buffering. Apollo always flushes its buffers and lets Windows do its thing.

3) CommitLevel clNone (OUTSTANDING PERFORMANCE)
This mode is ideal for either Desktop or LAN/Network configurations where you want data to be managed as fast as possible. With clNone, we take full advantage of Apollo's internal buffering and Windows memory, which gives applications outstanding performance.

These CommitLevels were designed to help mange power outages or unexpected application termination. In other words, the rare case that the power goes out or your application is closed unexpectedly. Using CommitLevel set to clFull and, to a lesser extent, clNormal, will provide a reasonable safety net for ensuring that data is actually written to disk because there will be a high degree of probability that the data will have already been "flushed" to disk before the failure event. In retrospect, we should have made the default for CommitLevel set to clNone. It's the level that's always been used for Apollo. That's why you may have noticed some performance changes between old versions of Apollo and new versions.

In summary, we highly recommend that CommitLevel be set to clNone!

Back
Apollo Database Engines