Transfer of Event Logs for Replication of Executing Programs
First Claim
1. A method executing on a computer system for replicating program executing on the computer system having a first storage, one destination being accessible from the computer system, the method comprising:
- responsive to a non deterministic non-deterministic event, blocking an executing program request from an executing program corresponding to that event;
determining whether the non-deterministic event corresponds to a message that is an input for the executing program to be replicated or to an output request from the executing program for sending an output message, wherein the non-deterministic event is a non-abortable event;
responsive to a non-abortable event not occurring, logging the event in the first storage, delivering the event to the executing program to be replicated, and unblocking the executing program request; and
responsive to a non-abortable event, transferring contents of the first storage to the destination, and responsive to an acknowledgment being received from the destination, unblocking the executing program request.
1 Assignment
0 Petitions
Accused Products
Abstract
A mechanism for replicating programs executing on a computer system having a first storage means is provided. The mechanism identifies the events corresponding to requests from one executing program, which may be different from the executing program to be replicated, which are non-deterministic and identifies the ‘Non Abortable Events’ (NAE'"'"'s), which change irremediably the state of the external world that need to be reproduced in the replay of the programs. These events are immediately transferred for replay and the executing program is blocked until the transfer is acknowledged. For the other non-deterministic events, they are logged and sent to the executing program, the executing programs remaining blocked only if the log is full and/or if a timer between two NAEs expires, in this case a log transfer to the standby machine is performed to prepare replication before unblocking of the executing program.
-
Citations
23 Claims
-
1. A method executing on a computer system for replicating program executing on the computer system having a first storage, one destination being accessible from the computer system, the method comprising:
-
responsive to a non deterministic non-deterministic event, blocking an executing program request from an executing program corresponding to that event; determining whether the non-deterministic event corresponds to a message that is an input for the executing program to be replicated or to an output request from the executing program for sending an output message, wherein the non-deterministic event is a non-abortable event; responsive to a non-abortable event not occurring, logging the event in the first storage, delivering the event to the executing program to be replicated, and unblocking the executing program request; and responsive to a non-abortable event, transferring contents of the first storage to the destination, and responsive to an acknowledgment being received from the destination, unblocking the executing program request. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9-11. -11. (canceled)
-
12. A computer program product comprising a computer recordable medium having a computer readable program recorded thereon, wherein the computer readable program, when executed on a computing device, causes the computing device to:
-
responsive to a non-deterministic event, block an executing program request from an executing program corresponding to that event; determine whether the non-deterministic event corresponds to a message that is an input for the executing program to be replicated or to an output request from the executing program for sending an output message, wherein the non-deterministic event is a non-abortable event; responsive to a non-abortable event not occurring, log the event in the first storage, deliver the event to the executing program to be replicated, and unblock the executing program request; and responsive to a non-abortable event, transfer contents of the first storage to the destination and responsive to an acknowledgment being received from the destination, unblock the executing program request. - View Dependent Claims (13, 14, 15, 16, 17)
-
-
18. An apparatus, comprising:
-
a processor; and a memory coupled to the processor, wherein the memory comprises instructions which, when executed by the processor, cause the processor to; responsive to a non-deterministic event, block an executing program request from an executing program corresponding to that event; determine whether the non-deterministic event corresponds to a message that is an input for the executing program to be replicated or to an output request from the executing program for sending an output message, wherein the non-deterministic event is a non-abortable event; responsive to a non-abortable event not occurring, log the event in the first storage, deliver the event to the executing program to be replicated, and unblock the executing program request; and responsive to a non-abortable event, transfer contents of the first storage to the destination and responsive to an acknowledgment being received from the destination, unblock the executing program request. - View Dependent Claims (19, 20, 21, 22, 23)
-
Specification