![]() ![]() Scribe was a flexible logging system that Facebook used for a multitude of purposes internally. We’re even considering some uses for it here at SolarWinds ® Pingdom ®.įacebook abandoned Cassandra back in 2010 but the solution has been used at Instagram since 2012 replacing Redis. Other than Facebook, a number of other services use it, for example Digg. It’s one of the poster children for the NoSQL movement and has been made open source (it’s even become an Apache project). Cassandra (Instagram)Ĭassandra is a distributed storage system with no single point of failure. These pagelets can be retrieved in parallel, which is where the performance gain comes in, and it also gives users a site that works even if some part of it would be deactivated or broken. Facebook uses it to serve each web page in sections (called “pagelets”) for optimal performance.įor example, the chat window is retrieved separately, the news feed is retrieved separately, and so on. BigPipeīigPipe is a dynamic web page serving system that Facebook has developed. As we mentioned previously, Facebook users upload around 147,000 photos every minute which makes it 2,450 photos per second. It has a ton of work to do there are more than 20 billion uploaded photos on Facebook, and each one is saved in four different resolutions, resulting in more than 80 billion photos.Īnd it’s not just about being able to handle billions of photos web performance is critical. Haystack is Facebook’s high-performance photo storage/retrieval system (strictly speaking, Haystack is an object store, so it doesn’t necessarily have to store photos). The project was discontinued back in 2013 and then replaced by HHVM (HipHop Virtual Machine). This has allowed Facebook to get much more out of its web servers since Facebook relies heavily on PHP to serve content.Ī small team of engineers (initially just three of them) at Facebook spent 18 months developing HipHop, and it was used for a few years. HipHop converts PHP into C++ code which can then be compiled for better performance. ![]() PHP, being a scripting language, is relatively slow when compared to code that runs natively on a server. HipHop for PHP and HipHop Virtual Machine (HHVM) It is likely the world’s largest Memcached installation. Through the years, Facebook has made a ton of optimizations to Memcached and the surrounding software (like optimizing the network stack).įacebook runs thousands of Memcached servers with tens of terabytes of cached data at any one point in time. It’s a distributed memory caching system which Facebook (and a ton of other sites) use as a caching layer between the web servers and MySQL servers (since database access is relatively slow). Memcached is by now one of the most famous pieces of software on the internet. Let’s present (some of) the software that Facebook uses to provide us all with the world’s largest social network site. Then there are the custom-written systems, like Haystack, a highly scalable object store used to serve Facebook’s immense amount of photos, or Scribe, a logging system that can operate at Facebook’s scale (which is far from trivial).īut enough of that. Facebook uses MySQL, but primarily as a key-value persistent storage, moving joins and logic onto the web servers since optimizations are easier to perform there (on the “other side” of the Memcached layer).Facebook uses Linux, but has optimized it for its own purposes (especially in terms of network throughput).Facebook still uses PHP, but it has built a compiler for it so it can be turned into native code on its web servers, thus boosting performance.In some ways Facebook is still a LAMP site (kind of) which refers to services using Linux, Apache, MySQL, and PHP, but it has had to change and extend its operation to incorporate a lot of other elements and services, and modify the approach to existing ones. In 2018, Facebook had 15 million square feet of data center space among its 15 campuses around the globe that host millions of serversĬheck out this blog post to learn more stats on the most used social media platforms.Facebook users generate 8 billion video views per day on average, 20% of which are live broadcast.Every 60 seconds: 317 thousand status updates are added, 147 thousand photos are uploaded, and 54 thousand links are shared on Facebook.Facebook had 2.3 billion users as of Q4 2018 (the service is available in over 100 languages).Facebook’s Scaling Challengeīefore we get into the details, here are a few factoids to give you an idea of the scaling challenge that Facebook has to deal with: This article takes a look at some of the software and techniques they use to accomplish that. The challenge for Facebook’s engineers has been to keep the site up and running smoothly in spite of handling over two billion active users. At the scale that Facebook operates, several traditional approaches to serving web content break down or simply aren’t practical. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |