« Can How Bees Solve their Load Balancing Problems Help Build More Scalable Websites? | Main | Mogulus Doesn't Own a Single Server and has $1.2 million in funding, 15,000 People Creating Channels »

Product: lbpool - Load Balancing JDBC Pool

From the website:

The lbpool project provides a load balancing JDBC driver for use with DB connection pools. It wraps a normal JDBC driver providing reconnect semantics in the event of additional hardware availability, partial system failure, or uneven load distribution. It also evenly distributes all new connections among slave DB servers in a given pool. Each time connect() is called it will attempt to use the best server with the least system load.

The biggest scalability issue with large applications that are mostly READ bound is the number of transactions per second that the disks in your cluster can handle. You can generally solve this in two ways.

1. Buy bigger and faster disks with expensive RAID controllers.
2. Buy CHEAP hardware on CHEAP disks but lots of machines.

We prefer the cheap hardware approach and lbpool allows you to do this.

Even if you *did* manage to use cheap hardware most load balancing hardware is expensive, requires a redundant balancer (if it were to fail), and seldom has native support for MySQL.

The lbpool driver addresses all these needs.

The original solution was designed for use within MySQL replication clusters. This generally involves a master server handling all writes with a series of slaves which handle all reads. In this situation we could have hundreds of slaves and lbpool would load balance queries among the boxes. If you need more read performance just buy more boxes.

If any of them fail it won't hurt your application because lbpool will simply block for a few seconds and move your queries over to a new production server.

In this post Kevin Burton of Spinn3r mentions they've been using this product to good effect for handling MySQL replication faults, balancing, and crashed servers.

Reader Comments (3)

Thanks for the link.

I've been trying to get MySQL to incorporate this into the NATIVE MySQL driver as it's a LOT better than the stock ReplicationDriver. To date they've haven't found the spare cycles to incorporate it :-/

November 29, 1990 | Unregistered CommenterKevin Burton

You can buy many small, fast disks with an inexpensive raid controller (compared to SAN's) like the Dell MB3000 where you could get some serious read speed from a RAID 10 set of 45 discs.

November 29, 1990 | Unregistered CommenterAnonymous

The lbpool project addressed with now blocked by user authencation.
I guess the project maybe move to,
ckeck it out, and update this post.


February 23, 2010 | Unregistered Commenternumber3

PostPost a New Comment

Enter your information below to add a new comment.
Author Email (optional):
Author URL (optional):
Some HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>