As part of building Tailrank we need to build a high availability and high performance MySQL cluster capable of running on cheap commodity hardware and in high performance environments. Unfortunately MySQL really falls down in a lot of areas especially when you make it do real work.
Luckily this is Open Source which means we can fix things.
We’ve developed a load balanced JDBC connection pool (named lbpool) meant to be used in production environments:
Right now we’re at beta1 which means you should not deploy this in production environments without testing. That said its being used on Tailrank.com right now and is very rock solid. We’ve had it in production for 60 days now.
Here’s a brief intro (but you should def read the full site).
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.
- Buy bigger and faster disks with expensive RAID controllers.
- 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.












No Comments
Leave a Comment
trackback address