ID:181114
 
BYOND seems like a good place to pose questions like these, since I don't have too many tech savvy friends to turn to.


I'm working on a web service and I want to make sure my design allows for rapid expansion without scaleability issues or the need to rewrite the entire system to work on a cluster of servers.

Rapid expansion meaning jumping from handling thousands to ten thousands of unique visitors a day, to millions of unique visitors per hour.

I'd imagine you would need to have 3-5 servers to act solely as primary databases, then double that to serve as mirrors that only retrieve data and process requests.

Are there any considerations that should be made in regards to database software? Can MySQL handle a job like this?
PHP is not as efficient as something like C, is it worth writing the server side code in a lower level programming language?
I don't see why it wouldn't be worth making in PHP.
As for MySQL, no. Not for large-scale applications. I would use something that scales with your application.
I also read an article about how facebook uses MySQL, and how they suffer from it now, but I can't seem to find it.
This may be of interest to you: http://developers.facebook.com/blog/post/358/
In response to Murrawhip
Murrawhip wrote:
This may be of interest to you: http://developers.facebook.com/blog/post/358/

Yes very. =]

I found a site that lists all of the different technologies Facebook has created to make itself possible, shortly after making this post.

It's crazy how many things they've made, most of which they've made open source.

Lots and lots of research to do.. Guh...
The use of database actually varies on the level of security you want your profile to gain. In theory, DBMS offer the same thing in terms of database management and it is just up to the security and the repackaging means that differ. In this case, a microsoft access would not be expected to be used in a large scale system as there is a limit over the amount of clients who can access the database at the same time. I suggest that you look at Oracle for a more complex and higher end technology for your system.
Excuse my crawling and necro, but I work for a large website company currently. We use PHP for the front-end and Java for the backend connecting to couchdb, and handle about 200,000 requests an hour on peak.

As a rule, PHP isn't too slow if you use it properly, and developing a website in C is not worth the development time it takes to make it scale. The key to handling traffic fluctuations isn't making the website faster on one server, it's being able to dynamically add more servers.