Handling database failover for Rails applications on FreeBSD

Posted by bianster on Stack Overflow See other posts from Stack Overflow or by bianster
Published on 2010-06-02T03:47:52Z Indexed on 2010/06/02 3:53 UTC
Read the original article Hit count: 467

Filed under:
|
|
|

I'm working on implementing database (Postgresql) failover for a Rails app that runs with Passenger/FreeBSD. Due to certain constraints regarding the server OS, it's necessary to continue using FreeBSD (as opposed to say, Ubuntu).

I'm finding it to be quite a challenge to have failover handled within the Rails application, by way of a customised database adapter due to the fact that this application will be load-balanced between several webservers, and the multiple Rails processes that Passenger spawned in each webserver.

I previously looked at setting up Pacemaker/Corosync to manage database server failover on a common IP but unfortunately I wasn't able to get past building the packages on FreeBSD. It does work rather well on Ubuntu 10.04 but I'm not likely to be able to use Ubuntu due to the OS constraints.

I'm considering a custom witness daemon that simply pings the primary DB server, and this witness daemon switches all the webservers to the standby DB server when the primary becomes uncontactable (permanently/temporarily), to avoid split-brain.

Though I would really like to know if there is a way to get Pacemaker(or something similar) to do the switch on FreeBSD.

© Stack Overflow or respective owner

Related posts about postgresql

Related posts about freebsd