Facebook is built using• Web Servers ( Running Hip-Hop PHP )• Services ( Search, Ads )• Memcached & MySQL• Immense amounts of glue
Write Strategy• Writes take place centrally in California• 3.5 Million Changed Rows per Second ( Peak )• 2010: 1800 DB Servers• horizontal scaling approach not disclosed• consistency is important ( avoiding „unhappy users“ )
Glue• Massively distributed architecture• Glue keeping it together• Many systems built in-house to meet giiaaanoourmus requirements
Haystack• Photos• Handles everything from HTTP to storage• Aimed at minimizing IO-Operations• Append-Only!
Memcached• Placed between MySQL and Web Tier• Stores only „plain data“, no joins or other complicated stuﬀ• Faster if Web Server works on data
BigPipe• Assembles the output pages• everything that is needed retrieved in parallel• Fault tolerant, will work even if parts of a page are not available
Live Profiling• Facebook monitors their life systems continously at a PHP-Method level ( using XHProf ).
Graceful Degradation• High awareness ( Monitoring ) of perfomance problems• Features can be disabled ( very ne-grained ) to keep the core features running smoothly
Keeping it running• New features are launched ,dark‘, without visible elements, to stress test the backend with real load• Incremental roll-outs decrease the impact of bug or malfunction
Open Source• Most parts are open source• Either used or created and then os‘d
Big Bang • On September 23, 2010, Facebook was down for most users for about 3 hours • A wrongly identi ed ,invalid‘ cache value lead to requests hammering the DB tier • A system designed to prevent failures created one! • Only way to recover was to completely shut down access to the DB - downtimehttps://www.facebook.com/note.php?note_id=431441338919&id=9445547199&ref=mf ( great comments, too )