Menu Search

9.2. Disk Space Management

9.2.1. Disk quota-based flow control

The Apache Qpid Broker-J supports a flow control mechanism which is triggered when a configured disk quota is exceeded. This is supported by the BDB and Derby virtualhosts.

This functionality blocks all producers on reaching the disk overflow limit. When consumers consume the messages, causing disk space usage to falls below the underflow limit, the producers are unblocked and continue working as normal.

Two limits can be configured:

overfull limit - the maximum space on disk (in bytes).

underfull limit - when the space on disk drops below this limit, producers are allowed to resume publishing.

The overfull and underful limit can be specified when a new virtualhost is created or an exiting virtualhost is edited. This can be done using the Store Overflow and Store Underfull settings within the virtual host creation and edit dialogue. If editing an existing virtualhost, the virtualhost must be restarted for the new values to take effect.

The disk quota functionality is based on "best effort" principle. This means the broker cannot guarantee that the disk space limit will not be exceeded. If several concurrent transactions are started before the limit is reached, which collectively cause the limit to be exceeded, the broker may allow all of them to be committed.

The Broker will also impose flow control if the filesystem hosting a virtualhost exceeds a configured percentage..


The Producer Flow Control can be configured on individual queue using Producer Flow Control overflow policy. For more details, please readSection 4.7.5, “Controlling Queue Size”. Broker Log Messages for quota flow control

There are two broker log messages that may occur if flow control through disk quota limits is enabled. When the virtual host is blocked due to exceeding of the disk quota limit the following message appears in the broker log

                [vh(/test)/ms(BDBMessageStore)] MST-1008 : Store overfull, flow control will be enforced

When virtual host is unblocked after cleaning the disk space the following message appears in the broker log

                [vh(/test)/ms(BDBMessageStore)] MST-1009 : Store overfull condition cleared