activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Paul Gale <paul.n.g...@gmail.com>
Subject Influence of persistence adapter settings on speed of failover.
Date Thu, 01 Aug 2013 15:36:19 GMT
Hi,

I have been experimenting with failover using the Master/Slave shared
storage strategy. I have a custom lease locker (shown in the example below)
that correctly obtains the lock within a couple of seconds of when the
other broker dies. However, depending on the value of the other settings
for the persistence adapter it can take over 2 minutes before the new
Master turns on its transport connectors.

Using these values shown below the broker takes just a few seconds to turn
on its transport connectors. The message store consisted of a dozen or so
32mb journal files:

<persistenceAdapter>
  <kahaDB directory="${activemq.data}/kahadb"
          indexCacheSize="10000"
          indexWriteBatchSize="1000"
          cleanupInterval="30000"
          checkpointInterval="5000"
          journalMaxFileLength="32m"
          journalMaxWriteBatchSize="4m"
          lockKeepAlivePeriod="2500"
          useLock="true">
    <locker>
      <m:manheim-lease-database-locker
              failIfLocked="false"
              maxAllowableDiffFromDBTime="1000"
              brokerService="#theBroker"
              lockDataSource="#mysql-ds"
              createLockTableOnStartup="true"
              lockAcquireSleepInterval="5000"
              lockTableName="activemq_lab_lock">
      </m:manheim-lease-database-locker>
    </locker>
  </kahaDB>
</persistenceAdapter>

However, if I set the values as shown below it takes over 2 minutes for the
master broker to turn on its transport connectors. These adapter values
were chosen based on one of the 'performance examples' that ships with
ActiveMQ:

<persistenceAdapter>
  <kahaDB directory="${activemq.data}/kahadb"
          indexCacheSize="100000"
          indexWriteBatchSize="100000"
          cleanupInterval="300000"
          checkpointInterval="50000"
          journalMaxFileLength="1g"
          journalMaxWriteBatchSize="62k"
          lockKeepAlivePeriod="2500"
          useLock="true">
    <locker>
      <m:manheim-lease-database-locker
              failIfLocked="false"
              maxAllowableDiffFromDBTime="1000"
              brokerService="#theBroker"
              lockDataSource="#mysql-ds"
              createLockTableOnStartup="true"
              lockAcquireSleepInterval="5000"
              lockTableName="activemq_lab_lock">
      </m:manheim-lease-database-locker>
    </locker>
  </kahaDB>
</persistenceAdapter>

Note that the message store resides on an NFS v3 mount.

Thanks,
Paul

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message