[
https://issues.apache.org/jira/browse/AMQ-7136?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Christopher L. Shannon resolved AMQ-7136.
-----------------------------------------
Resolution: Fixed
> Improve speed of KahaDB durable subscription pending metrics recovery
> ---------------------------------------------------------------------
>
> Key: AMQ-7136
> URL: https://issues.apache.org/jira/browse/AMQ-7136
> Project: ActiveMQ
> Issue Type: Improvement
> Components: KahaDB
> Affects Versions: 5.15.8
> Reporter: Christopher L. Shannon
> Assignee: Christopher L. Shannon
> Priority: Major
> Fix For: 5.16.0, 5.15.9
>
>
> There is a flag (off by default) in KahaDB to track pending metrics for
> durable subscriptions. The recovery for the metrics requires iterating over
> the order index for the topic on broker start in order to compute the pending
> message size for each subscription. Currently this is done inefficiently
> because all the messages that exist need to be iterated over for every
> subscription on the Topic. The starting point of the iterating is where the
> subscriptions left off so if there are many subscriptions with a lot of
> messages to consume this can be very slow as the messages are iterated over
> several times.
> A much better and faster way is to simply iterate over the messages one time
> for the destination (starting at the first message that needs to be acked
> across all subscriptions) and then adding the size to the counter for each
> subscription where that message is pending.
> Testing recovery on a Topic with a couple million messages and 10 durable
> subscriptions has shown a pretty significant improvement in start up time of
> KahaDB with this change (on my machine the recovery went down from 10+
> seconds to under 2 seconds)
> Ultimately the fastest way to recover would be to write the pending metrics
> to the index just like AMQ-7132 introduced for destinations but this is at
> least an improvement over the current method without having to do another
> index change. If we decide there is a need we can start writing the metrics
> to the index in the same pattern as AMQ-7132 in a future update.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)