APPARATUS AND METHOD OF OPTIMIZING DATABASE CLUSTERING WITH ZERO TRANSACTION LOSS
First Claim
1. A method of processing client queries comprising:
- (a) receiving a plurality of client queries that are sequentially transmitted using a transmission control protocol (TCP)/Internet protocol (IP) in the form of sequential query packets that constitute multiple concurrent database connections;
(b) replicating each particular query packet onto a plurality of stand-alone database servers if the particular query packet is a data changing query packet; and
(c) distributing or load balancing the particular query packet by sending the particular query packet to only one of the plurality of stand-alone servers if the particular query packet is not a data changing query packet.
1 Assignment
0 Petitions
Accused Products
Abstract
An efficient database cluster system that uses multiple stand-alone database servers with independent datasets to deliver higher processing speed and higher service availability at the same time with zero transaction losses. In one embodiment, a dynamic serializing transaction replication engine with dynamic load balancing for read-only queries is implemented. In another embodiment, a non-stop database resynchronization method that can resynchronize one or more out-of-sync databases without shutting down the cluster automatic database resynchronization process is implemented. In yet another embodiment, an embedded concurrency control language is implemented in the replication engine for precise control of the dynamic serialization engine for optimal processing performance. In yet another embodiment, a zero-downtime gateway failover/failback scheme using a public Internet Protocol (IP) is implemented. In yet another embodiment, a horizontal data partitioning method for load balancing update queries is implemented.
-
Citations
29 Claims
-
1. A method of processing client queries comprising:
-
(a) receiving a plurality of client queries that are sequentially transmitted using a transmission control protocol (TCP)/Internet protocol (IP) in the form of sequential query packets that constitute multiple concurrent database connections;
(b) replicating each particular query packet onto a plurality of stand-alone database servers if the particular query packet is a data changing query packet; and
(c) distributing or load balancing the particular query packet by sending the particular query packet to only one of the plurality of stand-alone servers if the particular query packet is not a data changing query packet. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A database cluster comprising:
-
(a) a database gateway configured to receive a plurality of client queries that are sequentially transmitted using a transmission control protocol (TCP)/Internet protocol (IP) in the form of sequential query packets that constitute multiple concurrent database connections; and
(b) a plurality of stand-alone database servers, wherein each particular query packet is replicated onto the plurality of stand-alone database servers if the particular query packet is a data changing query packet, and the particular query packet is distributed or load-balanced by sending the particular query packet to only one of the plurality of stand-alone servers if the particular query packet is not a data changing query packet. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. In a database cluster including a database gateway, at least one active database server and one or more deactivated database servers, whereby each of the database servers is configured to generate a full transaction log, a method of automatically resynchronizing the database servers before the deactivated database servers are reactivated, the method comprising:
-
(a) performing a full backup from one active database server to generate a dataset that is stored onto a network-shared path accessible by all of the database servers;
(b) restoring databases onto the deactivated database servers using the dataset when the full backup is completed;
(c) performing a transaction log backup onto the dataset after a predetermined delay to incorporate any new updates;
(d) loading the transaction log onto the deactivated database servers;
(e) repeating steps (c) and (d) until there are no more new updates;
(f) pausing the database gateway;
(g) disconnecting all clients;
(h) performing a final transaction log backup onto the dataset;
(i) initiate a database restore using the dataset when the final transaction log backup is finished; and
(j) reactivating the deactivated database servers. - View Dependent Claims (21)
-
-
22. In a database cluster including a first database gateway server associated with a first physical server Internet protocol (IP) address and a second database gateway server associated with a second physical server IP address, wherein each of the database gateway servers is configured to take over a public gateway IP address while the other database gateway server is standing by, a method of restoring a database gateway server that malfunctioned without stopping cluster service, the method comprising:
-
(a) determining that the database gateway server having the public IP malfunctioned by sending period heart beats;
(b) deactivating the malfunctioning database gateway server for repair;
(c) the other one of the database gateway servers taking over the public gateway IP address by binding the public gateway IP address to its physical server IP address; and
(d) when bringing the malfunctioned database gateway server online after repair, setting the repaired database gateway to monitor and takeover the Public IP.
-
-
23. A method of parallel processing data changing queries that include UPDATE, DELETE and INSERT, and SELECT structured query language (SQL) statements in a database cluster system including a primary database server and a secondary database server, the method comprising:
-
(a) horizontal partitioning a data table T1 to generate a first partitioned data table T11 that is hosted in the primary database server and a second partitioned data table(s) T12 that is hosted in the secondary database server(s);
(b) hosting a backup copy of first partitioned data table T11′
in the secondary database server;
(c) hosting a backup copy of the second partitioned data table T12′
in the primary database server;
(d) replicating the UPDATE, DELETE and load balanced INSERT SQL statements to the data tables T11, T11′
, T12′ and
T12; and
(e) load balancing the SELECT and INSERT SQL statements to the data tables T11, T11′
, T12′ and
T12. - View Dependent Claims (24, 25)
-
-
26. A database cluster system for parallel processing data changing queries that include UPDATE, DELETE and INSERT, and SELECT structured query language (SQL) statements, the system comprising:
-
(a) a plurality of replicator gateways configured to receive UPDATE and DELETE SQL statements;
(b) a first load balancer configured to receive INSERT SQL statements and distribute the received INSERT SQL statements to the replicator gateways;
(c) a primary database server configured to host a first partitioned data table T11 and a backup copy of a second partitioned data table T12′
;
(d) at least one secondary database server configured to host the second partitioned data table T12 and a backup copy of the first partitioned data table T11′
;
(e) second and third load balancers configured to receive SELECT SQL statements, wherein the second load balancer is further configured to distribute SELECT SQL statements to the T11 and T11′
data tables, the third load balancer is further configured to distribute the received SELECT SQL statements to the T12′ and
T12 data tables, and the replicator gateways are further configured to replicate DELETE, UPDATE and load balanced INSERT SQL statements in the data tables T11, T11′
, T12′ and
T12. - View Dependent Claims (27, 28, 29)
-
Specification