System and method for dynamic transparent consistent application-replication of multi-process multi-threaded applications
First Claim
1. A system for providing replica consistency between a primary application and one or more backup applications, the system comprising:
- computer system memory comprising one or more memory locations configured to store the primary application;
one or more Central Processing Units (CPUs) operatively connected to said computer system memory and configured to execute said primary application on a host with a host operating system;
an interception layer on the primary application configured to intercept calls to the host operating system and configured to intercept calls to shared libraries, and configured to generate replication messages based on said intercepted calls;
a messaging engine, for said primary application, that is configured to send said replication messages to the one or more backup applications;
one or more backup hosts each with a host operating system and each comprising;
computer system memory comprising one or more memory locations configured to store one or more backup applications, and one or more Central Processing Units (CPUs) operatively connected to said computer system memory and configured to execute said one or more backup applications;
at least one additional messaging engine, for each backup application, that is configured to receive said replication messages from said primary application; and
backup interception layers, corresponding to each backup application, which are configured to intercept calls to the host operating system and shared libraries, wherein ordering information is retrieved from the additional messaging engine for each backup application, andwherein each replication message contains at least a process identifier, a thread identifier and a sequence number, and wherein said calls do not create or destroy processes and do not create or destroy threads, and replica consistency is provided by imposing a same call ordering on the backup applications as on the primary applications; and
wherein said primary application'"'"'s call ordering is imposed for said each backup application by sorting incoming replication messages by sequence number, and only delivering the replication messages with matching process and thread identifiers and with a sequence number exactly one larger than the sequence number of the most recently delivered message.
2 Assignments
0 Petitions
Accused Products
Abstract
A system, method, and computer readable medium for consistent and transparent replication of multi process multi threaded applications. The computer readable medium includes computer-executable instructions for execution by a processing system. Primary applications runs on primary hosts and one or more replicated instances of each primary application run on one or more backup hosts. Replica consistency between primary application and its replicas is provided by imposing the execution ordering of the primary on all its replicas. The execution ordering on a primary is captured by intercepting calls to the operating system and libraries, sending replication messages to its replicas, and using interception on the replicas to enforce said captured primary execution order. Replication consistency is provided without requiring modifications to the application, operating system or libraries.
62 Citations
19 Claims
-
1. A system for providing replica consistency between a primary application and one or more backup applications, the system comprising:
-
computer system memory comprising one or more memory locations configured to store the primary application; one or more Central Processing Units (CPUs) operatively connected to said computer system memory and configured to execute said primary application on a host with a host operating system; an interception layer on the primary application configured to intercept calls to the host operating system and configured to intercept calls to shared libraries, and configured to generate replication messages based on said intercepted calls; a messaging engine, for said primary application, that is configured to send said replication messages to the one or more backup applications; one or more backup hosts each with a host operating system and each comprising;
computer system memory comprising one or more memory locations configured to store one or more backup applications, and one or more Central Processing Units (CPUs) operatively connected to said computer system memory and configured to execute said one or more backup applications;at least one additional messaging engine, for each backup application, that is configured to receive said replication messages from said primary application; and backup interception layers, corresponding to each backup application, which are configured to intercept calls to the host operating system and shared libraries, wherein ordering information is retrieved from the additional messaging engine for each backup application, and wherein each replication message contains at least a process identifier, a thread identifier and a sequence number, and wherein said calls do not create or destroy processes and do not create or destroy threads, and replica consistency is provided by imposing a same call ordering on the backup applications as on the primary applications; and wherein said primary application'"'"'s call ordering is imposed for said each backup application by sorting incoming replication messages by sequence number, and only delivering the replication messages with matching process and thread identifiers and with a sequence number exactly one larger than the sequence number of the most recently delivered message. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19)
-
Specification