Compact performance affected by file caching system

Technote (FAQ)


Question

Domino® utilizes extensive caching in order to optimize speed for database-related operations. At varying intervals, Domino will force these caches to be written to disk. This ensures that the data is available in a protected location, and allows for database repair in case of a system failure.

Domino is designed to scale the file system cache proportionally based on available system memory. As a result, machines with larger memory profiles will have larger caches. All read and write activity to in-use databases are stored in the cache. When the command to flush this cache to disk is received, the server must track all open file buffers associated with a database, trace the data in the cache, and then write that data out to disk. The larger the portion of the file in cache, the more buffers must be checked.

Compact is a Domino operation that requires a database to be read into the file cache in order for the data to be optimized. By way of example, on a Windows® Domino server one buffer is created for each 4K of data, meaning that even moderately-sized databases will have hundreds of thousands of buffers. On systems with smaller amounts of free memory, compact performs multiple cache read and write operations to pull in a small amount of a database, process the data, and write it back to disk. On systems with larger amounts of memory, larger segments of the database are read into cache before processing; when the cache flush operation is performed, the associated buffers must then be checked. This check is what can significantly impair compact's performance. While this issue affects all operating systems, reports and testing have shown that Solaris and AIX® systems can be affected to a greater degree.


Answer

This issue was reported to Quality Engineering as SPR#LBRD5TVRV, and was fixed in Domino 6.5.4 Fix Pack 2 and Domino 6.5.5.

Excerpt from the Lotus Domino Release 6.5.5 MR and 6.5.4 Fix Pack 2 fix lists (available at http://www.ibm.com/developerworks/lotus/):):

    Compact
    SPR# LBRD5TVRVF - Performance improvement when using Compact on medium and large databases, on the Unix platform.

There are now new options that can be used to avoid these problems.

1. Using the "in-place" option with the compact task (-Q or -q) will prevent it from using the cache during its run. NOTE: For Domino servers running on Solaris or AIX, this procedure can be used on any database as described. Due to the design of the Windows architecture, in order for the no-cache option to be used, the database must not be open. If the -Q or -q option is run against an open database in Windows - e.g. the server's Domino Directory - then a standard compact would be performed, and the option ignored.

2. A new NOTES.INI parameter has been introduced to regulate file system cache behavior: DEBUG_FileSizeThreshold=[file size in MB]. This parameter mandates that any database larger than the specified size will be opened without using the file system cache. Note that this can be enabled dynamically on the Domino console, with no need to restart. While this circumvents the compact task performance issue, be aware that this parameter causes all databases above the limit to bypass the cache for all database operations. Depending on the server configuration and databases used, this may cause an impact on database read performance.

3. A new diagnostic parameter has also been included: DEBUG_FileSyncThreshold=[time in ms]. Also a dynamic parameter, it is designed to provide information in the event troubleshooting is necessary. In general, this parameter should not be enabled unless Lotus Support requests its activation.

Once enabled, these parameters can have a marked impact on compact performance. The following chart illustrates tests performed on sample databases with compact. Note that these times are for comparison purposes only. The contents of the database and the hardware capabilities of the Domino system performing the compact can cause variations in performance.

Operating System
WIN32
SOLARIS
AIX
compact time 20MB
00:01:36
00:01:15
00:00:28
NEW compact time 20MB
00:01:51
00:00:26
00:00:15
compact time 500MB
00:33:39
01:02:04
01:43:10
NEW compact time 500MB
00:27:56
00:20:34
01:21:51
compact time 1GB
01:25:04
03:38:02
10:00:54
NEW compact time 1GB
00:48:33
00:50:07
NA


These new options are designed to optimize performance by bypassing the standard caching mechanisms the server uses. There are also operating system optimizations that can improve performance by improving buffer management. To date, the main operating system to incorporate these optimizations is AIX; version 5.3 has changes to the Logical Volume Manager that increases performance and throughput on operations such as compact. The following sample statistics show the benefits of compact performance under AIX 5.3.

Operating System
AIX 5.2
AIX 5.3
compact time 7.1 GB
05:47:00
3:41:00


Refer to the Upgrade Central site for details on upgrading Notes/Domino.

Related information

Information about Lotus Domino 6.5.4 Fix Pack 2
Lotus Domino 6.5.4 Fix Pack 2 (FP2) is available


Rate this page:

(0 users)Average rating

Add comments

Document information


More support for:

Lotus End of Support Products
Lotus Domino

Software version:

4.5, 4.6, 5.0, 6.0, 6.5, 7.0

Operating system(s):

AIX, Linux iSeries, OS/390, OS/400, Solaris, Windows, i5/OS, z/OS

Reference #:

1202023

Modified date:

2010-01-26

Translate my page

Machine Translation

Content navigation