Difference between revisions of "Database Load Balancing"

From LVSKB
Jump to: navigation, search
(C-JDBC: Flexible Database Clustering Middleware)
(MySQL Clusters)
Line 35: Line 35:
  
 
:''MySQL Cluster is a technology that enables clustering of in-memory databases in a shared-nothing system. The shared-nothing architecture allows the system to work with very inexpensive hardware, and without any specific requirements on hardware or software. It also does not have any single point of failure because each component has its own memory and disk.''
 
:''MySQL Cluster is a technology that enables clustering of in-memory databases in a shared-nothing system. The shared-nothing architecture allows the system to work with very inexpensive hardware, and without any specific requirements on hardware or software. It also does not have any single point of failure because each component has its own memory and disk.''
 +
 +
Emic Networks
 +
a long-time provider of clusters for MySQL. The code is released under
 +
the Apache Public License.
  
 
=== PostgreSQL Clusters ===
 
=== PostgreSQL Clusters ===

Revision as of 12:51, 12 November 2006

Introduction

Open Source Solutions

C-JDBC: Flexible Database Clustering Middleware

C-JDBC (Clustered JDBC) is a freely available, open source, flexible and efficient middleware for database clustering. C-JDBC presents a single virtual database to the application through the JDBC interface. It does not require any modification to JDBC-based applications. It works with any database engine that provides a JDBC driver, without modification to the database engine. The flexible architecture of C-JDBC supports large and complex database cluster architectures offering various performance, fault tolerance and availability.

See http://c-jdbc.objectweb.org/

Sequoia is the new version of the C-JDBC project under Apache license. The website is http://sequoia.continuent.org/HomePage.

SQL Relay

SQL Relay is a persistent database connection pooling, proxying and load balancing system for Unix and Linux. SQL Relay is ideal for:

  • speeding up database-driven web-based applications
  • enhancing the scalability of database-driven web-based applications
  • distributing access to replicated databases
  • throttling database access
  • accessing databases from unsupported platforms
  • migrating applications from one database to another

See http://sqlrelay.sourceforge.net/

PS: This text is copied from SQLrelay's home page.

MySQL Clusters

MySQL supports couple of different ways to increase database availability and scalability. Most commonly used way of increasing availability is replication. Replication, as its name indicates, copies data from one master server to slave(s) and it has been available since MySQL 3.23. Starting with MySQL 4.1 a new storage engine introduced called NDB and NDB stands for Network Data Base. Although most people thinks that replication is a form of clustering, in MySQL world, cluster is actually a set of NDB nodes.

NDB nodes uses memory to store data and keeps at least 2 copies of data on 2 seperate boxes. In essence, it is almost like Raid arrays (level 1 in this case) using memory instead of hard drives. Minimum requirement for a MySQL cluster is 3 boxes. 2 of these boxes store data in their memory and they're called Data Nodes. At least one box needed for SQL node, and it acts as a regular database server where applications are connecting to.

More info about MySQL clustering concepts can be found at :

MySQL Cluster is a technology that enables clustering of in-memory databases in a shared-nothing system. The shared-nothing architecture allows the system to work with very inexpensive hardware, and without any specific requirements on hardware or software. It also does not have any single point of failure because each component has its own memory and disk.

Emic Networks a long-time provider of clusters for MySQL. The code is released under the Apache Public License.

PostgreSQL Clusters

Commercial Solutions

Oracle Real Application Clusters

IBM DB2 Clusters

Microsoft SQL Server Clusters

LVS.png "Database Load Balancing" is an load balancing related stub. You can help LVSKB by expanding it