Claims
- 1. A method for distributed database clustering, comprising:
executing a Database Grid mechanism, using asynchronous transactional replication, for maintaining multiple copies of databases on a plurality of servers in a cluster; executing a Cluster Commit mechanism, to maintain transaction durability; and executing a master election component, to determine which cluster server is an active server.
- 2. The method of claim 1, wherein said Database Grid mechanism further comprises:
defining an origin database; duplicating said origin database, thereby creating a matrix of databases that are exact copies of said origin database, said matrix of databases residing on a plurality of cluster servers; creating a set of one-way asynchronous transactional replication links between said plurality of databases, to allow changes in an “active” database to propagate to all said databases in said matrix, said asynchronous replication links comprising static and local replications; executing said static replications continuously, to copy pending transactions through said replication links; executing dynamic maintenance of said local replications to accurately reflect active server changes; and synchronizing said plurality of databases.
- 3. The method of claim 2, further comprising adapting said local replications to accurately reflect requirements of said active database.
- 4. The method of claim 1, wherein said Cluster Commit operation further comprises the steps of:
executing an availability monitor mechanism on an active server, thereby continuously updating a list of Available servers; executing a cluster commit operation, following instructions from an application, said cluster commit operation comprising:
i. adding a table for each database in the database cluster; ii. adding a database version number to each said table; iii. executing an application command, thereby incrementing said version number on said active server; and iv. waiting for said transaction to be committed at all Available Servers while marking as “Unavailable” all servers not responding within a determined period, such that said “Unavailable” servers are removed from the list of servers for which said cluster commit operation waits.
- 5. The method for claim 4, wherein said active database server may continue processing transactions normally while said cluster commit operation is in progress.
- 6. The method of claim 4, further comprising:
entering a Cold-Start state whenever a cluster server suffers a failure that does not allow said server to continue receiving database updates from other servers in said cluster, to collect more information for deciding which server should be defined as the active cluster server; and exiting said cold-start state, by receiving a periodic message from said active cluster server.
- 7. The method of claim 6, wherein exiting of said cold-start state further comprises, in the case where no active server exists:
waiting, by said server, to receive messages from all cluster servers, in order to determine which has the latest database version; and selecting said database with said latest database version as a candidate to be a new active server.
- 8. The method of claim 1, wherein said Cluster Commit operation enables distributed database-clustering, without being inherently restricted by the distance between cluster servers.
- 9. The method of claim 1, wherein said master election component is executed according to the following steps:
deciding on a continual basis which server is an active server candidate; if said candidate is different from current active server, executing a fail-over process, wherein said current active server relinquishes its active state; and executing a take-over procedure, wherein said candidate is established as a new active server.
- 10. The method of claim 8, wherein said execution of a master election component furthermore complies with the constraints selected from the group consisting of:
a server with an error condition preventing said server from communicating with a network backbone is never selected to be an active server candidate; an unavailable server is never selected to be said active server candidate; and a cold-starting server is not selected to be said active node candidate, unless all other cluster servers are similarly in a cold start state and said server has the latest version of said database.
- 11. The method of claim 1, wherein said distributed database clustering meets the requirements selected from the group consisting of: no single point of failure; guaranteeing data consistency; complying with transaction ACID properties; automatically recovering from subsequent failures; and causing no inherent performance degradation of said cluster server.
- 12. A database clustering method for enabling high availability of data, while maintaining transaction durability, comprising:
i. installing computer executable code for implementing the clustering method on a plurality of database servers, for clustering said servers; ii. connecting said servers to a network, said network enabling each said server to access other said servers, and such that transactional replication links can be deployed between said servers; iii. installing one clustered database on one of said clustered servers, said clustered server being an “Origin server”; iv. executing a database grid function, thereby maintaining copies of said origin server's at least one database on said other servers; v. starting a Master Election process to select an active server; and vi. calling a cluster commit function, by an application, to guarantee that a current consistent state of said active server's version of said database is durable in all cluster servers.
- 13. The method of claim 12, further comprising, in case of a failure in said active server, activating another server to be a new active server in said cluster.
- 14. The method of claim 12, wherein said steps iii-vi. are repeated for clustering of at least one additional database.
- 15. A method for enabling load balancing within distributed database clusters, comprising:
processing write-only transactions by an active server in the cluster; and processing read-only transactions by any available server in the cluster.
- 16. The method of claim 15, wherein said read-only transactions are served by any available servers, using decision rules.
Parent Case Info
[0001] This application claims priority from application number 60/293,548, filed May 29, 2001 and application number 60/333,517, filed Nov. 28, 2001, both by the same inventors.
Provisional Applications (2)
|
Number |
Date |
Country |
|
60293548 |
May 2001 |
US |
|
60333517 |
Nov 2001 |
US |