IBM Support

Database cache hold time changes in Domino 7.x and above

Technote (troubleshooting)


Problem

To minimize delays that occur when users, servers, or API programs open and close databases on a server, each server maintains a database cache. When a database closes and there are no users or processes using the database, Domino puts the database in the cache so it can close (and later reopen) it quickly.

In Domino 6.x the database remains in the cache until it is opened again or for about 15 to 20 minutes, whichever comes first.

The amount of time databases are stored in the cache can be significantly longer starting in Domino 7.x. The default is 10,000 minutes (6.6 days).

In many cases these changes can improve performance, but in some situations it can be problematic. The notes.ini parameter NSF_DBCACHE_CLEAN_HOLD_TIME exists to alter this behavior when it is necessary.


Resolving the problem

Databases are dropped from the cache by an "ager" thread that performs necessary writes, deallocates memory, and completes other tasks to close databases. Ideally, databases are dropped from the cache in time to allow new databases to be added without exceeding the maximum databases allowed in the cache. However, if the maximum is exceeded, one of the following occurs:

  • If the number of databases in the cache is less than the maximum allowed times 1.5, when a database is closed it is added to the cache, and the ager accelerates to reduce the number of databases to the maximum allowed. This action may increase stress on the server I/O subsystem and increase competition for cache resources.
  • If the current number of databases in the cache is greater than or equal to the maximum allowed times 1.5, when a database is closed, Domino does not put the database in the cache. Instead it uses the slower, non-cache method to close the database. And when a user or process next opens the database, Domino reads the database from disk rather than from the cache, causing the database to open more slowly than if it were in the cache.


The maximum number of databases allowed in the cache can be viewed by checking the Domino statistic Database.DbCache.MaxEntries.

The maximum hold time can be controlled in Domino 7.x and above by adding the notes.ini parameter NSF_DBCACHE_CLEAN_HOLD_TIME=n (where n is a value in minutes). A value of 0 causes the default (10,000) value to be in effect. A value of -1 causes the cache behavior to revert to Domino 6.x behavior. A very small value may cause undesirable performance issues.



Document information

More support for: IBM Domino

Software version: 7.0, 8.0, 8.5

Operating system(s): Windows

Software edition: Edition Independent

Reference #: 1304498

Modified date: 12 February 2010