Facebook Databases

Download Report

Transcript Facebook Databases

What makes Facebook do what it does?
By Gavin Mais
Facebook is a social networking website that
operates and owned by Facebook, Inc.
Facebook was founded by Mark
Zuckerberg
Types of Databases
Facebook Uses:
 Memcached
 HipHop for PHP
 Haystack
 BigPipe
 Cassandra
 Scribe
 Hadoop and Hive
 Thrift
 Varnish

Memcached

 Memcached is a distributed memory caching system
which Facebook uses as a caching layer between the
web servers and MySQL servers.
 Facebook runs thousands of Memcached servers
with tens of terabytes of cached data at any one point
in time.
HipHop for PHP

 PHP which is another term for Hypertext
Preprocessor, a scripting language is slow when it
comes to codes that runs on a basic server.
 HipHop converts PHP into C++ code which then
helps for better performance. This allows Facebook
to get much more out of its web servers.
Haystack

 Haystack is Facebook’s high-performance photo
storage/retrieval system. Haystack is an object store,
Facebook serves around 1.2 million photos per
second.
BigPipe

 BigPipe is a dynamic web page serving system
Facebook has developed. They use it to serve each
web page in sections for the best performance.
Cassandra

 Cassandra is a distributed storage system with no
single point of failure. Facebook uses it for its inbox
search, it is one of the younger ones for the NoSQL
movement.
Scribe

 Scribe is a flexible logging system that Facebook uses
for a large amount of purposes internally. It is made
for handling logging at a large scale for Facebook.
Hadoop and Hive

 Hadoop is an open source map- reduce execution
that makes it possible to do calculations on a massive
amount of data. Facebook uses this for data analysis.
 Hive came from within Facebook which makes it
possible to use SQL queries against Hadoop.
Thrift

 Thrift is an internally developed cross-language
framework that ties all different languages together
making them able to talk to each other. For example
PHP, Erlang, Java and C++.
Varnish

 Varnish is an HTTP accelerator which acts as a load
balancer and also a cache content which can then be
served fast. Facebook uses it to serve photos and
profile pictures, handling billions of requests
everyday.
Data Center Database

Work Cited




Pingdom (2010). Exploring the software behind Facebook, the world’s largest site .
Retrieved May 9, 2012. from http://royal.pingdom.com/2010/06/18/the-softwarebehind-facebook/
Wills, D., & Reeves, S. (2009). Facebook as a political weapon: Information in social
networks. British Politics, 4(2), 265-281. doi:10.1057/bp.2009.3
“Data Center Databases” http://www.youtube.com/watch?v=-DRxqHrPrFw