Why Facebook Uses MySQL for Timeline




mysql facebook

A little-known fact about Facebook Timeline: It relies on MySQL, a database-management system that was originally designed to be used in small-scale applications on just one or a few machines — a far cry from the 800+ million users of the world’s largest social network. What gives?

In this report from Wired, Serkan Piantino, who will be in charge of Facebook’s New York engineering office, reveals that Facebook turned to MySQL to help address the memory needs of Timeline, since it works in a fundamentally different way from the news feed.

Since Timeline is more concerned about organizing data neatly than shooting out updates in real time, MySQL is well suited for the app. Although the data is aggregated in the same location as the data is kept (i.e. not over a network connection), that data is managed by MySQL, and not an alternative like NoSQL or Hadoop Hbase.

“A lot of people are surprised that for this shiny new thing for Facebook, we’re using MySQL,” Piantino told Wired. “We treat [MySQL] as a generic engine for data manipulation. We use it as a storage engine. And it’s really efficient.”

Although Piantino frames it as a choice, it could have been made out of necessity. Facebook is thought to rely heavily on MySQL, which is ideal for a small system since it’s open source and free. Perfect for an ambitious Harvard student starting a social network in his dorm room.

However, MySQL isn’t something a massive digital company would pick as its go-to database platform. Derrick Harris expertly lays out the larger issues of Facebook relying on MySQL in this article at GigaOm, where database guru Micheal Stonebreaker calls it a “fate worse than death.” However, after speaking with Facebook’s MySQL team, Harris subsequently said he “might have been wrong” (thanks to commenter Isaac Sukin for pointing this out).

Facebook is constantly working on improving its MySQL implementation, however, and even has a page dedicated to the issue. It’s quite active, and has over 74,000 members.

What do you think of Facebook’s use of MySQL, and with Timeline specifically? Is it a time bomb waiting to happen, or a savvy use of existing technology? Let us know in the comments.

More About: facebook timeline, MySQL, nosql

For more Dev & Design coverage:


This entry was posted in facebook timeline, MySQL, nosql and tagged , , , , , , , , , . Bookmark the permalink.