The foregoing brief description, as well as further objects, features, and advantages of the present invention will be understood more completely from the following detailed description of a presently preferred, but nonetheless illustrative embodiment, with reference being had to the accompanying drawings, in which:
Turning now to the drawings,
A preferred embodiment of the previously described network configuration is shown in
To be precise, this assignment diagram is generated by the following mathematical algorithm:
j1=i
j
2
=j
1+1(mod n)
This connection pattern is commonly known as a shuffle. The example of
Referring to
Under normal operating conditions, the six servers are all active in a load sharing mode. When one server fails, the traffic originally accommodated by the failed server is redirected for service to the two other servers that accommodate the same users. For example, if SIP Server S2 failed, all traffic from Phone Group P1 would be served by SIP Server S1, and all traffic from Phone Group P2 by SIP Server S3. It can be shown mathematically that for achieving the best load balancing condition given identical Phone Group traffic characteristics, the value of a should be 0.5. In other words, traffic from each Phone Group should be split equally between its two servers under normal conditions.
It should be noted that the traffic generated from each Phone Group to the assigned SIP Servers pertain only to the signaling messages. Accordingly, there are multiple ways to implement the intended effect of equally splitting the traffic between two SIP Servers, including assignment of successive session initiation requests randomly to the two servers or toggling the requests between the servers.
From the description so far, those skilled in the art will appreciate that the cost of the disclosed structure (using n servers) is less than a 1-for-n arrangement (using one server to protect n servers, which results in a total of n+1 servers). As for the memory requirements, the disclosed structure requires that each server provide sufficient memory to maintain a database of two Phone Groups, totally independent of how large n may become. Thus, this structure is scalable, and a remaining issue is whether the design achieves High Availability.
Availability of a system like a telephone switch is typically expressed as a fractional number. For example, a digital telephone switch for the Public Telephone Switched Network is often cited as highly reliable with an availability of 0.99999 (the so-called “five nine” standard). Using a simple calculation:
Average Downtime per Year=(365×24×60)(1−A)
where A is the availability number, the five-nine availability standard translates to only 5.3 minutes of average downtime per year.
This meaning of availability for a single server is reasonably clear. However, for a network of servers as shown in
As is shown in the accompanying Appendix, the disclosed structure has approximately the same availability (or reliability) as the 1-for-1 redundancy arrangement, using the above, stringent definition that no phone group is allowed to be out of service. This is remarkable considering that the disclosed structure is half the cost of the 1-for-1 scheme.
In summary, a preferred, method and highly efficient structure have been disclosed for providing High Availability (HA) for a SIP-based VoIP network consisting of n (n≧3) communication servers called SIP Servers providing service to n groups of users (or n Phone Groups). In our context, we use a stringent definition for HA to mean that all Phone Groups must receive service, and service delivery failure to any one group would render the entire network in “down” status. In the disclosed HA construction, some key networking characteristics are as follows:
Although a preferred embodiment of the invention has been disclosed for illustrative purposes, those skilled in the art will appreciate that many additions, modifications and substitutions are possible without departing from the scope and spirit of the invention as defined by the accompanying claims.
It is very complex to calculate an exact availability for the disclosed HA construction shown in
With respect to
A
2=1−(1−A)2=A(2−A) (1)
which is the availability of each user group in
A
R=(A2)n=An(2−A)n (2)
It is very difficult to calculate the exact availability for
A
v{Total HA network}>Av3+Av1+Av2 (3)
where Av denotes the total availability, Av3 denotes the availability when all servers are working, Av1 denotes the availability when one server has failed, and Av2 denotes the availability when two servers have failed which are not adjacent. In other words, Av is greater than the sum of the probabilities corresponding to those conditions in which the system would not be considered to have failed. This is a lower bound on Av:
A
V
>A
n
+n(1−A)An−1+(nC2−n)(1−A)2An−2 (4)
where nC2 denotes n(n−1)/2. The values of equations (2) and (4) are computed in the following table for comparison.
In this table of values of practical interest, it can be seen that the performance of the proposed design is at least as good as the 1-for-1 scheme.