ActiveMQ
  1. ActiveMQ
  2. AMQ-4165

Remove pure master/slave functionality

    Details

    • Type: Improvement Improvement
    • Status: Resolved
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 5.7.0
    • Fix Version/s: 5.8.0
    • Component/s: Broker
    • Labels:
      None

      Description

      Pure master/slave was introduced over 7 years ago a means of getting a tick box for high availability. It is severely limited, in that only one slave is supported, a slave must be running before the master and no attempt is made at synchronising a new slave.

      Unfortunately, pure master/slave is sometimes used as an option by ActiveMQ users, unaware of the dangers of doing so, at extreme risk to themselves and others.

      Pure master/slave is the spawn of hell and should be removed forthwith.

        Issue Links

          Activity

          Transition Time In Source Status Execution Times Last Executer Last Execution Date
          Open Open Resolved Resolved
          4d 1h 29m 1 Rob Davies 13/Nov/12 09:32
          Resolved Resolved Reopened Reopened
          4h 43m 1 Timothy Bish 13/Nov/12 14:15
          Reopened Reopened Resolved Resolved
          4h 24m 1 Timothy Bish 13/Nov/12 18:40
          Hide
          Gary Tully added a comment -

          Going forward, having journal replication and staged index updates is a better design.
          There is no intention to drop the HA ball.

          Some experimental work on journal replication is ongoing and hardening will continue:
          http://activemq.apache.org/kahadb-master-slave.html
          https://github.com/fusesource/fuse-extra/tree/master/fusemq-leveldb (now at apache)

          Show
          Gary Tully added a comment - Going forward, having journal replication and staged index updates is a better design. There is no intention to drop the HA ball. Some experimental work on journal replication is ongoing and hardening will continue: http://activemq.apache.org/kahadb-master-slave.html https://github.com/fusesource/fuse-extra/tree/master/fusemq-leveldb (now at apache)
          Hide
          Gary Tully added a comment -

          Here are some of the known limitations of pure master slave:

          • state replication at the openwire command level is too complex
          • use of a single master connection is a bottleneck
          • inability to catch up on state for a new slave after failover
          Show
          Gary Tully added a comment - Here are some of the known limitations of pure master slave: state replication at the openwire command level is too complex use of a single master connection is a bottleneck inability to catch up on state for a new slave after failover
          Hide
          SL added a comment -

          The functionnality provided by this mode had its issues
          (such the one i stumbled upon https://issues.apache.org/jira/browse/AMQ-3688 )
          But it was exposed as a valid option in the documentation until recently (and not completly removed yet) ; cutting it like that is harsh. None of the few "alternatives" can handle the same use cases, and are expecting a very different set of requirements (such as a database or a shared filesystem).
          Is there any plan to complete the amq options in this area or is the project dropping the ball on HA ?

          Show
          SL added a comment - The functionnality provided by this mode had its issues (such the one i stumbled upon https://issues.apache.org/jira/browse/AMQ-3688 ) But it was exposed as a valid option in the documentation until recently (and not completly removed yet) ; cutting it like that is harsh. None of the few "alternatives" can handle the same use cases, and are expecting a very different set of requirements (such as a database or a shared filesystem). Is there any plan to complete the amq options in this area or is the project dropping the ball on HA ?
          Hide
          Martin Serrano added a comment -

          so what alternative is there when a SAN/shared disk is not available?

          Show
          Martin Serrano added a comment - so what alternative is there when a SAN/shared disk is not available?
          Timothy Bish made changes -
          Status Reopened [ 4 ] Resolved [ 5 ]
          Resolution Fixed [ 1 ]
          Hide
          Timothy Bish added a comment -

          Removed the pure master slave unit tests that were failing to build due to these code changes.

          Show
          Timothy Bish added a comment - Removed the pure master slave unit tests that were failing to build due to these code changes.
          Timothy Bish made changes -
          Resolution Fixed [ 1 ]
          Status Resolved [ 5 ] Reopened [ 4 ]
          Hide
          Timothy Bish added a comment -

          While the functionality has been removed there are some tests for this that are still part of the build and cause build failures in activemq-core, notably:

          activemq-core/src/test/java/org/apache/activemq/advisory/MasterSlaveTempQueueMemoryTest.java
          activemq-core/src/test/java/org/apache/activemq/broker/ft/MasterSlaveSlaveDieTest.java
          activemq-core/src/test/java/org/apache/activemq/broker/ft/MasterSlaveSlaveShutdownTest.java
          activemq-core/src/test/java/org/apache/activemq/broker/ft/MasterSlaveProducerFlowControlTest.java
          activemq-core/src/test/java/org/apache/activemq/broker/ft/TransactedTopicMasterSlaveTest.java
          activemq-core/src/test/java/org/apache/activemq/bugs/AMQ2102Test.java
          activemq-core/src/test/java/org/apache/activemq/bugs/AMQ2183Test.java

          These should probably be removed as well. Its possible there are other broken tests that use XML configs, not sure though.

          Show
          Timothy Bish added a comment - While the functionality has been removed there are some tests for this that are still part of the build and cause build failures in activemq-core, notably: activemq-core/src/test/java/org/apache/activemq/advisory/MasterSlaveTempQueueMemoryTest.java activemq-core/src/test/java/org/apache/activemq/broker/ft/MasterSlaveSlaveDieTest.java activemq-core/src/test/java/org/apache/activemq/broker/ft/MasterSlaveSlaveShutdownTest.java activemq-core/src/test/java/org/apache/activemq/broker/ft/MasterSlaveProducerFlowControlTest.java activemq-core/src/test/java/org/apache/activemq/broker/ft/TransactedTopicMasterSlaveTest.java activemq-core/src/test/java/org/apache/activemq/bugs/AMQ2102Test.java activemq-core/src/test/java/org/apache/activemq/bugs/AMQ2183Test.java These should probably be removed as well. Its possible there are other broken tests that use XML configs, not sure though.
          Rob Davies made changes -
          Status Open [ 1 ] Resolved [ 5 ]
          Resolution Fixed [ 1 ]
          Hide
          Rob Davies added a comment -

          Resolved by SVN revision 1408651

          Show
          Rob Davies added a comment - Resolved by SVN revision 1408651
          Timothy Bish made changes -
          Field Original Value New Value
          Link This issue supercedes AMQ-4150 [ AMQ-4150 ]
          Rob Davies created issue -

            People

            • Assignee:
              Rob Davies
              Reporter:
              Rob Davies
            • Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development