Uploaded image for project: 'Qpid'
  1. Qpid
  2. QPID-5409

[Java Broker] Add support for multi-node HA cluster into BDB JE HA message store

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 0.29
    • Broker-J
    • None

    Description

      The Java Qpid Broker currently supports only 2-nodes HA cluster with BDB JE message store. This JIRA aims to extend the current HA functionality and add support for multi-node HA cluster into BDB JE message store.

      Here is the list of high-level requirements for the HA multi-node support:

      1. Only persistent messages are to be replicated. Transient messages will be lost on failover.
      2. System must support clusters formed of an arbitrary number of nodes
      3. System must continue to support clusters formed of two nodes. Existing public interfaces (notably JMX and existing virtualhost.xml format) must be retained (though may be deprecated) to allow existing users a convenient upgrade path.
      4. System must allow a user to completely configure a new node via the web-management interface.
      5. System must allow a user to monitor the nodes of the cluster in order to ascertain its health and perform day to day operations for via the web-management interface.
        1. expose statistics to allow the health of the cluster to be established (exact details to be determined: could be low level like DbPing or something more abstract)
      6. System must be amenable to monitoring by third-party tools. The Broker should emit clear operational log messages as it transitions between states. These messages will be targeted at the end-user.
      7. System must permit a mode of operation whereby the user (or other external agent) determines which virtual host becomes active following a store failover. In this mode of operation, following a failure, the store nodes in the cluster will elect a new master and the replica node will still sync-up with the new master node, but the system will not automatically mark the virtual host corresponding to the master as active. The user will then transfer the master to the desired location and make the virtualhost as active, allowing business traffic to recommence.
      8. System must permit a mode of operation whereby the election of a store node as master also causes the corresponding virtual host to become active.
      9. System must allow a user to influence a node's electability. These features will allow a customer whose cluster spans primary/DR sites to keep the active virtual hosts on the primary site in normal situations by favouring failover within the primary site.Specifically, this will allow:
        1. making a node unelectable - the node, even though it remains part of the cluster, will never be elected as master)
        2. making a node more likely to be elected master than other nodes - that is, if two or more nodes have an equally up to date set of transactions, the node with the highest priority will be elected master
        3. node electability settings must survive restart,
        4. node electability settings must be alterable at run-time.
      10. System must allow a user to alter quorum. This feature is required in extraordinary situations where the system is required to continue to operate despite the loss of sufficient nodes to mean there is no longer simple majority.
      11. System must allow the user to move the active virtual host from one node to another. This feature will help a user to restore a system to its BAU state following an extraordinary situation.
      12. System must provide a user with a read-only view Queue when the underlying store is in a replica state. This must provide at least queue name and queue depth. This feature will allow a user to be able to see that replication is indeed functioning.
      13. System must allow all HA operations to be allowed/denied according to rules in the ACL.

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              orudyy Alex Rudyy
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: