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
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.
ReplyDeleteThey 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
I've discussed this extensively with some sysops from Facebook in the past.
ReplyDeleteFacebook 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.
They use Apache Cassandra for some of their storage (document database), and heavy use of memcached to make it scale well.
ReplyDeleteAccording to Wikipedia's Hadoop page and the PoweredBy page on the Hadoop site, they use Hadoop. However, the text on the Hadoop page reads:
ReplyDeleteWe 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.
They use Casandra and MySQL, see here about Casandra http://www.facebook.com/note.php?note_id=24413138919
ReplyDeleteIf you are interested in what technologies Facebook uses, follow their engineering "blog".
ReplyDeletehttp://www.facebook.com/Engineering
There is lots of good stuff in there.
MySql
ReplyDeleteSource: http://www.datacenterknowledge.com/archives/2008/04/23/facebook-now-running-10000-web-servers/
They may have migrated since, but I doubt it.
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