Continuously available program replicas
First Claim
Patent Images
1. A method for replicating a program and data storage, the method comprising:
- recording, as program replication data, user input to a first program by monitoring the first program and trapping system calls;
sending the program replication data from the first program to a second program such that the second program operates on the same user input as the first program, the second program having an application program that is a replica of an application program of the first program, the program replication data causing the second program to mirror a state of the first program for enabling at least one of a user and an application interaction with the second program as if it were the first program when the first program fails;
sending data storage requests from the first program to a first storage system; and
replicating data stored in the first storage system in a second storage system.
1 Assignment
0 Petitions
Accused Products
Abstract
A method for replicating a program and data storage according to one embodiment comprises sending program replication data from a first program to a second program, the second program having an application program that is a replica of an application program of the first program; sending data storage requests from the first program to a first storage system; and replicating data stored in the first storage system in a second storage system. Additional methods, systems, and computer program products are disclosed.
-
Citations
25 Claims
-
1. A method for replicating a program and data storage, the method comprising:
-
recording, as program replication data, user input to a first program by monitoring the first program and trapping system calls; sending the program replication data from the first program to a second program such that the second program operates on the same user input as the first program, the second program having an application program that is a replica of an application program of the first program, the program replication data causing the second program to mirror a state of the first program for enabling at least one of a user and an application interaction with the second program as if it were the first program when the first program fails; sending data storage requests from the first program to a first storage system; and replicating data stored in the first storage system in a second storage system. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A computer program product for replicating a program and data storage, the computer program product comprising:
a non-transitory computer readable storage medium having computer readable program code embodied therewith, the computer readable program code comprising; computer readable program code configured to record, as program replication data, user input to a first program by monitoring the first program and trapping system calls; computer readable program code configured to send the program replication data from the first program to a second program such that the second program operates on the same user input as the first program, the second program having an application program that is a replica of an application program of the first program; computer readable program code configured to send data storage requests from the first program to a first storage system; computer readable program code configured to send data storage replication data from the first program to the second program, the second program sending data storage requests to a second storage system based on the data storage replication data for replicating data stored in the first storage system in the second storage system, wherein the program replication data enables mirroring of processor and memory state associated with the first program, wherein the program replication data further enables mirroring of any data read by the first program, computer readable program code configured to send outputs of the first program to at least one of a user and an application; and computer readable program code configured to enable interaction of at least one of the user and the application with the second program as if it were the first program when the first program fails, wherein outputs of the second program are sent to at least one of the user and the application. - View Dependent Claims (18, 19, 20, 21, 22)
-
23. A system having replicated programs and data storage, the system comprising:
-
a first device configured to run a first program, and record, as program replication data, user input to the first program by monitoring the first program and trapping system calls; a second device configured to run a second program, the first device being configured to send the program replication data to the second device when the first program and the second program are running such that the second program operates on the same user input as the first program, the second program having an application program that is a replica of an application program of the first program, the program replication data causing the second program to mirror a state of the first program for enabling at least one of a user and an application interaction with the second program as if it were the first program when the first program fails, thereby improving efficiency of the system by reducing an amount of system downtime following a failure of the first program; a first storage system configured to receive data storage requests from the first device; and a second storage system, data stored in the first storage system being replicated in the second storage system.
-
-
24. A system having replicated programs and data storage, the system comprising:
-
a device configured to; run a first program and a second program; record, as program replication data, user input to the first program by monitoring the first program and trapping system calls; send the program replication data to the second program when the first program and the second program are running such that the second program operates on the same user input as the first program, the second program having an application program that is a replica of an application program of the first program, the program replication data causing the second program to mirror a state of the first program for enabling at least one of a user and an application interaction with the second program as if it were the first program when the first program fails; and use a record and reply program replication scheme to enable synchronization between the first and second programs, wherein using the record and reply program replication scheme reduces an amount of data involved with maintaining the synchronization; a first storage system configured to receive data storage requests from the device; and a second storage system, data stored in the first storage system being replicated in the second storage system.
-
-
25. A computer program product comprising a non-transitory computer useable medium having a computer readable program, wherein the computer readable program when executed on a computer causes the computer to:
-
record, by the computer and as program replication data, user input to a first program by monitoring the first program and trapping system calls; send, by the computer, the program replication data from the first program to a second program such that the second program operates on the same user input as the first program, the second program having an application program that is a replica of an application program of the first program, the program replication data causing the second program to mirror a state of the first program for enabling at least one of a user and an application interaction with the second program as if it were the first program when the first program fails, thereby improving efficiency of the computer by reducing an amount of processing power and run time consumed by the computer in order to enable at least one of the user and the application interaction with the second program following a failure of the first program; send, by the computer, data storage requests from the first program to a first storage system; and replicate, by the computer, data stored in the first storage system in a second storage system.
-
Specification