Friendster is one of the largest social network sites on the web. it emphasizes genuine friendships and the discovery of new people through friends.
Site: http://www.friendster.com/
Information Sources
Friendster - Scaling for 1 Billion Queries per day
Platform
MySQL
Perl
PHP
Linux
Apache
What's Inside?
Dual x86-64 AMD Opterons with 8 GB of RAM
Faster disk (SAN)
Optimized indexes
Traditional 3-tier architecture with hardware load balancer in front of the databases
Clusters based on types: ad, app, photo, monitoring, DNS, gallery search DB, profile DB, user infor DB, IM status cache, message DB, testimonial DB, friend DB, graph servers, gallery search, object cache.
Lessons Learned
No persistent database connections.
Removed all sorts.
Optimized indexes
Don’t go after the biggest problems first
Optimize without downtime
Split load
Moved sorting query types into the application and added LIMITS.
Reduced ranges
Range on primary key
Benchmark -> Make Change -> Benchmark -> Make Change (Cycle of Improvement)
Stabilize: always have a plan to rollback
Work with a team
Assess: Define the issues
A key design goal for the new system was to move away from maintaining session state toward a stateless architecture that would clean up after each request
Rather than buy big, centralized boxes, [our philosophy] was about buying a lot of thin, cheap boxes. If one fails, you roll over to another box.
Reader Comments (3)
What are the sources of your information? A lot of this information could be easily speculated.
I think this is the source:
http://conferences.oreillynet.com/presentations/mysql05/pattishall_dathan.pdf
It's from 2005, otherwise good stuff.
I think friendster use squid as reverse proxy.
here is the picture :
http://wildavy.files.wordpress.com/2008/05/friendster_squid.png>http://wildavy.files.wordpress.com/2008/05/friendster_squid.png
i've got that message before the maintenance pages shown.