Last week, Twitter launched a replacement for its Ruby-on-Rails front-end: a Java server named Blender. Blender has produced a three-fold drop in search latencies. Performance aside, it will also allow Twitter to rapidly iterate on search features in the coming months.
Twitter search serves over 1 billion queries per day. The week before Blender was deployed, the tsunami and resulting earthquake in Japan contributed to a significant increase in query load and a related spike in search latencies. Following the launch of Blender, Twitter's 95th percentile latencies were reduced from 800ms to 250ms and CPU load on the company's front-end servers was cut in half. As a result, Twitter now has the capacity to serve 10 times the number of requests per machine, significantly reducing front-end service costs.
This all began in the spring of 2010, when Twitter's search team started to rewrite the search engine to deal with the growing traffic, improve its end-user latency and availability, and enable rapid development of new search features. Now the company is finally starting to enjoy the fruits of its labor.
The next step for Twitter is to eliminate Ruby-on-Rails entirely, connecting its users directly to Blender and potentially reducing latencies even further. To learn more about Twitter's former Ruby-on-Rails front-end servers compared to Blender, a Thrift and HTTP service built on Netty, check out the blog post titled "Twitter Search is now 3x faster."