Persistence Limits

Administrators can set parameters to limit the memory growth of persistence services.

These parameters are not suitable for administering data validity or message security.

The time-to-live (TTL) parameters rely on timers. The timers reside in the persistence service leader. If the quorum elects a new leader, all the timers reset and restart.

This table presents an overview of the persistence limits and the ways you can use them to protect against common forms of memory growth. You can find more complete details for each parameter in the topic listed in the GUI Location column of this table.

GUI Parameter GUI Location JSON Parameter Usage
Store Size Limit Stores Grid bytelimit This coarse-grained limit can protect the persistence service from exceeding available memory by limiting the maximum number of bytes in the store.

The persistence server discards new messages that would cause the store to exceed this limit.

Message Time-to-Live Durable Details Panel message_ttl This fine-grained limit protects the store from retaining messages that contain obsolete information.

A message in a durable expires after this timeout (in seconds) elapses since it arrived in a durable. The persistence service deletes it from the durable.

Durable Time-to-Live Durable Details Panel durable_ttl This medium-grained limit protects the store from retaining obsolete durables.

A dynamic durable expires after this timeout (in seconds) elapses without any connected subscribers. The persistence service deletes the durable from the store, along with any messages it contains.

Message Limit Durable Details Panel message_limit This fine-grained limit protects the store from durable growth. Durables grow when subscribers are either absent or too slow to keep pace with publishers.

Limits the maximum number of messages in a durable. When this limit is exceeded, the persistence service discards messages according to the durable's discard policy.

Dynamic Durables Limit Store Details Panel dynamic_durable_limit This medium-grained limit protects the store from subscribing clients that create too many dynamic durables (even when those durables do not receive any messages from publishers).

Limits the number of durables in the store.