Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I am about to launch a social network that will contain media, blogs, messaging, profiles... etc. The mySQL server will be particularly burden by ajax calls to the db, media bandwidth, and ffmpeg conversions (photo, video, and audio).

So, how do I set up my storage? As far as I have gathered, I should store the database, which is rather vast and complex, on local RAID discs. Then, how should I store all the media for my users? Will NAS kill my site's speed, or does that only matter for the db and anything being queried? Thanks.

share|improve this question

migrated from stackoverflow.com Aug 27 '09 at 14:17

This question came from our site for professional and enthusiast programmers.

4 Answers 4

Probably the best answer I can give you is to get real personal help from someone who knows technology and partner with them to launch your site. A few paragraphs for free on this or any other site will not give you enough information. If you are just gathering that you need RAID for your DB you are years behind what it will take to successfully implement this system. You have way to much to learn to even come close to explaining here...

"MySQL server burdened by ffmpeg conversions"...seriously?

share|improve this answer
    
+1 Best advice = get proper advice. Far too many variables. –  John Gardeniers Aug 29 '09 at 6:40

At first I'd store the media just on a local disk, and later, move it to a media service like s3 or similar.

share|improve this answer

If you are only launching, keeping it simple is the best option unless you expect a massive uptake in users.

Make sure all the main urls for images/videos etc are all kept in a config. That way if the load goes up, you can easily drop in another server/s3/CDN and change the urls rapidly.

If the CPU load is high from data conversions, firstly throw MySQL off on its own box. After that you need to start separating the conversing to another box.

Lastly, look at memcache which allows storing database stuff in memory. Can bring HUGE performance gains if used right.

share|improve this answer

Use a CDN.

The cost is minimal if you don't get the traffic spike you were expecting. The cost is reasonable considering the speed you can deploy it. Once in place you can bring it back in-house using reverse caching. Since you don't know (media conversions on the database?) you'll be able to test new scenarios, reboot the server, swap out servers, etc. while still maintaining a "presence" to users. The front page should always serve quickly no matter what else is running or down in your system(s).

Find someone with a similar web app and higher load and have them consult. A single day from someone who's already been there will teach you more than months asking questions on-line.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.