View Only

Streaming Queues Performance

By PAUL HARRIS posted Thu September 30, 2021 05:04 AM


Streaming Queues Performance

The streaming queues feature of IBM® MQ, introduced in V9.2.3 allows you to configure a queue to put a near-identical copy of every message to a second queue (see New Streaming Queue feature for MQ 9.2.3).

Previous approaches to duplicating messaging involved using Pub/Sub (though this requires an existing consuming application to switch to a new subscriber queue). In either case there is an overhead in producing additional copies of a message.

Some example scenarios have been tested to demonstrate the performance of message duplication using streaming queues, Pub/Sub, or a combination of both where multiple duplicates are required. A performance report is now available on the MQ performance GitHub site : MQ V9.2.3 Streaming Queues Performance Report.pdf

Using streaming queues to duplicate messages was found to be equal or better in performance to using Pub/Sub, whilst providing a simpler and less intrusive approach (e.g. stream queues can be introduced without any interruption to services).

It is important to consider how additional messages are consumed to minimise the load on the system:

  • To achieve the best performance, duplicate messages on the streaming queue should be consumed by applications interested in the copy at the same time, to avoid deep queues building up.
  • Batching multiple duplicate messages into units of work can reduce the overhead further.

The table below shows the peak achievable PUT rate in a point-to-point test by multiple putters (App1) where the messages are consumed at the same rate (i.e. no message build-ups on queues).  Where the message is subsequently duplicated, the additional PUT rate in the queue manager is shown (e.g. when a message is duplicated 6 times there will be 1 App1 PUT and 6 additional PUTs to subscriber queues). Factors such as the quality-of-service of the stream queue (BESTEF or MUSTDUP) will affect performance as shown in the table.

All of the tests above are described in more detail along with further results in the performance report on the MQ Performance GitHub site: MQ V9.2.3 Streaming Queues Performance Report.pdf

To see the complete list of MQ performance reports on GitHub:  MQ Performance Documents