Storage Configuration

The software event broker uses PubSub+ specific constructs called storage-elements to store state information. Storage-elements are portable, independent entities that abstract the physical location of the event broker's state information storage. In production deployments, we recommend that storage-elements be placed on appropriately sized external storage volumes that have optimized locations, capacity, and speed. Given that such optimizations are highly dependent on the specifics of your environment, this section only discusses the basics and provides some simple configuration examples.

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

Summary

The subsections that follow dive into the details on how the Solace PubSub+ software event broker stores data, but the key points are as follows:

  • The software event broker's state information is stored in portable, independent constructs called storage-elements.
  • There are 6 storage-elements: jail, diagnostics, var, adb, adbBackup, and spool.
  • For production deployments, we recommend that storage-elements be assigned to external storage. The characteristics of that storage depend on:
    • the software event broker's configured connection scaling tier
    • the storage-element's IOPS requirements
    • the storage-element's write load requirements
    • the need to persist data; for example, the need to support upgrading
  • Storage-elements can be configured to reside on their own separate external volume, or in combinations on shared volumes.
  • The Docker container images and machine and cloud images use different techniques for the assignment of storage-elements to external storage.

What you can do next

If you feel you understand the basic concepts, you can jump straight to configuration examples for your particular PubSub+ package :

Storage-Element Characteristics & Requirements

Storage-elements are PubSub+ specific constructs used by the software event broker that abstract the physical location of state information storage. All ephemeral and persistent data within a software event broker is written to storage-elements. They are portable and independent entities which makes them easy to assign to external storage, either on an individual, one-to-one mapping basis, or in combinations.

The following table lists all six storage-elements, and explains what each is for in the 'Use' column. As well, the table lists their associated mount points, shows the IOPS recommendation for an external device, and notes the recommended persistence and associated write load.

Storage-Element Properties

Storage-Element

Use Mounted On IOPS Persisted? Write Load
jail Storage for logs and backup configuration files. This storage-element is used during an upgrade of the configuration and spool. /usr/sw/jail Medium Yes  
diagnostics Storage for diagnostic data. /var/lib/solace/diags Medium Yes  
spool Storage for spooled messages. This storage-element is used during an upgrade of the configuration and spool. /usr/sw/internalSpool High Yes High
adb Storage for the state of undelivered messages. This storage-element is used during an upgrade of the configuration and spool. /usr/sw/internalSpool/softAdb High Yes High
adbBackup Storage for run-time state used for recovery during system shutdown. This storage-element is used during an upgrade of configuration and spool. /usr/sw/adb Low Yes Low
var Storage for the software event broker's Docker container configuration. /usr/sw/var Medium Yes  

In the above table, IOPS means 'Input / Output Operations Per Second' and the column contains a recommendation for the particular storage-element. As a general recommendation, 'High' indicates that message delivery performance is related to the IOPS performance of the underlying physical media, and 'Medium' indicates that system stability is related to the underlying physical media.

Write Load is a general term used to describe the amount of data written to physical media per unit time. A High Write Load indicates that the data content changes frequently.

When an event broker is configured to operate at a particular connection scaling tier, various application limits, such as client usernames, subscriptions, and flows, are automatically scaled to match the capabilities of the newly configured connection scaling tier. And, with increasing connection scale, storage-element space requirements also increase. The following table lists the minimum recommended storage-element space you need to provision for each scaling tier.

Minimum Recommended Storage-Element Size per Scaling Tier

 

Scaling Tier
up to 100 up to 1,000 up to 10,000 up to 100,000 up to 200,000

Storage-Element

Size (GB)

Size (GB)

Size (GB)

Size (GB)

Size (GB)

jail 1.1 1.1 1.1 1.1 1.1
diagnostics 2.5 8.6 10.7 21.5 21.5
spool 1.1 1.1 2.2 2.2 4.3
adb 1.3 1.9 2.2 2.7 3.2
adbBackup 0.7 0.7 1.1 1.1 2.2
var 0.2 0.2 0.2 1.1 1.1

Next Steps

The procedures to migrate storage-elements to external storage depend on the type of software event broker image you're using: