MySQL Licenses lbpool

MySQL AB has licensed lbpool – a load balancing and fault tolerant JDBC driver written in Java that I developed six months ago for use within Tailrank.

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.

I originally designed lbpool based on the difficulty I had at managing MySQL clusters in a former life. Basically, the more clients you have and the more slave servers you have the greater the chance that something will crash and end up ruining your day.

What’s really exciting is that Mark Matthews, who wrote and maintains the JDBC driver, wants to incorporate this technology across the whole connector suite so that other languages benefit (besides just Java).

I’ve been really happy with the way this turned out. We use lbpool in a cluster of eight DB servers across twelve clients. Our DB servers often fall behind replication or have an hardware problem but the entire cluster remains operational.

I’m going to try to fit in a talk about this at MySQL camp if I get some time.

%d bloggers like this: