Pages

Sunday 26 February 2012

Apache Cassandra and Tornado -Rocking Facebook infrastructure

Here is a post about two rock-solid technologies of Facebook which are highly responsible for all the real-time activities.Rather then keeping the suspense within,here's the technologies:

Apache Cassandra

Apache is a well-known name in server domain for its rock-solid reliability and fully-customizable structure.Most of the large companies have a Apache web server by default.

But this variant of Apache,named Apache Cassandra is killer one.It is designed so that its main purpose is what real-time web apps and websites wants : stability and quick response.When you need scalability and high availability without compromising performance,this is the best choice. Cassandra's support for replicating across multiple servers(or group of servers) is best-in-class, providing lower latency for users of website (or apps) and the peace of mind of knowing that the user can survive regional outage,with no single point of failure .

It has a special  ColoumnFamily data model,which offers

    1. To save data as column indexes
    2. Log-style updates of data changed in server
    3. Rapid and strong built-in caching
    4. Strong support for materialized(less use of SQL) views(view means an editable-copy of table in database)
.

Tornado

Using a blocking socket, execution will wait (i.e. "block") until the full socket operation has taken place. So, you can process any results/responses in your code immediately after. These are also called synchronous sockets.

A non-blocking socket operation will allow execution to resume immediately and you can handle the server's response with a callback or event. These are called asynchronous sockets.

Why I am explaining this would be clear after reading below.

Tornado is a relatively simple, non-blocking web server framework written in Python. It is designed to handle thousands of simultaneous connections, making it ideal for real-time Web services.

The framework is distinct from most mainstream web server frameworks (and most Python frameworks) because it is non-blocking and very fast. Because it is non-blocking, it can handle thousands of simultaneous real-time connections, which means it is ideal for real-time web services like Facebook.It was mainly created to serve Friend Feed,which is another social sharing service which allows people know what their friends are finding on internet.By the way,Facebook has acquired Friend Feed in 2009.

Thereby Tornado is one of the main web server in Facebook's infrastructure.

2 comments:

  1. Well it's too informative post. Like it so much. Deal with millions of users is not an easy task but this technologies make it easier.!

    ReplyDelete
    Replies
    1. Thank you for your comment.I will keep posting such posts.

      Delete