Skip to main content

Special Considerations for Journaling

This page discusses special considerations that may affect how you use journaling in InterSystems IRIS® data platform:

Performance

While journaling is crucial to ensuring the integrity of your database, it can consume disk space and slow performance, depending on the number of global updates being journaled.

Journaling affects performance because updates result in double processing, as the change is recorded in both the database and the journal file. InterSystems IRIS uses a flat file journaling scheme to minimize the adverse effect on performance.

UNIX® File System Recommendations

Supported File Systems, which outlines file systems recommended and supported by InterSystems on UNIX®/Linux platforms, includes notes about mount options for optimum journaling performance.

Note:

When you configure the primary or alternate journal directory on a file system that does not have the recommended mount option, a message like the following is entered in the messages log:

The device for the new journal file was not mounted with a recommended option (cio).

System Clock Recommendations

All operating systems supported by InterSystems IRIS provide Network Time Protocol (NTP) clients, which keep the system clock synchronized to a reference system, as well as facilities that automatically adjust the system clock between daylight saving time and standard time.

It is recommended that you rely on the automatic clock management features of the operating system to keep the system clock synchronized and regulated rather than adjust the system clock manually.

If you must make manual time adjustments for tasks such as testing, be sure to use a test environment (rather than the production environment) when performing such tasks. Furthermore, manual adjustments should be made with care because non-chronological events – such as adjusting the clock forward or backward – may cause issues for some utilities.

Disabling Journaling for Filing Operations

Under certain circumstances, it may be useful or necessary to disable journaling for filing operations, such as object saves and deletes. There are two ways to do this:

  • When you open an object (typically with %OpenIdOpens in a new tab or %OpenOpens in a new tab), specify a concurrency value of 0. However, if the object is already open with a higher concurrency value, then specifying a concurrency of 0 is not effective.

  • Suspend object filer transaction processing for the current process. To do this, call $system.OBJ.SetTransactionMode(0) (which is the SetTransactionModeOpens in a new tab method of the %SYSTEM.OBJOpens in a new tab class; you can invoke it through the special $system object). The SetTransactionMode method takes a value of 0 or 1: 0 turns off object filer transactions and 1 turns them on. Note that this setting affects the entire process, not just the current filing operation.

Important:

While certain circumstances call for disabling journaling, make sure that this is necessary before doing it. Otherwise, there may be a journal that does not include all the data required, which can result in the permanent loss of data.

See Also

FeedbackOpens in a new tab