[Catalyst] Clustering catalyst apps

Peter Edwards peterdragon at users.sourceforge.net
Mon May 8 14:26:03 CEST 2006

Set up the DNS for your application to map to multiple IP addresses, one
each for however many web server machines you need. Run your perl apps on
Have a single database server machine with RAID mirrored disks. Have your
perl apps connect to that.
Regularly backup your database across the net to a disaster recovery (DR)
machine at a different physical location. With mysql you can do a hotcopy
then rsync the files across. Set up the DR server so it can also be a web

Disk - switch to mirror until you can replace the disk
Database host - switch your web apps to the DR server for database access;
have an application strategy on what to do with delayed transactions that
happened since the last database synchronisation [1]
Network/Datacentre - point DNS to DR server and use its web server (poor
performance, but at least limited access is available)
Assuming you've got your servers in a data centre with triple connections to
the Internet backbone, this last scenario is very unlikely.

A lot depends on how many users, how critical up-time is, what the cost
equation is between having an alternative site and hardware versus the
opportunity cost of lost sales and damaged reputation. The above works well
for 10-150 concurrent users. For more you could consider using the
clustering and failover features that come with some databases.

[1] For example, if you manage to recover the transaction log from the main
db server you can merge the records in later provided your app hasn't
allocated overlapping unique ids to its record keys.

Regards, Peter

-----Original Message-----
From: catalyst-bounces at lists.rawmode.org
[mailto:catalyst-bounces at lists.rawmode.org] On Behalf Of Gert Burger
Sent: 08 May 2006 12:41
To: The elegant MVC web framework
Subject: [Catalyst] Clustering catalyst apps


I was wondering a few days ago how one would create a cluster of
catalyst webapps?

Some of my early thoughts including just having multiple machines
running apache with a load balancer.

But you then still have a single point of failure, at the load balancer.

Another problem is, if you use some sort of database to store your
sessions etc then you have another point of failure.

Therefore, how can a average small company improve their
(Catalyst)webapps reliability without breaking the budget?

Gert Burger

Catalyst mailing list
Catalyst at lists.rawmode.org

More information about the Catalyst mailing list