| EMG and High Availability |
|
|
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-overThe 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 balancingThe 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 balancingWith 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 balancingInbound load balancing is when incoming messages from client applications are load balanced between two or more EMG instances. Load balancing caveatIn 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. ClusteringEMG 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 persistenceWhen 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 instances 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. |
