[ https://issues.apache.org/jira/browse/ARTEMIS-1803?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16435669#comment-16435669 ]
ASF GitHub Bot commented on ARTEMIS-1803: ----------------------------------------- Github user franz1981 commented on the issue: https://github.com/apache/activemq-artemis/pull/2012 @cshannon Summarized: ``` org.apache.activemq.artemis.core.server.impl.MessageReferenceImpl: Instance size: 72 bytes Space losses: 2 bytes internal + 4 bytes external = 6 bytes total org.apache.activemq.artemis.core.paging.cursor.PagedReferenceImpl: Instance size: 104 bytes Space losses: 1 bytes internal + 4 bytes external = 5 bytes total org.apache.activemq.artemis.core.server.impl.LastValueQueue$HolderReference: Instance size: 40 bytes Space losses: 3 bytes internal + 0 bytes external = 3 bytes total ``` `Instance size` is the value you're searching for: I have attached the `Space losses` as well, because it is related to what @michaelandrepearce is saying: just adding that mere 4 bytes reference (with heap < 32 Gb the JVM uses compressed oops by default) has added 4 bytes (external) of padding ie a total of 8 bytes of more space used. TBH that's a difficult choice: we have done recently many changes to make every protocol much GC "gentle" to allow scaling more easily, but @cshannon is right that there are monitoring/telemetry reasons very important to be achieved as well. You both have very good points :O > MessageReference should include sessionId > ----------------------------------------- > > Key: ARTEMIS-1803 > URL: https://issues.apache.org/jira/browse/ARTEMIS-1803 > Project: ActiveMQ Artemis > Issue Type: Improvement > Affects Versions: 2.5.0 > Reporter: Christopher L. Shannon > Assignee: Christopher L. Shannon > Priority: Minor > > Right now a MessageReference will track a consumerId (in certain scenarios) > but the sessionId is not included. This is a problem because consumerIds are > not unique and are duplicated across sessions. In order to find a unique > consumer you need the sessionId and consumerId as well. > A use case for when this is important is when writing custom plugins. Some > of the callbacks pass a message reference and it would be good to be able to > figure out which consumer the reference belonged to such as in the > messageAcknowledged callback. -- This message was sent by Atlassian JIRA (v7.6.3#76005)