Database cluster systems and methods for maintaining client connections
First Claim
1. A database cluster comprising:
- a first computing system, the first computing system further comprising;
a primary connection manager that forms a Transmission Control Protocol/Internet Protocol (TCP/IP) connection with and receives transactions from at least one client, anda primary database management system (DBMS) that executes the transactions on data stored in one or more data files; and
a second computing system, the second computing system further comprising;
a secondary connection manager, the secondary connection manager configured to exchange state information with the primary connection manager about the TCP/IP connection, anda secondary DBMS that communicates with the secondary connection manager and that can access data stored in the one or more data files,wherein when the secondary connection manager determines that a particular condition is met with respect to performance of the first computing system, the secondary connection manager uses the state information exchanged with the primary connection manager to transparently assume the TCP/IP connection with the at least one client by replaying against the data, through the secondary DBMS, incomplete portions of open transactions executed on the data and receiving additional transactions from the at least one client for execution on the data.
27 Assignments
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.
84 Citations
19 Claims
-
1. A database cluster comprising:
-
a first computing system, the first computing system further comprising; a primary connection manager that forms a Transmission Control Protocol/Internet Protocol (TCP/IP) connection with and receives transactions from at least one client, and a primary database management system (DBMS) that executes the transactions on data stored in one or more data files; and a second computing system, the second computing system further comprising; a secondary connection manager, the secondary connection manager configured to exchange state information with the primary connection manager about the TCP/IP connection, and a secondary DBMS that communicates with the secondary connection manager and that can access data stored in the one or more data files, wherein when the secondary connection manager determines that a particular condition is met with respect to performance of the first computing system, the secondary connection manager uses the state information exchanged with the primary connection manager to transparently assume the TCP/IP connection with the at least one client by replaying against the data, through the secondary DBMS, incomplete portions of open transactions executed on the data and receiving additional transactions from the at least one client for execution on the data. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method of providing a fail-over database cluster, the method comprising:
-
forming a Transmission Control Protocol/Internet Protocol (TCP/IP) connection between a first computing system and at least one client; receiving transactions from the at least one client with a primary connection manager of the first computing system; executing the transactions with a primary database management system (DBMS) of the first computing system on data stored in one or more data files; exchanging state information, about the TCP/IP connection, between the primary connection manager and a secondary connection manager of a second computing system, wherein the first and second computing systems are part of the same network; and transparently assuming the TCP/IP connection with the second computing system by using the state information received from the primary connection manager when a predetermined condition exists with respect to at least one of the first and second computing systems, wherein said transparently assuming further comprises; replaying against the data, through a secondary DBMS of the second computing system, rolled-back transactions previously executed on the data, receiving with the secondary connection manager of the second computing system additional transactions from the at least one client, and executing the additional transactions against the one or more data files. - View Dependent Claims (11, 12, 13, 14)
-
-
15. A database cluster for providing for client connection fail-over, the database cluster comprising:
-
first means for forming a Transmission Control Protocol/Internet Protocol (TCP/IP) connection with a client computer, wherein said first means is further configured to receive transactions from the client computer; second means for receiving the transactions from said first means and for executing the transactions on data stored in at least one data file; third means for monitoring the TCP/IP connection between said first means and the client computer, for exchanging state information with said first means regarding TCP and IP protocols of the TCP/IP connection, and for transparently assuming the TCP/IP connection with the client computer while keeping the client TCP/IP connection alive from a perspective of the client based on the state information; and fourth means for accessing the data stored in the at least one data file, said fourth means being in communication with said third means, wherein said transparently assuming comprises replaying against the data, with said fourth means, uncommitted partial transactions executed on the data. - View Dependent Claims (16, 17, 18, 19)
-
Specification