Skip to main content

What database does Facebook use?


Does it use any of the standard ones like Oracle, DB2, SQL Server, or have something of their own?



Considering the type of data (text + images + videos) that they have to manage, it would be interesting to know how they deal with it.



Is this information publicly available? Any links would also be helpful.


Source: Tips4allCCNA FINAL EXAM

Comments

  1. It should be no surprise that an site as high-scale as Facebook uses a variety of data management technology. Each database product has its strengths, and Facebook needs all of them.

    They have also changed their data management from time to time, as they find solutions that meet their needs.

    According to Exploring the software behind Facebook, the world’s largest site (2010/6/18):


    MySQL
    Memcached
    Haystack for photo retrieval
    Cassandra
    Hadoop and Hive
    Scribe for high-speed distributed logging

    ReplyDelete
  2. I've discussed this extensively with some sysops from Facebook in the past.

    Facebook primarily uses MySQL for structured data storage. For instance, wall posts, user information, etc. are all stored in MySQL. They replicate this between their various data centers.

    For blob storage (photos, video, etc.), Facebook makes use of a custom solution that involves a CDN (fbcdn) externally and NFS internally.

    For a few means of document storage and write-heavy applications (such as inbox search), Cassandra is used. Contrary to popular belief, Cassandra is NOT the primary database at Facebook. In fact, it isn't anywhere close to being the primary database platform; it used for very specific scenarios where the NoSQL paradigm fits best.

    Hope this helps

    EDIT:

    I should also note that this is by no means the full extent of technologies that FB uses, but it does represent the vast majority of storage that they take advantage of.

    ReplyDelete
  3. They use Apache Cassandra for some of their storage (document database), and heavy use of memcached to make it scale well.

    ReplyDelete
  4. According to Wikipedia's Hadoop page and the PoweredBy page on the Hadoop site, they use Hadoop. However, the text on the Hadoop page reads:


    We use Hadoop to store copies of internal log and dimension data sources and use it as a source for reporting/analytics and machine learning.


    That makes me think that their user profiles are not stored in Hadoop.

    ReplyDelete
  5. They use Casandra and MySQL, see here about Casandra http://www.facebook.com/note.php?note_id=24413138919

    ReplyDelete
  6. If you are interested in what technologies Facebook uses, follow their engineering "blog".
    http://www.facebook.com/Engineering

    There is lots of good stuff in there.

    ReplyDelete
  7. MySql

    Source: http://www.datacenterknowledge.com/archives/2008/04/23/facebook-now-running-10000-web-servers/

    They may have migrated since, but I doubt it.

    ReplyDelete
  8. I'm fairly sure they used to use MySQL, however they now use some sort of NoSQL database for heavier transactions. The number of transactions Facebook has to handle is sometimes too much for a relational database. You see, relational databases must adhere to the principle of ACID. It is costly to maintain ACID on a large scale. NoSQL variants don't adhere to as strict of a set of rules as relational databases do.

    ReplyDelete

Post a Comment

Popular posts from this blog

[韓日関係] 首相含む大幅な内閣改造の可能性…早ければ来月10日ごろ=韓国

div not scrolling properly with slimScroll plugin

I am using the slimScroll plugin for jQuery by Piotr Rochala Which is a great plugin for nice scrollbars on most browsers but I am stuck because I am using it for a chat box and whenever the user appends new text to the boxit does scroll using the .scrollTop() method however the plugin's scrollbar doesnt scroll with it and when the user wants to look though the chat history it will start scrolling from near the top. I have made a quick demo of my situation http://jsfiddle.net/DY9CT/2/ Does anyone know how to solve this problem?

Why does this javascript based printing cause Safari to refresh the page?

The page I am working on has a javascript function executed to print parts of the page. For some reason, printing in Safari, causes the window to somehow update. I say somehow, because it does not really refresh as in reload the page, but rather it starts the "rendering" of the page from start, i.e. scroll to top, flash animations start from 0, and so forth. The effect is reproduced by this fiddle: http://jsfiddle.net/fYmnB/ Clicking the print button and finishing or cancelling a print in Safari causes the screen to "go white" for a sec, which in my real website manifests itself as something "like" a reload. While running print button with, let's say, Firefox, just opens and closes the print dialogue without affecting the fiddle page in any way. Is there something with my way of calling the browsers print method that causes this, or how can it be explained - and preferably, avoided? P.S.: On my real site the same occurs with Chrome. In the ex