Menu Content/Inhalt
EMG and High Availability Print

The EMG perception of HA is when additional, redundant, nodes are added to an existing node in order to improve reliability and possibly performance. The mechanisms involved are fail-over, load balancing and clustering.

Each EMG node in a HA environment needs to be properly licensed.

Please note that there is very seldom a performance advantage of using multiple EMG nodes since one EMG node is capable of handling thousands of messages per second on the right hardware with the right license.

Fail-over

The process where a primary node handles traffic until it goes down and another, secondary, node then takes over is called fail-over. This can be accomplished, for example, by putting two EMG instances behind a load-balancing hardware that detects when the connection to the primary node goes down and then switches over to the secondary node which is in "hot standby". In this scenario there is only one active node at any given time. By default when an EMG node does down all messages within that node are lost. This is not the case when using message persistence which is discussed later in this document.

Load balancing

The process of load balancing is when messages are sent via the available nodes alternating between the nodes in order to spread the load. When "round robin" is used as load balancing algorithm message 1 is sent through node 1, message 2 via node 2 and so on until the number of nodes are exhausted and then it starts with node 1 again.

Load balancing can be divided into two different scenarios: Outbound and inbound.

Outbound load balancing

With outbound load balancing we mean that messages are load balanced when sent out from one EMG instance, usually between two or more available SMSCs.

Inbound load balancing

Inbound load balancing is when incoming messages from client applications are load balanced between two or more EMG instances.

Load balancing caveat

In general there are no problems with load balancing SMS messages at any level since they are usually independent of each other. However, concatenated SMS, where a longer message is split into multiple SMS, can be a problem in that some handsets may not able to reassemble the parts into the original message if the parts has been sent via different routes. For outbound load balancing in EMG this is solved by CMR (Concatenated Message Routing) which ensures that two different parts of the same message are always forwarded via the same connector to the same SMSC. For inbound load balancing this is not possible, as two EMG instances do not know about each others routing decisions.

Clustering

EMG does not provide cluster functionality in the sense that two (or more) active instances of EMG share data, message queues etc. However, EMG can run in a clustered environment and failover can be performed per the discussion above.

Message persistence

When EMG is licensed for message persistence all messages are saved in a spool directory structure in the file system during their lifetime. While it is not possible to share spool directory between two EMG instances active at the same time, it is possible for a second instance to take over the first instance’s spool directory if the first instance goes down. This needs to be handled by external management software, as the second node cannot be started until the first node is down.

Message persistence enables fail-over between EMG nodes without lost messages but does require a managed fail-over procedure.