IP Library Granted Patent US 8,122,280
Granted Patent B2
US 8,122,280 · App. 11/213,678 · Granted Feb 21, 2012

Method and system for providing high availability to computer applications

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,122,280
App. No.
11/213,678
Granted
Feb 21, 2012
Kind
B2
Abstract

A set of system-level high availability services for computer systems, including a service that functions in general terms like an extension of the operating system. By providing High Availability (HA) at the system-level, modifications to the applications or the operating system kernel are not required.

Claims (74)

1. A method for achieving transparent integration of an application program with a high availability protection program, comprising:

preloading a shared library with a custom function using an operating system loader;

assigning a virtual IP address for the application program;

wherein said function registers said application program with the high availability protection program; and

wherein modification of the application program or application program recompilation is not required.

2. A method as recited in claim 1 , further comprising: monitoring unregistration of said application program from said high availability program; and designating said unregistration as a normal exit.

3. A method as recited in claim 1 , wherein said registration code comprises one or more of: registering the application program with high availability services, initializing check pointing, initializing fault detection, initializing virtual IP addresses, initializing kernel module, initializing recovery services, initializing other high availability services, and registering exit handler.

4. In a high availability protection computer program comprising a set of instructions stored on and executable on a computer, an improvement comprising:

preloading a shared library with a custom function using an operating system loader;

assigning a virtual IP address for an application program;

wherein said function registers said application program with the high availability protection computer program; and

wherein modification of the application program or application program recompilation is not required.

5. An improvement as recited in claim 4 , further comprising: monitoring unregistration of said application program from said high availability program; and designating said unregistration as a normal exit.

6. An improvement as recited in claim 4 , wherein said registration code comprises one or more of: registering application with high availability services, initializing check pointing, initializing fault detection, initializing virtual IP addresses, initializing kernel module, initializing recovery services, initializing other high availability services, and registering exit handler.

7. A computer program for transparently registering an application program with a high availability computer program, comprising a set of instructions stored on and executable on a computer, wherein said computer program performs the steps comprising:

preloading a shared library with a custom function using an operating system loader;

assigning a virtual IP address for an application program;

wherein said function registers said application program with the high availability protection computer program; and

wherein modification of the application program or application program recompilation is not required.

8. A computer program as recited in claim 7 , wherein said program performs the steps further comprising: monitoring unregistration of said application program from said high availability program; and designating said unregistration as a normal exit.

9. A computer program method as recited in claim 7 , wherein said registration code comprises one or more of: registering application with high availability services, initializing check pointing, initializing fault detection, initializing virtual IP addresses, initializing kernel module, initializing recovery services, initializing other high availability services, and registering exit handler.

10. A method for system management in a high availability computer program, comprising:

automatically tracking, by the high availability computer program, a launch order of application processes registered with the high availability computer program, as applications are launched;

maintaining a data structure containing a history of the registered application processes launch order, and

providing a mechanism to ensure that processes that comprise an application program are launched in the order indicated by said data structure during recovery;

wherein said tracking requires no source-code modifications to said applications, to contain availability code.

11. A method as recited in claim 10 , further comprising: providing a mechanism to ensure that application programs are recovered in the proper order.

12. A method as recited in claim 10 , further comprising: providing a mechanism to configure the high availability characteristics of an application program through a user interface without requiring any modification or recompilation of the application program.

13. A method, comprising:

tracking, by a high availability computer program, process launch order for multi-process applications, the applications registered with the high availability computer program;

maintaining a data structure containing a history of the registered application processes launch order; and

providing a mechanism to ensure that processes that comprise an application program are launched in the order indicated by said data structure during recovery;

wherein said tracking requires no source-code modifications to said applications, to contain availability code.

14. The method as recited in claim 13 , further comprising: a mechanism to configure the high availability characteristics of an application program through a user interface without requiring any modification or recompilation of the application program.

15. A method for lossless migration of application program from a primary node to a backup node without replication which is transparent to a client connected to the primary node over a TCP/IP connection, comprising:

assigning a virtual IP address for the application program;

providing a loadable kernel module comprising an IP bridge layer;

providing an application checkpointing procedure which invokes said kernel module;

providing an application restoration procedure which invokes said kernel module;

wherein, during checkpointing, the checkpointing procedure notifies the kernel module, and the kernel module captures the state of all the TCP connections that are open for that process in a byte buffer and sends the state to the checkpointing procedure; and

sending the connection state to a backup node along with the application state; wherein, during restoration on the backup node, the restoration procedure invokes the kernel module with the saved byte buffer, and the kernel module uses the data in the byte buffer to restore all the TCP connections in the exact same state as they were in the primary node.

16. A method as recited in claim 15 : wherein the kernel module hooks into the networking stack during checkpointing and restoration and freezes the entire connection; and wherein the client experiences a connection delay during the time the process is checkpointed and restored on the backup node.

17. A computer executable program comprising a set of instructions stored on and executable on a computer, for lossless migration of an application program, from a primary node to a backup node without replication which is transparent to a client connected to the primary node over a TCP/IP connection, comprising:

assigning a virtual IP address for the application program;

a loadable kernel module comprising an IP bridge layer;

an application checkpointing procedure which invokes said kernel module;

an application restoration procedure which invokes said kernel module;

wherein, during checkpointing, the checkpointing procedure notifies the kernel module, and the kernel module captures the state of all the TCP connections that are open for that process in a byte buffer and sends the state to the checkpointing procedure; wherein the checkpointing procedure sends the connection state to a backup node along with the application state; and

wherein, during restoration on the backup node, the restoration procedure invokes the kernel module with the saved byte buffer, and the kernel module uses the data in the byte buffer to restore all the TCP connections in the exact same state as they were in the primary node.

18. A computer executable program as recited in claim 17 : wherein the kernel module hooks into the networking stack during checkpointing and restoration and freezes the entire connection; and wherein the client experiences a connection delay during the time the process is checkpointed and restored on the backup node.

19. A method for achieving transparent integration of an application program with a high availability protection program, comprising:

preloading a shared library with a custom function using an operating system loader;

assigning a virtual IP address for the application program;

detecting a failure in the execution of said application program running on a primary server; and

executing said application program from one or more designated backup servers automatically in response to said failure;

wherein said function registers said application with the high availability protection program; and

wherein modification of the application program or application program recompilation is not required.

20. A method as recited in claim 19 , further comprising: monitoring unregistration of said application program from said high availability program; and designating said unregistration as a normal exit.

21. A method as recited in claim 19 , further comprising managing high availability policy using an automatic profiler monitoring application execution, or in response to policy adjustments from an administrator.

22. A method as recited in claim 21 , wherein said profiler monitors application execution, builds a statistical description of the execution and uses the statistical description for generating and/or recommending optimal settings.

23. A method as recited in claim 21 , wherein said policy comprises characteristics for controlling a heart-beat frequency, a checkpointing interval, configuration of health-checks, or start/stop/restart scripts.

24. A method as recited in claim 19 , further comprising performing healthchecks during the execution of said application program for said detecting of a failure in the execution of said application program.

25. A method for performing lossless migration of an application program from a primary node to a backup node and while being transparent to a client connected to the primary node over a TCP/IP connection, comprising:

assigning a virtual IP address for the application program;

loading a kernel module comprising an IP bridge layer;

executing a checkpointing procedure for said application to invoke said kernel module for capturing the state of TCP connections that are open for that process and sending the connection state to said checkpointing procedure and to a backup server node in conjunction with application state; and

executing application restoration procedures to invoke said kernel module for restoring the backup server node to restore TCP connections in the exact state as they were in the primary server.

26. A method as recited in claim 25 : wherein the kernel module hooks into the networking stack during checkpointing and restoration and freezes the entire connection; and wherein the client experiences a connection delay during the time the process is checkpointed and restored on the backup node.

27. A computer executable program comprising a set of instructions stored on and executable on a computer for lossless migration of an application program from a primary node to a backup node which is transparent to a client connected to the primary node over a TCP/IP connection, comprising:

a virtual IP address assigned for the application program;

a loadable kernel module comprising an IP bridge layer;

an application checkpointing procedure configured for invoking said kernel module for capturing the state of all the open TCP connections for that process and communicating the connection states back to the checkpointing procedure and to a backup node along with the application state; and

an application restoration procedure configured for invoking said kernel module to restore all the TCP connections in the exact same state as they were in the primary node.

28. A computer executable program as recited in claim 27 : wherein the kernel module hooks into the networking stack during checkpointing and restoration and freezes the entire connection; and wherein the client experiences a connection delay during the time the process is checkpointed and restored on the backup node.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 20, 2012
From: OPEN INVENTION NETWORK, LLC
To: RED HAT, INC.
Reel/Frame 028994/0382 →
CHANGE OF NAME Recorded Dec 3, 2008
From: ETERNAL SYSTEMS, INC.
To: AVAILIGENT, INC.
Reel/Frame 021912/0588 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 20, 2008
From: AVAILIGENT, INC.
To: OPEN INVENTION NETWORK LLC
Reel/Frame 021691/0974 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 14, 2008
From: HARTIKAR, SANJAY D.; NGAN, CHING-YUK; HAVEMOSE, ALLAN; TEWKSBURY, LAUREN A.; RAMAN, VISHWAS
To: ETERNAL SYSTEMS, INC.
Reel/Frame 020807/0111 →