[ https://issues.apache.org/jira/browse/AMQ-7132?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16743471#comment-16743471 ]
Jamie goodyear commented on AMQ-7132: ------------------------------------- Those tests passed for me as well. ------------------------------------------------------- T E S T S ------------------------------------------------------- Running org.apache.activemq.broker.RecoveryStatsBrokerTest Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 21.901 sec - in org.apache.activemq.broker.RecoveryStatsBrokerTest Results : Tests run: 3, Failures: 0, Errors: 0, Skipped: 0 icbts-2:activemq-unit-tests icbts$ mvn -version Apache Maven 3.5.3 (3383c37e1f9e9b3bc3df5050c29c8aff9f295297; 2018-02-24T16:19:05-03:30) Maven home: /x1/maven/apache-maven-3.5.3 Java version: 1.8.0_171, vendor: Oracle Corporation Java home: /Library/Java/JavaVirtualMachines/jdk1.8.0_171.jdk/Contents/Home/jre Default locale: en_CA, platform encoding: UTF-8 OS name: "mac os x", version: "10.14.1", arch: "x86_64", family: "mac" > ActiveMQ reads lots of index pages upon startup (after a graceful or > ungraceful shutdown) > ----------------------------------------------------------------------------------------- > > Key: AMQ-7132 > URL: https://issues.apache.org/jira/browse/AMQ-7132 > Project: ActiveMQ > Issue Type: Improvement > Components: KahaDB > Affects Versions: 5.15.8 > Reporter: Alan Protasio > Assignee: Christopher L. Shannon > Priority: Major > Fix For: 5.16.0 > > Attachments: output.tgz > > > Hi. > We noticed that ActiveMQ reads lots of pages in the index file when is > starting up to recover the destinations statistics: > [https://github.com/apache/activemq/blob/master/activemq-kahadb-store/src/main/java/org/apache/activemq/store/kahadb/KahaDBStore.java#L819] > Nowadays, in order to do that, activemq traverse the > storedDestination.locationIndex to get the messageCount and totalMessageSize > of each destination. For destinations with lots of messages this process can > take a while making the startup process take long time. > In a case of a master-slave broker, this prevent the broker to fast failover > and does not meet what is stated on > [http://activemq.apache.org/shared-file-system-master-slave.html.] > {quote}If you have a SAN or shared file system it can be used to provide > _high availability_ such that if a broker is killed, another broker can take > over immediately. > {quote} > One solution for this is keep track of the destination statistics summary in > the index file and doing so, we dont need to read all the locationIndex on > the start up. > The code change proposed is backward compatible but need a bump on the kahadb > version. If this information is not in the index, the broker will fall back > to the current implementation, which means that the first time people upgrade > to the new version, it will still have to read the locationIndex, but > subsequent restarts will be fast. > This change should have a negligible performance impact during normal > activemq operation, as this change introduce a few more bytes of data to the > index and this information will be on checkpoints. Also, this new information > is synchronized with the locationIndex as they are update at the same > transaction. -- This message was sent by Atlassian JIRA (v7.6.3#76005)