Nova Patents
EP1533701A1

System and method for failover

Abstract

The present invention provides a novel system and method for failover. In an embodiment, a primary server and a backup server are available to a plurality of clients. Messages containing requests are processed by the primary server, while a mirror image of transaction records generated by the processing of those requests is maintained in volatile memory of both the primary server and the backup server. In this mode of operation, the volatile memory is periodically flushed to non-volatile memory.

EP1533701A1, drawing sheet 1
Sheet 1 of 17

Term

Term ended

Projected expiry passed 24 November 2024, 1.8 years ago.

  1. Priority
  2. Filed
  3. Published
  4. Projected expiry
  5. Today

42 claims: 18 independent, 24 dependent

  1. 1
    A system for failover comprising:at least one client connectable to a plurality of interconnectable servers;each of said servers operable to process messages from said client and maintain at least one transaction record respective to at least one of said messages in a transaction log stored in volatile storage, said servers further operable to flush said transaction log to non-volatile storage;said servers operable to cooperate so that when more than one server is available then only one of said servers processes said messages and a remainder of said servers maintain a mirror image of said transaction log;and when only one of said servers is available then said available server processes said messages and said transaction log is flushed to non-volatile storage.
  2. 5
    The system according to any of claims 1-4 wherein said servers are connectable to said clients via a first network and wherein said servers are interconnecttable with each other via a second network.
  3. 7
    The system according to claims 5 or 6 wherein said first network is selected from the group consisting of the Internet, a local area network and a wide area network.
  4. 13
    The system according to any of claims 10 to 12 wherein said servers include a plurality of software components comprising at least one application process that operates in a hot state to process said messages and otherwise operates in a warm state.
  5. 18
    The system according to any of claims 13 to 17 wherein said software components include a replication agent executing on each of said servers and communicating with each other to maintain said mirror image when both of said servers are available.
  6. 19
    The system according to any of claims 13 to 18 wherein said software components include a checkpoint agent executing on each of said servers and communicating with its respective transaction log, said checkpoint agent for flushing its respective transaction log to non-volatile storage.
  7. 20
    The system according to any of claims 9 to 19 wherein when said backup server is processing requests, said backup server is operable to assume the role of said primary server when said primary server becomes available and at which point said primary server assumes the role of said backup server.
  8. 25
    A system for failover comprising:at least one client selectively connectable to at least one of a primary server and at least one backup server via a network connection;said primary server and said at least one backup server being connected to each other in a normal state during which said primary server processes messages from said client and maintains a transaction log respective to each said message in random access memory, and during which said backup server is operable to maintain a mirror image of said transaction log, said transaction logs being periodically flushed to a non-volatile storage device respective to each said server;said client being only connected to said primary server in a primary-only state when said backup server is unavailable during which said primary server processes messages from said client andmaintains a transaction log respective to each said message in random access memory, andduring which said primary server transaction log is flushed to said primary server non-volatile storage device after each said message is processed;and,said client being only connected to said backup server in a backup-only state when said primary server is unavailable during which said backup server initially recovers a last-known state of said primary server and then processes messages from said client and maintains said backup server transaction log respective to each said message in random access memory, and wherein said transaction log is flushed to said backup server non-volatile storage device immediately after each said message is processed.
  9. 27
    A system for failover comprising:at least one client, a primary server and at least one backup server interconnected via at least one network connection;said primary server and said at least one backup server each operable to: execute an application for processing messages received from said at least one client;maintain a transaction log in random access memory;execute a replication agent;execute a checkpoint agent for flushing said transaction log to a non-volatile storage device respective to each said server;said system having: a normal state during which only said primary server application processes said messages and writes results thereof to said primary server transaction log and during which said replication agents are operable to mirror said primary server transaction log in said backup server transaction log, each of said transaction logs being flushed according to a predefined criteria;a primary-only state during which only said primary server application processes said messages and writes results thereof to said primary server transaction log and during which transaction log is simultaneously flushed to said primary server non-volatile storage device;a backup-only state during which only said backup server application processes said messages and writes results thereof to said backup server transaction log and during which backup server transaction log is simultaneously flushed to said backup server non-volatile storage device.
  10. 28
    A system for failover comprising:at least one client connectable to a primary server coupled to a backup server in a normal state during which said primary server processes messages from said client and maintains a transaction log respective to each said message in random access memory, and during which said backup server is operable to maintain a mirror image of said transaction log, said transaction logs being periodically flushed to a non-volatile storage device respective to each said server;said at least one client only connectable to said primary server when said backup server is unavailable during which said primary server processes messages from said client and maintains a transaction log respective to each said message in random access memory, and during which said backup server transaction log is flushed to said primary server non-volatile storage device after each said message is processed;and,said at least one client only connectable to said backup server when said primary server is unavailable during which said backup server initially recovers a last-known state of said primary server and then processes messages from said client and maintains said backup server transaction log respective to each said message in random access memory, and wherein said transaction log is flushed to said backup server non-volatile storage device immediately after each said message is processed.
  11. 29
    A system for failover comprising:at least one client connectable to a primary server coupled to a backup server when both of said servers are available and during which said primary server processes messages from said client and maintains a transaction log respective to each said message in random access memory, and during which said backup server is operable to maintain a mirror image of said transaction log, said transaction logs being periodically flushed to a non-volatile storage device respective to each said server;said at least one client being connectable to an available one of said primary server and said backup server when one of said servers is unavailable, during which said available server processes messages from said client and maintains a transaction log respective to each said message in random access memory, and during which said available server transaction log is flushed to said non-volatile storage device respective thereto after each said message is processed.
  12. 30
    A method for operating a system for failover comprising the steps of:receiving, at a primary server, a request from a client;processing, at said primary server, said request as at least one transaction;saving, in volatile memory associated with said primary server, a transaction record respective to said at least one transaction;generating, at said primary server, a request to commit said transaction;mirroring said transaction record in a volatile memory associated with said backup server;and,acknowledging, in said primary server, said commit request if said mirroring is successfully confirmed.
  13. 33
    34. The method of any of claims 30 to 33 further comprising the additional steps of repeating the foregoing steps for additional received messages.
  14. 35
    36. The method of any of claims 30 to 34 further comprising, after said receiving step, the step of determining whether said request is a duplicate request, and if said request is a duplicate request, then returning, to said client, a previously stored result of processing said request and then omitting the remaining steps of said method prior to repeating said method.
  15. 36
    37. A method of operating a backup server in a system for failover comprising the steps of:when said backup server determines a primary server connected thereto is available, performing the steps of: mirroring transaction records generated by said primary server in volatile memory of said backup server;and,periodically flushing said volatile memory to non-volatile memory connected to said backup server;when said backup server determines said primary server is unavailable, performing the steps of: receiving a request from a client;processing said request as at least one transaction;saving in volatile memory a transaction record respective to said at least one transaction;and,flushing said at least one transaction record to non-volatile memory.
  16. 38
    39. A backup server in a system for failover comprising:means for, when said backup server determines a primary server connected thereto is available, performing the steps of: mirroring transaction records generated by said primary server in volatile memory of said backup server;and,periodically flushing said volatile memory to non-volatile memory connected to said backup server;means for, when said backup server determines said primary server is unavailable, performing the steps of: receiving a request from a client;processing said request as at least one transaction;saving in volatile memory a transaction record respective to said at least one transaction;and,flushing said at least one transaction record to non-volatile memory.
  17. 40
    41. A primary server in a system for failover comprising:means for receiving a request from a client;means for processing said request as at least one transaction;means for saving in volatile memory a transaction record respective to said at least one transaction;means for generating a request to commit said transaction;means for sending a request to mirror said transaction record in volatile memory of a backup server;and,acknowledging said commit request if said mirroring request is successfully confirmed.
  18. 42
    43. A computer program operable to implement the system, method, or server of any preceding claim.