Skip to Main Content
Spotfire Ideas Portal
Status Implemented
Created by Guest
Created on Oct 10, 2016

Inter-parallel region queue back pressure

The StreamBase Runtime allows inter-parallel region queues to grow without bound, at least until JVM heap memory is almost exhausted, and in practice processes that reach this stage typically just fall over and die or hang anyway, which is not a graceful failure mode at all as a response to the fairly common situation where input messages are arriving either faster than the StreamBase server is processing them and/or some system downstream of the StreamBase server is able to consume messages published.

There are, however, significant classes of event processing and streaming analytics applications where it would be much better if the queues had a maximum size beyond which they would not be allowed to grow, and any thread attempting to insert a tuple into a queue that was full would block until there was space available in the queue. That is, where waiting is better than crashing or hanging, oddly enough.

For another explanation of this concept, please see http://mechanical-sympathy.blogspot.com/2012/05/apply-back-pressure-when-overloaded.html

I propose that this feature set be added as an option, and that the maximum queue sizes be part of the application's configuration rather than its EventFlow source code.

See also jira.tibco.com SB-29980.

For an example where inter-parallel region queue back pressure would have been helpful, see http://confluence.tibco.com/display/TPFC/Throttling+of+StreamBase+Applications+Consuming+High+Volume+of+Text+Files in which PSG's Ari Hermawan proposes using two other TIBCO products (BW and EMS), adding architectural complexity to his project, where inter-parallel region queue back pressure would have sufficed.

  • Attach files