Highly available database clusters that move client connections between hosts
First Claim
1. A database cluster which avoids client failure by connecting to multiple nodes of the cluster, the database cluster comprising:
- a first computing system including;
a primary connection manager which forms a client connection with and receives transactions from at least one client, and a primary database management system (DBMS) which communicates with the primary connection manager to receive the transactions and executes the transactions on data stored in one or more data files; and
a second computing system including;
a secondary connection manager, and a secondary DBMS which communicates with the secondary connection manager and can access data stored in the one or more data files, wherein when the second connection manager determines that a predetermined condition is met, the second connection manager receives data from the client connection, replays incomplete portions of open transactions on the data through the secondary DBMS, and begins to receive additional transactions from the at least one client to be executed against the one or more data files.
1 Assignment
0 Petitions
Accused Products
Abstract
Aspects of embodiments of the present disclosure include a highly available database cluster that can maintain a connection with potentially geographically remote client application programs, including non-fault tolerant application programs, even in the event of one of the database management systems (DBMS) of the cluster becoming unavailable. For example, the database cluster can advantageously move a client connection between a failing, unbalanced, or overloaded DBMS, to another DBMS within the cluster. The database cluster can include connection managers that monitor a connection between a client application program and a primary DBMS. When one connection manager determines that the primary DBMS is unavailable, the connection manager of a secondary DBMS can assume the connection to the client application as if it were the primary DBMS. The connection manager can finish all open transactions, thereby avoiding the need to roll back the same. Moreover, the connection managers can monitor the connection at the DBMS communication level, such as, for example, the SQL*Net level.
-
Citations
23 Claims
-
1. A database cluster which avoids client failure by connecting to multiple nodes of the cluster, the database cluster comprising:
-
a first computing system including;
a primary connection manager which forms a client connection with and receives transactions from at least one client, and a primary database management system (DBMS) which communicates with the primary connection manager to receive the transactions and executes the transactions on data stored in one or more data files; and
a second computing system including;
a secondary connection manager, and a secondary DBMS which communicates with the secondary connection manager and can access data stored in the one or more data files, wherein when the second connection manager determines that a predetermined condition is met, the second connection manager receives data from the client connection, replays incomplete portions of open transactions on the data through the secondary DBMS, and begins to receive additional transactions from the at least one client to be executed against the one or more data files. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A primary and at least one secondary connection manager of a database cluster, which manage a connection between at least one client and two or more database management systems (DBMSs), wherein the primary and at least one secondary connection manager can move the connection from the primary connection manager to the at least one secondary connection manager while providing protocols for the connection native to the two or more DBMSs, the primary and secondary connection manager comprising:
-
a first memory;
a primary connection configured to form a connection with a client and to place statements from transactions from the client into the first memory;
a primary protocol shadow configured to retrieve the statements and forward the statements to a primary DBMS;
a secondary memory;
a secondary connection configured to receive transactions from the connection with the client when one or more predetermined conditions are met and to place new statements from the transactions from the client into the second memory;
at least one process configured to replay any incomplete statements of open transactions; and
a secondary protocol shadow configured to connect to the at least one process until the incomplete statements are forwarded to a secondary DBMS and then to connect to the secondary memory to retrieve the new statements and forward the new statements to the secondary DBMS. - View Dependent Claims (12, 13, 14, 15, 16, 18, 19)
-
-
17. A method of providing native protocol access and transparent fail-over to a client connection thereby avoiding a client failure when a primary host fails, the method comprising:
-
rerouting a client connection between a first host and a client to a second host;
replaying at least one statement from open transactions, wherein the at least one statement includes a statement received but not committed by the first host when the client connection was moved from the first host; and
establishing communication between the second host and the client over the client connection.
-
-
20. A method of providing transparent fail-over to a client connection thereby avoiding a client failure when a primary database management system DBMS fails, the method comprising:
-
monitoring statistics of a client connection between a first DBMS and a client;
determining from the statistics a need to move the client connection to a second DBMS while keeping the client connection alive from a perspective of the client;
rerouting the client connection to the second DBMS;
replaying any statements from open transactions rolled back when the client connection was moved from the first DBMS; and
establishing communication between the second DBMS and the client over the client connection.
-
-
21. A data processing system which provides transparent fail-over to a client connection, thereby avoiding a client failure when a primary host fails, the data processing system comprising:
-
a first host configured to accept a client connection from a client;
a connection manager which reroutes the client connection to a second host without recognition by the client; and
a replay process which forwards to the second host at least one incomplete statement from open transactions when the client connection was moved from the first host, wherein the connection manager establishes communication between the second host and the client over the client connection. - View Dependent Claims (22, 23)
-
Specification