Scaling MySQL at YouTube
In mid 2006, YouTube served approximately 100 million videos in a single day. To maintain a website of that scale, one would imagine YouTube has hundreds of DBAs. But in fact, there are just three people that make it all work. Paul Tuckfield, the MySQL DBA at YouTube shares horror stories about scalability at YouTube and how he coped with them to keep the show going everyday, while learning important lessons along the way.
YouTube uses MySQL as the back-end. When Paul joined YouTube, he had 15 years of experience solving database scalability problems and administering computer networks. However, he was completely new to MySQL. Within weeks, the set of challenges he faced about scaling MySQL taught him so much more than one could learn over years. He’s all excited about sharing his insights.
According to him, the three important reasons for YouTube’s scalability are Python, Memcache and MySQL replication, the last having the most impact. Most people think that the answer to scalability is in upgrading hardware and CPU power. Adding CPUs doesn’t work on its own; wisdom is in getting the maximum amount of RAM for the CPU and then fine tuning. He talks about replication in detail sharing his experience in dealing with problems such as time lags in replication between master and slave disks, RAID caching, OS level caching on Linux and cache at the database.