Differences in Delivery Modes RAM, Input Stream, ADB or Disk
Hi,
During my tests with the guaranteed messaging, I have observed different "Delivery Mode" values while monitoring queue from CLI such as "RAM", "Input Stream" and "ADB or Disk".
Could someone explain the difference between these delivery modes?
I am wondering even though it is guaranteed messaging why does it deliver the messages from RAM or Input Stream?
If it does, how does it ensure persistence of the message in the spool?
How does this behavior influence Replay capability?
Thanks,
Raghu
Best Answer
-
Hi Raghu! I Googled
solace ram input stream
and this was the 2nd result: https://docs.solace.com/Configuring-and-Managing/Monitoring-Guaranteed-Messaging.htmSpecifically:
- The item ‘Flow Id (State)’ under the Egress Flow Statistics section displays the Guaranteed message egress flow source as ‘Deliver from input stream,’ ‘Deliver from RAM,’ or ‘Deliver from ADB or disk’.
- When Guaranteed messages are being delivered immediately after being spooled, the egress flow is in the ‘Delivered from input stream' state. When Guaranteed messages are being delivered once the client is ready, thus requiring further processing, the egress flow is in either the ‘Deliver from RAM’ or ‘Deliver from ADB or disk’ state.
- Guaranteed messages delivered from RAM require further processing, but are not necessarily copied to/from the ADB or disk (for example, queues with selectors, or queues with transient closures on their transport window).
- Guaranteed messages delivered from input stream have lower latency than messages requiring further processing, while Guaranteed messages delivered from RAM have lower latency than messages delivered from ADB or disk.
It just means "streaming" consumers are keeping up with their full rate, and delivery from RAM, ADB, or disk are getting buffered somewhat and (probably) means the consumers are either slow or catching up.
Persistence is always guaranteed.
And Replay'ed messages will always be served from disk or ADB.
Hope that helps!
6
Answers
-
Hi Raghu! I Googled
solace ram input stream
and this was the 2nd result: https://docs.solace.com/Configuring-and-Managing/Monitoring-Guaranteed-Messaging.htmSpecifically:
- The item ‘Flow Id (State)’ under the Egress Flow Statistics section displays the Guaranteed message egress flow source as ‘Deliver from input stream,’ ‘Deliver from RAM,’ or ‘Deliver from ADB or disk’.
- When Guaranteed messages are being delivered immediately after being spooled, the egress flow is in the ‘Delivered from input stream' state. When Guaranteed messages are being delivered once the client is ready, thus requiring further processing, the egress flow is in either the ‘Deliver from RAM’ or ‘Deliver from ADB or disk’ state.
- Guaranteed messages delivered from RAM require further processing, but are not necessarily copied to/from the ADB or disk (for example, queues with selectors, or queues with transient closures on their transport window).
- Guaranteed messages delivered from input stream have lower latency than messages requiring further processing, while Guaranteed messages delivered from RAM have lower latency than messages delivered from ADB or disk.
It just means "streaming" consumers are keeping up with their full rate, and delivery from RAM, ADB, or disk are getting buffered somewhat and (probably) means the consumers are either slow or catching up.
Persistence is always guaranteed.
And Replay'ed messages will always be served from disk or ADB.
Hope that helps!
6