Method and apparatus for database fault tolerance with instant transaction replication using off-the-shelf database servers and low bandwidth networks
First Claim
1. A method for assuring consistent data processing in a networking database system, where the networking database system has a plurality of database clients communicating information in packets comprising the steps of:
- providing a plurality of database servers;
monitoring the status of said database servers to determine functionality;
intercepting database transaction commands issued from database clients before communicating to a database server and intercepts information from database servers before communicating to database clients;
duplicating database transaction commands for each of said database servers which are currently functional; and
synchronizing the delivery of said duplicated database transaction commands to all currently functional database servers, whereby all current functional servers process all database commands concurrently.
1 Assignment
0 Petitions
Accused Products
Abstract
This invention concerns providing a fault tolerant data service using multiple redundant off-the-shelf-database servers connected by low bandwidth networks. The data service continues operation regardless partial processing hardware failures, network failures, operating system failures and incidental database malfunctions. A database gateway automatically replicates database communication packets and monitors the wellness of communication networks and supporting database servers. It can quickly identify a unstable connection or a database server, thus providing highly reliable data service to all clients. An algorithm is disclosed to accomplish these tasks using minimal original client data.
-
Citations
24 Claims
-
1. A method for assuring consistent data processing in a networking database system, where the networking database system has a plurality of database clients communicating information in packets comprising the steps of:
-
providing a plurality of database servers;
monitoring the status of said database servers to determine functionality;
intercepting database transaction commands issued from database clients before communicating to a database server and intercepts information from database servers before communicating to database clients;
duplicating database transaction commands for each of said database servers which are currently functional; and
synchronizing the delivery of said duplicated database transaction commands to all currently functional database servers, whereby all current functional servers process all database commands concurrently. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
running monitoring software on each of said database servers;
reporting hardware, software and communication errors of said database servers;
checking the severity of the reported errors and updating the status of said database servers as non-functional based upon a predetermined error threshold;
discontinuing processing with database servers identified as non-functional;
repairing non-functional database servers and updating such servers with current data and functional status; and
reconnecting said repaired database servers.
-
-
3. The method of claim 1 wherein the step of synchronizing the delivery of database transaction commands further comprises queuing all database transaction commands for each server in the same order before sending said commands to said database servers.
-
4. The method of claim 3 further comprising processing said queued database transaction commands using a first in first out algorithm.
-
5. The method of claim 3 wherein the step of synchronizing the delivery of database transactions further comprises the steps of:
-
designating one said functional database server as a primary server;
distinguishing database transaction commands into READ-ONLY type and other types;
setting up a queue for said READ-ONLY database transaction commands and at least one queue for all other types database transaction commands; and
communicating READ-ONLY type database transaction commands to said functional servers such that data is only returned from said primary server and not any other database server whereby communication capacity is conserved.
-
-
6. The method of claim 5 wherein communicating READ-ONLY commands comprises communicating a stop processing command to each functional server which has not been designated as the primary server.
-
7. The method of claim 1 wherein the step of intercepting of commands includes the steps of:
-
decrypting incoming communication packets from clients; and
encrypting outgoing communication packets to clients.
-
-
8. The method of claim 1 further comprising of the step of denying access by database clients based on predetermined criteria, such as network address and port address.
-
9. The method of claim 3 wherein the step of monitoring the status of said database servers includes setting up a plurality of statuses that indicate whether a database server can process new database transaction commands from said database clients, whether a database server can continue processing already queued commands, but cannot process further commands from said database clients, or whether a database server is non-functional based upon predetermined error criteria.
-
10. The method of claim 1 wherein at least two of said database servers are provided in different networks and said synchronized delivery of said database commands is by inter-networking communication.
-
11. An apparatus database service system for assuring consistent data processing in a networking database system accessed by a plurality of database clients communicating information in packets comprising:
-
a plurality of database servers;
means for monitoring the status of said database servers to determine functionality;
a gateway intercepting database transaction commands issued from the database clients before communicating to any database server and receiving information from database servers before communication to database clients;
said gateway duplicating said database transaction commands for each of said database servers which are currently functional; and
said gateway synchronizing the delivery of said duplicated database transaction commands to all currently functional database servers, whereby all current functional servers process all database commands concurrently. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23)
means for running monitoring software on each of said database servers;
means for reporting hardware, software and communication errors of said database servers;
means for checking the severity of the reported errors and updating the status of said database servers as non-functional based upon a predetermined error threshold;
means for discontinuing processing with database servers identified as non-functional;
means for repairing non-functional database servers and updating such servers with current data and functional status; and
means for reconnecting said repaired database servers.
-
-
13. The system of claim 11 wherein means for synchronizing the delivery of database transaction commands further comprises means for queuing all database transaction commands.
-
14. The system of claim 11 further comprising means for processing said queued database transaction commands using first in first out algorithm.
-
15. The system of claim 11 wherein means for synchronizing the delivery of database transactions further comprises:
-
means for designating one said functional database server as a primary server;
means for distinguishing database transaction commands into READ-ONLY type and other types;
means for setting up a queue for said READ-ONLY database transaction commands and at least one queue for all other types database transaction commands; and
means for communicating READ-ONLY type database transaction commands to said functional servers such that data is only returned from said primary server and not any other database server whereby communicating capacity is conserved.
-
-
16. The system of claim 15 wherein means for communicating READ-ONLY commands comprises means for communicating a stop processing command to each functional server which has not been designated as the primary server.
-
17. The system of claim 11 further comprising a user interface wherein said database system parameters such as network address, port addresses, optional synchronizing features, or the switch of primary server can be modified anywhere on the network based on individual system needed.
-
18. The system of claim 11 further comprising:
-
means for decrypting incoming communication packets from clients; and
means for encrypting outgoing communication packets to clients.
-
-
19. The system of claim 11 further comprising means for denying access by database clients based on predetermined criteria, such as network address, port address.
-
20. The system of claim 11 wherein means for monitoring the status of said database servers includes means for setting up a plurality of statuses that indicate whether a database server can process new database transaction commands from said database clients, whether a database server can continue processing already queued commands, but cannot process further commands from said database clients, or whether a database server is non-functional based upon predetermined error criteria.
-
21. The system of claim 11 wherein at least two of said database servers are provided in different networks and said synchronized delivery of said database commands is by inter-networking communication.
-
22. The system of claim 11 wherein having a master unit and a slave unit of said apparatus further comprises:
-
means for monitoring the functionality of said master unit by said slave unit;
means for shutting down said failing master unit by said slave unit; and
means for taking over the functions of said master unit by said slave unit with assigning said slave unit'"'"'s IP address as the new master unit IP address for the network and all communications from/to said database servers and said database clients are directed to said new master unit.
-
-
23. The system of claim 21 wherein means for shutting down said failing master unit further comprises cutting off the power source of said maser unit.
-
24. A gateway used for assuring consistent data processing in a networking database system that has a plurality of database servers and a plurality of database clients communicating information in packets comprising:
-
means for monitoring the status of said database servers to determine functionality;
means for intercepting database transaction commands issued from the database clients before communicating to any database server and receiving information from database servers before communication to database clients;
means for duplicating said database transaction commands for each of said database servers which are currently functional; and
means for synchronizing the delivery of said duplicated database transaction commands to all currently functional database servers, whereby all current functional servers process all database commands concurrently.
-
Specification