Restrictions and tuning recommendations for HAWC

When enabling HAWC, take the following restrictions and tuning recommendations into consideration:
Ping pong recovery log buffers
Ping pong recovery log buffers should not be enabled when the recovery log is stored on storage devices that can gracefully write data upon power failure. This restriction includes SSDs, NVRAM, storage controllers, and RAID controllers among others.

Ping pong buffers are only needed to avoid data corruption when the recovery log is stored directly on disk. They place log data in two separate locations on disk to avoid loss of that data if a sector becomes unavailable. Writing to two separate locations creates additional overhead that is exacerbated by HAWC due to the large amount of data it places in the recovery log.

In general, it is not recommended to use HAWC with any storage device that requires ping pong buffers to be enabled because it doubles the amount of data that must be written before GPFS™ can respond to an application write request.

To disable log buffers, run the following command:

mmchconfig logPingPongSector=no
Recovery log size
The size of the recovery log defaults to a small value (less than 16 MB), which is not sufficient space to buffer HAWC data. Therefore, it is recommended to increase the size of the log at least to 128 MB or larger (1 GB maximum). However, the effect of a larger recovery log is that upon node failure, more data must be recovered into the storage system, which increases the time that it takes to recover. It is important to take this factor into account because applications will not be able to access data in the file system while recovery is running.
Encryption
Encrypted data is never stored in the recovery log, but instead follows the pre-GPFS 4.1.0.4 semantics for synchronous writes even if the HAWC threshold is set to a value greater than 0.
Small files and directory blocks
HAWC does not change the following behaviors:
  • write behavior of small files when the data is placed in the inode itself
  • write behavior of directory blocks or other metadata