You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "ASF subversion and git services (JIRA)" <ji...@apache.org> on 2015/08/07 19:24:45 UTC
[jira] [Commented] (AMQ-5748) Add the ability to get Message Size
from a Message Store
[ https://issues.apache.org/jira/browse/AMQ-5748?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14662112#comment-14662112 ]
ASF subversion and git services commented on AMQ-5748:
------------------------------------------------------
Commit de24980a623c864d24cecf9ed852bec38cf09ae3 in activemq's branch refs/heads/master from [~cshannon]
[ https://git-wip-us.apache.org/repos/asf?p=activemq.git;h=de24980 ]
AMQ-5748 - Fixing MessageStore cache
This fixes KahaDBStore to properly check for an existing MessageStore
in the cache before creating a new one. This will prevent potential
issues with metrics.
> 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
> Assignee: Timothy Bish
> Priority: Minor
> Fix For: 5.12.0
>
>
> 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)