Facebook is one of the most popular and most visited website in the world. More than 1 billion people access Facebook across different platforms like web and devices each and every day.
With such a huge user base Facebook has to handle tonnes of data every minute.In order to handle such a huge amount of data, engineers at Facebook need to deal with many challenges to keep the site up and running.
Here is what Facebook looses if it gets shut down for a minute!
- For every 60 seconds nearly 2.46 million posts are being shared.
- 7 Million statuses are being updated.
- 400 GB of data is being uploaded to Facebook servers.
- 300,000 users are logged in and nearly 450 new accounts were being registered.
- Discussing about the revenue, Facebook earns nearly 25,000$ per minute.
At the scale that Facebook operates, a lot of traditional approaches to serving web content break down or simply give up.
Hence Facebook has to rely on several software technologies to play with huge piles of data. Even though Facebook is a technology giant, it depends on Open Source technology. The core of Facebook is built upon Open Source.
Facebook initially started as a LAMP (Linux, Apache, MySQL and PHP) site. But it has had to change and extend its operations to incorporate a lot of features and services.
Yes, you heard it right. Facebook still uses PHP, but it has built its own compiler to extend its functionality on large scale. It also uses an optimized version of Linux for its own purpose. It uses MySQL database for primary database functions. But it has developed its own database technologies, which you can get through in the further article, to store and organize user data like photos and video.
These are the basic technologies that support Facebook. Let’s end up with these basic technologies and move on to learn about underlying Open Source technologies that keeps moving Facebook smoothly and made it as the world’s largest Social Network. Let’s get started with the list.
MEMCACHED is a distributed memory caching system and is one of the best Open Source Software powering many sites over Internet. Facebook uses it as a caching layer between the web servers and MySQL servers. Facebook has customized MEMCACHED for its own operations. It runs thousands of MEMCACHED servers with with tens of TB of cached data.
PHP, being a scripting language, is relatively slow when compared to code that runs natively on a server. To overcome it Facebook developed Hip-Hop to convert PHP into C++ code for better performance. Hip-Hop for PHP isn’t technically a compiler itself, rather it is a source code transformer.
With Hip-Hop, Facebook reduced the CPU usage on their web servers by 50%. Feeling that the web can benefit from Hip-Hop, it is made Open Source.
Haystack is Facebook’s high performance photo storage and retrieval system. As of now, nearly 300 million photos are uploaded to facebook per day. Also for each uploaded photo, Facebook generates and stores four images of different resolutions. At the end of the day it will sum up to billions. Haystack comes handy at this very point, it acts as an object store serving photos by lightning fast.
It is a distributed storage system with no single point of failure. It is the right choice when you need scalability and high availability without compromising on performance. Facebook uses Cassandra for its Inbox search.
Cassandra is maintained under Apache project and is Open Source.
Also read : Facebook drones to beam Internet
Hadoop is an Open Source map-reduce implementation that makes it possible to perform calculations on huge amount of data. The Social Networking site uses Hadoop for data analysis.
Apart from Facebook several leading Technology companies like Yahoo, Twitter use Hadoop to harness and analyze user data. It is also an Open Source project under Apache Foundation.
Hive is from the house of Facebook, which makes it to use SQL queries against Hadoop, making it simpler for non programmers to use.
Facebook uses several programming languages to implement its services and features. It use PHP for front end, Erlang for chat, Java and C++ to implement some services. Thrift is a cross language framework that binds all these languages together and facilitates them to talk to each other. It makes it simpler for cross language development at Facebook.
Apart from these, Facebook uses a system called as Gatekeeper that lets them run different code for different sets of users. This Gatekeeper system lets Facebook to gradually release new features and perform testing of several new products.
That’s it, the list goes on with several pages if we keep discussing. We intended to provide you with the information on core Open Source software powering the Social Networking giant.
Also read : Why Facebook is leading Social Network today
Are you impressed with these technologies powering the Facebook? Even you can use them in your own projects if you are developer. Since these are Open Source they are Free to use.
Here is a tidbit to you!
We at CuriousPost loves Open source and use them to update you with the latest and interesting information. The world fell in love with Open Source, so as we.
Sharing is caring.