2010-01-06 128 views
1

理想情況下,像Facebook這樣的應用程序會將其「好友」數據存儲在哪裏? 在數據庫表中?在一個XML文件?社交網絡後臺架構

+3

很確定Facebook的規模不會使用單個數據庫,更不用說一張表來存儲更少的xml文件。 – 2010-01-06 16:37:21

+0

這非常接近http://stackoverflow.com/questions/1009025/facebook-database-design – NotMe 2010-01-06 16:42:38

回答

5

Facebooks engineering page

「我們已經是全球第二大流量PHP站點(雅虎是排名第一),並且是任何地方最大的MySQL安裝之一,運行着數千個數據庫。」

「我們已經建立了一個輕量級的,但強大的多語言RPC框架,使我們能夠無縫,輕鬆地綁在一起,用任何語言編寫的子系統,在任何平臺上運行。Facebook正在建於PHP,C++ ,Perl,Python,Erlang,Java甚至是一點點的ML,並且它們一起工作 *我們是memcached世界上最大的用戶,一個開源的緩存系統,最初由LiveJournal開發,我們已經做出瞭如此多的可伸縮性改進和性能升級,我們將成爲下一個主要版本的主要貢獻者。 *我們創建了一個定製的搜索引擎,每天提供數百萬次查詢,完全分佈式和全面的y內存,實時更新。「

0

當然不在XML文件中。

是的,在一個數據庫中,在一個或幾個表中。而對於Facebook的精確例子,在幾臺服務器上。

1

很可能它應該包含一些其他機制。作爲一個例子,搜索引擎不會將其索引保存爲數據庫或XML文件。爲了獲得最大性能,通常他們保留一些樹(二進制搜索樹或更復雜的樹)並以性能有效的方式將它們存儲在磁盤上。所以我想這樣的機制。

2

「朋友」的數據是在圖形數據庫很好的描述。 Neo4j就是一個例子,但我知道這不是Facebook存儲這些信息的方式。

的Facebook使用了大量的數據庫技術可能涉及: