Managing Software Event Broker Storage

The software event broker uses a special construct called a storage-group to store state information. The storage-group is further subdivided into storage-elements that allow you to customize the event broker storage resources to meet the needs of your application.

In versions of SolOS prior to 9.12, the storage-elements were typically externalized to separate storage volumes and mounted to the container using multiple mount points. In version 9.12 and later, the storage-group is now mapped to a single mount point. For details about how to convert from storage-elements to the single storage-group, refer to Converting from Multiple Mount Points to a Single Mount Point

For assistance with planning and optimizing the storage configuration of your deployment, contact Solace.

Understanding the Storage-Group

The event broker maintains a significant amount of state on disk, including spooled messages, runtime configuration, and diagnostic information. This state is represented by a storage unit called a storage-group, which is further organized into directories called storage-elements.

The storage-group is portable—that is, you can map a storage-group to any storage device that meets the capacity, persistence, and performance requirements of the application. In the container filesystem, the storage-group is mounted to /var/lib/solace.

The amount of disk space needed for the storage-group depends on the event broker configuration. See System Resource Requirements for more information.

We recommend that you map the storage-group to external storage and that you use full disk encryption. For more information, see Managing Storage for Container Images.

The storage-group consists of six storage-elements, each of which is independently monitored and managed by the event broker. The storage-elements are described in the table below.

Storage-Group Properties

Storage-Element Purpose Device Considerations Mounted On
jail Stores logs and configuration database backups. Depending on the level of broker activity, the write load of this storage-element can be moderate to high. The contents of this storage-element are not necessary during upgrade but are helpful in the event support is required. /var/lib/solace/jail
var Stores the configuration database. Typically, the write load of this storage-element is low, however, poor device throughput can lead to system instability. The contents of this storage-element must be preserved during upgrades. /var/lib/solace/var
diagnostics Storage for diagnostic information for support. The contents of this storage-element are not necessary during upgrade but are helpful in the event support is required. /var/lib/solace/diagnostics
spool Stores spooled messages. Broker stability and performance is directly related to device performance. The contents of this storage-element must be preserved during upgrades to prevent message loss. /var/lib/solace/spool
spool-cache Stores undelivered messages. Broker stability and performance is directly related to device performance. The contents of this storage-element must be preserved during upgrades to prevent losing undelivered messages. /var/lib/solace/spool-cache
spool-cache-backup Stores runtime information used for recovery after system shutdown. The contents of this storage-element are not necessary during upgrade but are helpful in the event support is required. /var/lib/solace/spool-cache-backup