views:

25

answers:

1

I have several forum servers (what they are is irrelevant) which stores posts from users and I want to be able to partition requests among these servers. I'm currently leaning towards partitioning them by geographic location. To improve the locality of data, users will be separated into regions e.g. North America, South America and so on.

Is there any design pattern on how to implement the function that maps the partioning property to the server, so that this piece of code has high availability and would not become a single point of failure ?

f( Region ) -> Server IP
+1  A: 

If you listen to Matt Mullenweg (founder of Wordpress), interviewed by Jason Calacanis in TWiST #26, the only recipe for high-availability that worked was "horizontal expansion" (i.e. "lots and lots of data centers per continent", with a difference between those dedicated for small blogs (low traffic) with less replication across continents, and some dedicated for high-traffic blogs).

So no magic solution except than saying: hardware bing cheaper, have as many data center than you can.

VonC