JDBC Request Distribution and Failover

Typical relational database configurations have one database server instance running on one server computer. Even if all of the other components of the system are clustered, a single database server instance could crash and cause the entire site running on the cluster to become unusable. So, some sort of clustering must also be done for the database so it is not a single point of failure.

There are relational database servers that support replication but not parallel use and some that support both replication and parallel use.

In the case where the database supports replication but not parallelization, the database instance that is replicated to becomes a secondary server that the cluster could failover to. In this case, the database driver code (commonly a JDBC driver) would need to know how to connect to each database instance and when to failover to a secondary (replicated) server.

In the case where the database supports parallelization, the database driver could load balance across several database server instances and detect failures. Here are some products and projects that might interest you:

Oracle RAC

One commercial parallel relational database server implementation is Oracle Corporation's Oracle 10g Real Application Clusters (RAC). See http://www.oracle.com/database/rac_home.html for product information.

Sequoia: Open source JDBC replication and load balancing (formerly C-JDBC)

This interesting open source project has set out to make JDBC ...

Get Tomcat: The Definitive Guide, 2nd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.