IP Library Granted Patent US 7,827,151
Granted Patent B2
US 7,827,151 · App. 11/874,116 · Granted Nov 2, 2010

High availability via data services

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,827,151
App. No.
11/874,116
Filed
Oct 17, 2007
Granted
Nov 2, 2010
Kind
B2
Art Unit
2162
USPC
714/15
Abstract

Application-level replication, the synchronization of data updates within a cluster of application servers, may be provided by having application servers themselves synchronize all updates to multiple redundant databases, precluding the need for database-level replication. This may be accomplished by first sending a set of database modifications requested by the transaction to a first database. Then a message may be placed in one or more message queues, the message indicating the objects inserted, updated, or deleted in the transaction. Then a commit command may be sent to the first database. The set of database modifications and a commit command may then be sent to second database. This allows for transparent synchronization of the database and quick recovery from a database failure, while imposing little performance or network overhead.

Claims (39)

1. A method for failover from a failure of a first database during processing of a transaction, the transaction requesting a set of database modifications, the method comprising:

detecting the failure in the first database;

placing a message in one or more message queues, the message indicating an object inserted, updated or deleted in the transaction;

sending the set of database modifications and a commit command to a second database;

processing a future transaction with the second database until the first database is restored;

sending a cache synchronization message to a plurality of application servers sharing a same cluster as an application server executing the method, the cache synchronization message including an indication that the first database is down;

receiving the cache synchronization message at another application server;

extracting a transaction ID from the cache synchronization message; and

discarding messages containing the transaction ID from one or more message queues.

2. A method for failover from a failure of a first database during processing of a transaction, the transaction requesting a set of database modifications, the method comprising:

detecting the failure in the first database;

placing a message in one or more message queues, the message indicating an object inserted, updated or deleted in the transaction;

sending the set of database modifications and a commit command to a second database;

processing a future transaction with the second database until the first database is restored; and

sending a cache synchronization message to a plurality of application servers sharing a same cluster as an application server executing the method, the cache synchronization message including an indication that the first database is down;

wherein sending the set of database modifications and the commit command to a the second database and sending the cache synchronization message are performed asynchronously on separate threads.

3. A method for failover from a failure of a second database during processing of a transaction, the transaction requesting a set of database modifications, the method comprising:

detecting the failure in the second database;

sending a cache synchronization message to a plurality of application servers sharing a same cluster as an application server executing the method, the cache synchronization message including an indication that the second database is down;

processing a future transaction with a first database until the second database is restored;

receiving the cache synchronization message at another application server;

extracting a transaction ID from the cache synchronization message; and

discarding messages containing the transaction ID from one or more message queues.

4. An apparatus for failover from a failure of a first database during processing of a transaction, the transaction requesting a set of database modifications, the apparatus comprising:

means for detecting the failure in the first database;

means for placing a message in one or more message queues, the message indicating an object inserted, updated or deleted in the transaction;

means for sending the set of database modifications and a commit command to a second database;

means for processing a future transaction with the second database until the first database is restored:

means for receiving the cache synchronization message at another application server;

means for extracting a transaction ID from the cache synchronization message; and

means for discarding messages containing the transaction from one or more message queues,

wherein the apparatus is located on an application server.

5. An apparatus for failover from a failure of a first database during processing of a transaction, the transaction requesting a set of database modifications, the apparatus comprising:

means for detecting the failure in the first database;

means for placing a message in one or more message queues, the message indicating an object inserted, updated or deleted in the transaction;

means for sending the set of database modifications and a commit command to a second database; and

means for processing a future transaction with the second database until the first database is restored,

wherein the apparatus is located on an application server, and

wherein sending the set of database modifications and the commit command to a the second database and sending the cache synchronization message are performed asynchronously on separate threads.