I’m working with AddressControl
and QueueControl
objects in Artemis v2.32.0, and I noticed some surprising behavior with respect to sizes. I expected that the sum over all queues bound to an address of QueueControl#getPersistentSize()
would yield (at least roughly) AddressControl#getAddressSize()
.
I have a simple setup where I have a single multicast address (only one queue bound) and send 400K small string messages to it without a consumer acking any. In this setup, I see the AddressControl#getAddressSize()
at ~900MB and QueueControl#getPersistentSize()
at ~300MB, seems as I vary the message counts the persistent size of the queue is consistently about 3x smaller than the address size.
I’m not sure which one is to be trusted and why they are differing so much. Briefly looking at the code it seems like the AddressControl#getAddressSize()
does some estimation methodology, but it doesn’t explain the very different results in practice.