activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From mattrpav <>
Subject [GitHub] activemq-artemis issue #875: ARTEMIS-550 Add virtual topic support
Date Thu, 03 Nov 2016 15:55:52 GMT
Github user mattrpav commented on the issue:
    I'll detail out the use cases:
    1) selectorAware:  This allows an interested subscriber to only receive messages in their
queue that match a given selector. This broker pre-filtering is a server-side optimization
which reduces the on-disk requirements for really busy Virtual Topics.
    2) transactedSend: This is a (imho & experience) critical reliability requirement.
In use cases where reliability is a crticial requirement: when a producer sends a message
to the broker, even during non-transacted sessions, the broker should transact the dispatch
to the consumer queues before ack'n the producer. This ensures no messages are lost in the
event of unplanned outage while a broker is dispatching messages to the consumer queues.
    3) concurrentSend: This is a critical performance enhancement for Virtual Topics where
there are a large number of consumer queues. The behavior is that the broker processes queue
dispatch in parallel to consumer queues in order to improve throughput and lower latency.
    i. transactedSend and concurrentSend are often used in conjunction
    ii. selectorAware requires some sort of persistence store so selectors are maintained
across restarts (specifically useful during maintenance and failover testing)
    iii. While outside the scope of this PR, I thought I'd mention it here as it is related--
there has long been a desire to enhance ActiveMQ to support single-message store. That is,
for all subscriptions, only store a single copy of a message. This becomes really apparent
in use cases with a large number of Virtual Consumers.

If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at or file a JIRA ticket
with INFRA.

View raw message