I'm designing a new Railsapplication that needs to offer high
availability. With Rails, we are already getting scalability out of the
We are considering using a Kemp LM1500 hardware load balancer to manage
requests to our Rails application servers. There will be a separate
server running MySQL 5.0 and all Rails application servers will be
accessing this. I've been considering a couple of different alternatives
for MySQL fault tolerance. MySQL clustering seems too complicated and
still not 100% bulletproof. The other alternative is to create a MySQL
Warm Standby using frequent transaction log backups and a monitor
to detect when to fail over.
Has anyone done something like this before and if so, can you offer any
We're using their NDB cluster right now. It works pretty well, but has some big caveats in terms of overall DB size, row size, limitations in numbers of inserts/updates per transaction, etc...
I think if Rails supported the concept of a write_db and a read_db we would have simply gone with a single master with multiple slaves, but it doesn't so we didn't.
If one server is enough for your needs, I would simply setup another server as a slave, then use whatever is necessary to cut over when the master fails.