×

System and method for reliable non-blocking messaging for multi-process application replication

  • US 9,141,481 B1
  • Filed: 09/22/2010
  • Issued: 09/22/2015
  • Est. Priority Date: 08/06/2010
  • Status: Active Grant
First Claim
Patent Images

1. A system for providing reliable non-blocking messaging, the system comprising:

  • a primary application and one or more backup applications;

    one or more system memory locations configured to store said primary application;

    one or more central processing units (CPUs) operatively connected to computer system memory and configured to execute said primary application on a primary host with a host operating system;

    one or more interceptors configured to intercept calls to the host operating system and libraries and configured to generate replication messages based on said intercepted calls;

    a messaging layer for said primary application configured to transmit said replication messages to the one or more backup applications;

    one or more backup hosts each comprised of;

    one or more system memory locations configured to store the one or more backup applications, one or more central processing units operatively connected to computer system memory and configured to execute the one or more backups applications on a host operating system;

    one or more additional interceptors configured to intercept calls to said one or more backup host operating systems and libraries; and

    an additional messaging layer for each of the one or more backup applications configured to receive said replication messages,wherein each replication message is comprised of a message sequence number, and one or more of a method identifier, a process identifier, a thread identifier, and a data-block containing data related to the intercepted call generating the replication message;

    wherein an Input/Output (I/O) operation on the primary includes the result of the I/O operation and application state-changes in the corresponding replication message'"'"'s data-block; and

    the one or more backup applications suppress the I/O operation and use said data-block to adjusts internal state based on internal state received from the primary application and to return the result generated by the primary application; and

    wherein a process or thread operation on the primary includes the process and thread identifiers in the replication message; and

    the one or more backup applications repeat the process and the thread operations corresponding to the replication message, and maintain mappings between process identifiers and thread identifiers for the primary application and the one or more backup applications.

View all claims
  • 2 Assignments
Timeline View
Assignment View
    ×
    ×