LogWriteIntegrity - using SingleWrite or TripleWrite
The setting of the LogWriteIntegrity option, in the Log stanza of the qm.ini file, determines the algorithm that is used by logger in IBM MQ to write out log records to the recovery log. The default setting is TripleWrite and this setting is both safe in almost every possible scenario
The setting of LogWriteIntegrity has any effect at all, only when a partial log page is to be written. For a queue manager with a reasonable amount of concurrent activity this scenario rarely occurs.
SingleWrite
SingleWrite selects an algorithm which, under very unusual circumstances, can perform better than the default TripleWrite setting. The SingleWrite setting is safe, only if the underlying storage platform can absolutely guarantee under all circumstances that 4KB pages written synchronously to the MQ recovery log are atomically written.
We should use the SingleWritesetting, only if the file-system or device,hosting the IBM MQ recovery log, explicitly guarantees the atomicity of 4KB writes. That is, when a write of a 4KB page fails for any reason the only two possible states should be either the before image, or the after image, and that no intermediate state should be possible. In all other cases we should us TripleWrite.
On a system with sufficient concurrency the queue manager writes only full pages of log data, and if a high percentage of full pages is achieved, there is no significant performance difference between SingleWrite and TripleWrite.
On a system with little concurrency there can be a significant performance advantage to SingleWrite, however the preferred solution is typically to increase concurrency, rather than to use SingleWrite.
Note that it can be difficult to reliably determine the atomicity of 4KB writes, and changes to the underlying software or hardware might invalidate any such guarantee.
If we are in any doubt that your storage infrastructure makes the required guarantees now, and at any time in the future in all circumstances, we should use TripleWrite.
Parent topic: Log stanza of the qm.ini file