Currently, Twitter has over 140 million active users, who issue about 400 million Twitter messages every day, all of which have to be stored, indexed and annotated with metadata. The company uses a modified version of MySQL 5.5 to handle this load. The company has six full time database administrators, to maintain "a few thousand database servers," said Jeremy Cole, the chief database architect for Twitter. The company also employs one full-time MySQL developer.
Cole spoke to why Twitter uses MySQL even when NoSQL databases would seemingly be better suited for such a heavy workload. "It comes down to a few key points," Cole said.
One is basic familiarity. "We have very extensive at-scale knowledge. We know how MySQL works internally. We know how to upgrade it, we know how to fix bugs and push out new releases," Cole said.
The company also appreciates MySQL's performance. With a bit of tuning, most of Twitter's MySQL servers are running "tens of thousands of queries per second," Cole said. The latency of the queries must be in the level of micro-seconds. Cole said that he will get pitches from NoSQL vendors making claims that NoSQL is faster than a relational SQL database. "Often that is not true," Cole said.
Data safety is another crucial component for Twitter. Twitter's internal database engine, InnoDB "does not lose our data," Cole said. Another advantage includes a strong ecosystem, including support and development from companies like Oracle and Percona.
While the company uses MySQL for many things, it also uses other data storage technologies for those cases where MySQL won't fit. For instance, the company developed a sharding and replication software, called Gizzard, that runs on top of MySQL. "I prefer to treat MySQL as a building block -- use it as a really strong core of features that we understand, and build solutions on top of that core," Cole said.
The online gaming company Playful Play was another customer that testified about its success of high-volume MySQL usage. This Mexico-based online game company recently found itself with a huge hit on its hands. The company's "La Vecindad de El Chavo," based on the popular long-running Mexican comedy series "El Chavo," has attracted over 3 million users since its launch in March, a number that is growing by 30,000 subscribers daily. "We had 100,000 in the first day and we got very scared. We didn't know what we had on our hands," said Ricardo Rocha, Playful Play CEO.
The company initially used the free version of MySQL Cluster, but when traffic suddenly spiked so that their need for servers exceeded Oracle's free licensing, the company contracted with Oracle for support. In fact the growth of traffic was so sudden that when the company experienced performance issues and Oracle flew support personnel to the company's headquarters before the support contract was actually signed.