blazingmq icon indicating copy to clipboard operation
blazingmq copied to clipboard

Performance[MQB]: inline Put, Push, Ack, Confirm

Open dorjesinpo opened this issue 2 years ago • 3 comments

Messages that have fixed destination (such as PUSH/ACK/Relay PUT/Relay CONFIRM) do not have to go on Cluster thread - it is a bottleneck. Instead, messages can go directly to mqbnet::Channel which enqueues them in thread-safe manner. This needs synchronization based on AtomicGate which allows thread-safe, efficient checking of the cluster status and thread-safe opening/closing and draining.

PUSH and ACK require statistics update which we move from Cluster to Queue. For this reason the opening queue context (OpenQueueConfirmationCookie) conveys statistics from Queue to Cluster

dorjesinpo avatar Dec 22 '23 20:12 dorjesinpo

Hi @dorjesinpo, looking

678098 avatar Jan 04 '24 11:01 678098

@dorjesinpo thank you for fixes, added some comments in discussions and reassigned. You can assign this to @quarter-note later

678098 avatar Jan 10 '24 21:01 678098