Version 2.10
Copyright © 2002, 2003, 2004, 2005, 2006 French National Institute For Research In Computer Science And Control (INRIA), Continuent
Java, and all Java-based trademarks are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries.
Table of Contents
Sequoia is a database cluster middleware that allows any Java™ application (standalone application, servlet or EJB™ container, ...) to transparently access a cluster of databases through JDBC™. You do not have to modify client applications, application servers or database server software. You just have to ensure that all database accesses are performed through Sequoia.
Sequoia is a free, open source project that is the continuation of the C-JDBC project hosted by the ObjectWeb Consortium. Sequoia is licensed under an Apache v2 license is licensed whereas C-JDBC is available under the GNU Lesser General Public License (LGPL).
Sequoia also provides driver for non-Java applications. These developments are hosted in the Carob project. An Eclipse plug-in for Sequoia is also available in the Oak project.
In order to use Sequoia, you will need:
a client application that accesses a database through JDBC,
a JDK™ 1.4 (or greater) compliant Java Virtual Machine™ (JVM)[1],
a database with a JDBC driver (type 1, 2, 3 or 4) or an ODBC driver used with the JDBC-ODBC bridge.
a network supporting TCP/IP communications between your cluster nodes.
![]() | Note |
---|---|
If your client application does not use JDBC, you can use the C++ API or the ODBC driver provided by the Carob project . |
You have a Java application or a Java-based application server that accesses one or several databases. The database tier becomes the bottleneck of your application or it is a single point of failure or both. Sequoia can help you resolve these problems by providing:
performance scalability by adding database nodes and balancing the load among these nodes.
high availability of the database tier, i.e. Sequoia tolerates database crashes and offers transparent failover using database replication techniques.
improved performance with fine grain query caching and transparent connection pooling.
SQL traffic logging for performance monitoring and analysis.
support for clusters of heterogeneous database engines.
Sequoia provides a flexible architecture that allows you to achieve scalability, high availability and failover with your database tier. Sequoia implements the concept of RAIDb: Redundant Array of Inexpensive Databases (see Section 9, “RAIDb Basics”). The database is distributed and replicated among several nodes and Sequoia load balances the queries between these nodes.
Sequoia provides a generic JDBC driver to be used by the clients (see Section 5, “Sequoia Driver”). This driver forwards the SQL requests to the Sequoia controller (see Section 7, “Sequoia controller”) that balances them on a cluster of databases (reads are load balanced and writes are broadcasted). Sequoia can be used with any RDBMS (Relational DataBase Management System) providing a JDBC driver, that is to say almost all existing open source and commercial databases. Figure 1, “Sequoia principle” gives an overview of the Sequoia principle.
Sequoia allows to build any cluster configuration including mixing database engines from different vendors. The main features provided by Sequoia are performance scalability, fault tolerance and high availability. Additional features such as monitoring, logging, SQL requests caching are provided as well.
The architecture is widely open to allow anyone to plug custom requests schedulers, load balancers, connection managers, caching policies, ...
From a software point of view, Sequoia is an open-source software licensed under Apache v2 License which means that it is free of charge for any usage (personal or commercial). If you are using commercial RDBMS (such as Oracle, DB2, ...), you will have to buy extra licenses for the nodes where you install replicas of the database. But you can possibly use open-source databases to host replicas of your main database.
You need to buy extra machines if you want more performance and more fault tolerance. Sequoia has been designed to work with standard off-the-shelf workstations because it primarily targets low cost open-source solutions but it can work as well with large SMP machines. A standard Ethernet network is sufficient to achieve good performance.
You do not have to change anything to your application or your database.
You only have to update the JDBC driver configuration used by your application (usually it is just a configuration file update) and to setup a Sequoia configuration file (see Section 10, “Virtual database configuration”).