A single memcached instance⟶A globally distributed, multi-region memcache layer
Mark Zuckerberg downloaded memcached and installed it on Facebook's Apache web servers in August 2005 to stop page loads from crawling. By 2013, that same lineage of cache served billions of requests per second.
A social graph doesn't shard like a phone book — Facebook's cache had to scale around that fact, not away from it.
One memcached instance, downloaded off the internet
Facebook started using memcached in August 2005, when Mark Zuckerberg downloaded it from the internet and installed it on the company’s Apache web servers. At the time, page loads were slowing as database queries on every page grew larger and more numerous — providing a fast, “snappy” experience had always mattered to Facebook, and memcached, in the company’s words, “came to the rescue.”
AFTER
Billions of requests a second, on the first social network past a billion users
By 2013, Facebook’s cache infrastructure serves billions of requests per second and, in the company’s framing, “enables us to keep moving fast as we grow.” Facebook says it “wasn’t the first social network on the Internet, but it is the first one that successfully scaled to more than a billion users” — and credits its cache infrastructure as having “played a significant role in making this happen.”
THE BRIDGE
The scaling work, published rather than narrated
This post doesn’t walk through the specific engineering that closed the gap between one memcached instance and a globally distributed cache — because it isn’t meant to. It’s the announcement of a peer-reviewed paper, not the paper itself. What it commits to, in the company’s own words, is that “a tremendous amount of effort has gone into scaling our cache infrastructure to handle our extremely high request rates and ever-changing products, and memcache is a major piece of this.” That work was written up by Facebook’s memcache team and published in the 10th USENIX NSDI 2013 proceedings.
WHAT IT COST
An everyday challenge, not a closed incident
Facebook frames its three scaling challenges — graph interconnectedness, popularity-driven fan-out, and unpredictable product-driven load — in the present tense, as things the team faces “every day,” not problems that were solved once and closed out. The honest read of this post is that the cache team’s work is continuous: the same three pressures that motivated the original 2005 install were still active in 2013, just at a scale several orders of magnitude larger.
The hardest part of scaling a cache for a social graph isn’t the request volume — it’s that the data being cached is interconnected in ways that resist being split apart at all.
Nearly a decade later, Meta's own follow-up names this same cache lineage — TAO and Memcache — and admits scale alone never fixed its consistency bugs.
A plain-language, AI-drafted and human-edited retelling of the article published on engineering.fb.com, reorganized and explained in our own structure and words, with original analysis in the editor's note above. The facts, numbers, and decisions belong to the original author and are not altered. For the full depth, read the source.