[ 
https://issues.apache.org/jira/browse/AMQ-5748?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14517963#comment-14517963
 ] 

Christopher L. Shannon edited comment on AMQ-5748 at 4/28/15 9:06 PM:
----------------------------------------------------------------------

Gary,

I went ahead and updated my pull request to include a new statistic called 
{{storeMessageSize}}.  KahaDB updates it based on when messages are 
added/deleted from the index.  It will also properly recover after a broker 
restart by setting the value of the counter to the current {{MessageStore}} 
size after recovery for both Topics and Queues.  I added another unit test 
class as well to verify the counter works.  Take a look at my changes and let 
me know what you think.  This was my first time digging into code dealing with 
the {{DestinationStatistics}} so I could have overlooked something.  If it 
looks good, I can add it to JMX/views so it will be exposed.

I will go ahead now and take a look at what it will take to re-write the index 
because that would certainly be better than having to replay the journal for 
users that don't care about updating the index so I think it is worthwhile to 
add in the auto-upgrade feature. 

Chris


was (Author: christopher.l.shannon):
Gary,

I went ahead and updated my pull request to include a new statistic called 
{{storeMessageSize}}.  KahaDB updates it based on when messages are 
added/deleted from the index.  It will also properly recover after a broker 
restart by setting the value of the counter to the current {{MessageStore}} 
size after recovery for both Topics and Queues.  I added another unit test 
class as well to verify the counter works.  Take a look at my changes and let 
me know what you think.  This was my first time digging into code dealing with 
the {{DestinationStatistics}} so I could have overlooked something.  If it 
looks good, I can add it to JMX/views so it will be exposed.

I will go ahead now and take a look at what it will take to re-write the index 
because that would certainly be better than having to replay the journal so I 
think it is worthwhile to add in the auto-upgrade feature. 

Chris

> Add the ability to get Message Size from a Message Store
> --------------------------------------------------------
>
>                 Key: AMQ-5748
>                 URL: https://issues.apache.org/jira/browse/AMQ-5748
>             Project: ActiveMQ
>          Issue Type: New Feature
>          Components: Broker
>    Affects Versions: 5.11.1
>            Reporter: Christopher L. Shannon
>            Priority: Minor
>
> Currently, the {{MessageStore}} interface supports getting a count for 
> messages ready to deliver using the {{getMessageCount}} method.  It would 
> also be very useful to be able to retrieve the message sizes for those counts 
> as well for keeping track of metrics.
> I've created a pull request to address this that adds a {{getMessageSize}} 
> method that focuses specifically on KahaDB and the Memory store.  The KahaDB 
> store uses the same strategy as the existing {{getMessageCount}} method, 
> which is to iterate over the index and total up the size of the messages.  
> There are unit tests to show the size calculation and a unit test that shows 
> a store based on version 5 working with the new version (the index is rebuilt)
> One extra issue is that the size was not being serialized to the index (it 
> was not included in the marshaller) so that required making a slight change 
> and adding a new marshaller for {{Location}} to store the size in the 
> location index of the store.  Without this change, the size computation would 
> not work when the broker was restarted since the size was not serialized.
> Note that I wasn't sure the best way to handle the new marshaller and version 
> compatibilities so I incremented the KahaDB version from 5 to 6. If an old 
> version of the index is loaded, the index should be detected as corrupted and 
> be rebuilt with the new format.  If there is a better way to handle this 
> upgrade let me know and the patch can certainly be updated.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to