Performance with CommitLevel
Introduction to File Server Mode
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)
Selecting the right setting
CommitLevel may not be the ideal name, and the default value
could possible have ben clNone instead of clNormal, but with that aside, lets
look at how the various settings of CommitLevel can dramatically affect
performance:
clFull
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.
clNormal
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.
clNone
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.
In Summary
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 that your application is closed unexpectedly. Setting
CommitLevel 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. That's why you may
have noticed some performance changes between old versions of Apollo and new
versions. In summary, we recommend that CommitLevel be set to clNone.
|