The invention relates to a computer system and method for high availability processing through a session on a transport connection, for use in a cluster with at least two nodes. The system comprises a protocol component; a cluster with at least two nodes, said cluster being arranged for running the protocol component; and a server arranged for maintaining a protocol session on a transport connection with a node of the cluster. The cluster is arranged for maintaining on each of said at least two nodes one instance of the protocol component, so that at least two instances are active; the server is arranged for simultaneously maintaining a protocol session with each instance.
|
9. method for high availability processing through a session on a transport connection at an application level, for use in a cluster with at least two nodes, said cluster being arranged for running a signaling protocol component that uses signaling protocol sessions and is carried out on a transport connection;
wherein
a signaling protocol component is distributed over at least two of the at least two nodes, one instance of the same signaling protocol component running on each node,
a server opens at least two signaling protocol sessions on one or more transport connections to this protocol component, so that a signaling protocol session with each instance is maintained simultaneously, and
the server measures the processing load on each instance of the protocol component, and that the assignment of the protocol packets is based on the processing load measurements.
1. computer system for high availability processing at an application level, the computer system comprising:
a signaling protocol component that uses signaling protocol sessions and is carried out on a transport connection;
a cluster with at least two nodes, said cluster being arranged for running the signaling protocol component; and
a server arranged for maintaining a protocol session on a transport connection with a node of the cluster, wherein the cluster is arranged for maintaining on each of said at least two nodes one instance of the signaling protocol component, so that at least two instances are active; and that the server is arranged for simultaneously maintaining a signaling protocol session with each of said at least two instances,
wherein the server is configured to measure the processing load on each instance of the protocol component, and further configured to assign the protocol packets based on the processing load measurements.
14. A computer system for high availability processing, the computer system comprising:
a signaling protocol component that uses signaling protocol sessions and is carried out on a transport connection at an application level;
a cluster with at least two nodes, wherein the cluster is configured to run the signaling protocol component;
a server that is configured to maintain a protocol session on a transport connection with a node of the cluster, wherein the cluster is configured to maintain on each of said at least two nodes one instance of the signaling protocol component, so that at least two instances are active; and that the server is configured to simultaneously maintain a signaling protocol session with each of said at least two instances; and
wherein the server is further configured to measure the processing load on each instance of the protocol component; and
wherein the system further comprises a fault tolerance module that is configured to assign protocol packets alternatively to each of the plurality of instances according to a predetermined algorithm, wherein the predetermined algorithm comprises a load based method.
2. computer system according to
3. computer system according to
4. computer system according to
5. computer system according to
7. computer system according to
8. computer system according to
10. method according to
12. method according to
13. method according to
15. The computer system according to
16. The computer system according to
17. The computer system according to
18. The computer system according to
19. The computer system according to
20. The computer system according to
21. The computer system according to
22. The computer system according to
|
The present invention relates to a system for high availability processing, comprising a protocol component, a cluster with at least two nodes, said cluster being arranged for running the protocol component, and a server arranged for maintaining a protocol session on a transport connection, such as a TCP connection, with a node of the cluster. The invention also relates to a method for high availability processing through a protocol session on a transport connection.
As applications requiring higher reliability and low down time increase, there is a great interest in fault tolerant and high availability processing systems. One known solution implies a network which interconnects cluster groups of processors. A cluster is based on the principle of hardware redundancy and typically consists of a plurality of nodes managed as a single system for increased availability.
The most common size for a high availability cluster is two nodes, for example a master node and a backup node. At present when vendors claim that the component implementation is highly available, they mean that the component runs in a clustered environment and that one instance of the component maintains a protocol session with the server. The master component is typically backed up by a backup component, working off line as long as the master component is up and running, but becoming available when the master component fails. In other words, current “high availability” architectures consist of several instances of the component (The master component and one or more backup components) buy only a single protocol session between the master component and the server. If the master component fails, a new protocol session needs to be opened between the server and the backup component. Hence the server will perceive a period of unavailability of the service. In fact, the processing burden on the component and the probability that it fails are not reduced. Indeed, assisting the component by a backup component does not decrease the processing burden on the component. The probability that the component becomes unavailable is just the same with or without the backup component. Moreover the processing burden on the backup component is usually close to the processing burden on the master component, so that the total processing burden of the solution amounts to almost twice the processing burden of a single component.
The object of the invention is to provide a high available component implementation based on a transport connection decreasing the processing burden on the component and configurable to decrease the load on the available resources, and hence reducing the probability of a crash and/or failure of an instance of the component.
To reach this object the system according to the invention is distinguished in that the cluster is arranged for maintaining on each of said at least two nodes one instance of the protocol component, so that at least two instances are active, and in that the server is arranged for simultaneously maintaining a protocol session with each instance. The problems of the prior art are further solved by the method of the invention which is basically characterized by distributing a protocol component over at least two nodes, one instance of the same protocol component running on each node, and transport connections with this protocol component.
The system and method of the invention have the advantage that the protocol can benefit from real load-balancing mechanisms by decreasing the processing burden on the protocol component since the protocol component is distributed over at least two nodes, and the traffic to these nodes can be adjusted appropriately on a continuous basis since the at least two protocol sessions remain active.
Note that the term “protocol session” has to be interpreted in a broad sense and refers to any long lasting connection on a transport connection, such as a XMPP session over TCP (Transmission Control Protocol) connection, but also including for example the Diameter protocol connection over a TCP or SCTP (Stream Control Transmission Protocol) connection. In principle, any other protocol which uses protocol sessions and is suitable for use on a transport connection is envisaged by the present invention.
Advantageous embodiments are disclosed in the dependent claims.
Preferably the system is arranged for re-assigning traffic sent on a protocol session with a failing instance to a different active protocol session. In that way a permanent availability is ensured.
According to a preferred embodiment the server is provided with a module for assigning protocol packets alternatively to each of the plurality of instances according to a predetermined algorithm. The module typically has access to a list of the active protocol sessions with the protocol component, and the server is arranged for delivering protocol packets to the module which sends these packets according to the predetermined algorithm. The skilled person will understand that many different algorithms are possible such as a round-robin method, a hash method, an at random method, a fixed assignment method, a method based on the session identifier, a combination of one or more of said methods, etc. These methods will be further elucidated with reference to
According to a different aspect of the method of the invention, the server measures the processing load on each instance of the protocol component, wherein the assignment of the protocol packets is based on the processing load measurements. In that way a very efficient load-balancing can be performed between the instances.
The accompanying drawings are used to illustrate presently preferred non-limiting exemplary embodiments of the present invention. The above and other advantages features and objects of the invention will become more apparent and the invention will be better understood from the following detailed description when read in conjunction with accompanying drawings in which:
XMPP enables trusted components to connect to XMPP servers wherein the XMPP server and XMPP component maintain one or several XMPP sessions with each other. Such a session is established upon a transport connection, in particular a TCP connection. The message session is carried as a stream of XML stanzas over the TCP connection.
As illustrated in
The main idea of the present invention is that next to providing backup components, backup protocol sessions are provided between the server on the one side and the component and backup components on the other side.
A possible embodiment of this concept is illustrated in
In the example of
However, the skilled person will understand that in some systems it may be preferable to have a non-even distribution. This will for example be the case if one component has more processing capacity available than another component. According to a possible variant the server could be arranged to measure the load of each component, and the splitting of the traffic could be based on such load measurements. This will be further discussed below with reference to
If one of the instances, for example instance 3 in
The assignment of the traffic towards the different protocol sessions which are simultaneously active in the cluster, and the automatic re-assignment in case of failure can be done by a special module provided in the server. An embodiment of such a protocol session assignment module, also called Fault Tolerance (FT) module, will now be illustrated with reference to
According to this embodiment the FT module 42 is implemented in the XMPP server 40 and is responsible for determining how to split the traffic destined for the XMPP component among the set of available XMPP sessions, typically opened on top of one or several TCP connections.
Upon opening of a set of XMPP sessions with the same component the XMPP server 40 will notify the FT module of a list 41 of established XMPP sessions which are typically identified with a Session ID. When a packet has to be forwarded to the XMPP component, the FT module will decide which XMPP session to use and will send the packet accordingly. Different algorithms may be used such as:
While the principles of the invention have been set out above in connection with specific embodiments, it is to be clearly understood that this description is merely made by way of example and not as a limitation of the scope of protection which is determined by the appended claims.
Moreels, Johan Marie Camiel, Cristallo, Geoffrey, Janssens, Nico
Patent | Priority | Assignee | Title |
Patent | Priority | Assignee | Title |
6363421, | May 31 1998 | WSOU Investments, LLC | Method for computer internet remote management of a telecommunication network element |
6775280, | Apr 29 1999 | Cisco Technology, Inc. | Methods and apparatus for routing packets using policy and network efficiency information |
6778495, | May 17 2000 | Cisco Technology, Inc | Combining multilink and IP per-destination load balancing over a multilink bundle |
7483992, | Nov 01 2000 | Microsoft Technology Licensing, LLC | Session load balancing and use of VIP as source address for inter-cluster traffic through the use of a session identifier |
20030014480, | |||
20030063611, | |||
20050198648, | |||
20060168274, | |||
20060256803, | |||
20070091874, | |||
20080075261, | |||
20080155552, | |||
20080163312, | |||
WO45298, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Nov 04 2008 | CRISTALLO, GEOFFREY | Alcatel Lucent | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 021882 | /0231 | |
Nov 04 2008 | JANSSENS, NICO | Alcatel Lucent | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 021882 | /0231 | |
Nov 04 2008 | MOREELS, JOHAN MARIE CAMIEL | Alcatel Lucent | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 021882 | /0231 | |
Nov 24 2008 | Alcatel Lucent | (assignment on the face of the patent) | / | |||
Jan 30 2013 | Alcatel Lucent | CREDIT SUISSE AG | SECURITY AGREEMENT | 029821 | /0001 | |
Aug 19 2014 | CREDIT SUISSE AG | Alcatel Lucent | RELEASE BY SECURED PARTY SEE DOCUMENT FOR DETAILS | 033868 | /0555 |
Date | Maintenance Fee Events |
May 18 2022 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Date | Maintenance Schedule |
Dec 04 2021 | 4 years fee payment window open |
Jun 04 2022 | 6 months grace period start (w surcharge) |
Dec 04 2022 | patent expiry (for year 4) |
Dec 04 2024 | 2 years to revive unintentionally abandoned end. (for year 4) |
Dec 04 2025 | 8 years fee payment window open |
Jun 04 2026 | 6 months grace period start (w surcharge) |
Dec 04 2026 | patent expiry (for year 8) |
Dec 04 2028 | 2 years to revive unintentionally abandoned end. (for year 8) |
Dec 04 2029 | 12 years fee payment window open |
Jun 04 2030 | 6 months grace period start (w surcharge) |
Dec 04 2030 | patent expiry (for year 12) |
Dec 04 2032 | 2 years to revive unintentionally abandoned end. (for year 12) |