Brad Fitzpatrick
Mark Smith
Track: Scaling and High Availability
Date: Tuesday, April 19
Time: 10:30am - 11:15am
Location: Ballroom F
TrackBack
LiveJournal.com is a fully dynamic community system and blogging platform with over five million accounts and growing.
Come learn about the evolution of LiveJournal's backend, from the early days when it ran on Fitzpatrick's personal server, to when he could barely afford two servers, to over a hundred in operation today.
Discover all the problems he came across along the way, helping you to avoid bottlenecks. Learn how Fitzpatrick identifies hot spots and goes about fixing them.
Fitzpatrick discusses the Perl modules and programming techniques used to manage all of the servers, including the DBI::Role module which lets LiveJournal modifying the weight of MySQL servers in
a pool an distribute connections automatically.
Everything in LiveJournal is generated on the fly, since nearly any item on the site generated by users can have arbitrary security restrictions placed on it, and each page is generated specifically for the remote user viewing it. Learn how and why they do this.
Fitzpatrick also discusses the open source 'memcached' server, a high-performance distributed in-memory object caching system, and how it can be used in complement with MySQL to get even better performance out of your dynamic web apps. Fitzpatrick details how to get best performance out of MyISAM, and when you should use InnoDB, and how LiveJournal uses both effectively.
Fitzpatrick also discusses the replication setup and how maintenance is easily performed on servers while maintaining high availability.
I'll discuss our experiences with using the filesystem vs. the database, and when we use each. Also learn about our distributed filesystem, MogileFS, which is built on MySQL.
I'd also like to briefly skim over issues such as effectively dealing with internationalization issues, web load balancing, automatic database schema upgrades from development installs to production, etc.
Download presentation file