這個問題是文章「Why are Facebook, Digg, and Twitter so hard to scale?」由highscalability.com數據庫系統是否更適合社交網絡?
啓發那麼數據庫系統(但是模糊的)都在那裏,就能夠處理這種類型的數據的更好嗎?
這個問題是文章「Why are Facebook, Digg, and Twitter so hard to scale?」由highscalability.com數據庫系統是否更適合社交網絡?
啓發那麼數據庫系統(但是模糊的)都在那裏,就能夠處理這種類型的數據的更好嗎?
擁有一個數據庫系統,其中數據模型是針對您試圖表示的數據結構定製的,通常是有利的。社交網絡非常適合Graph數據庫,如Allegro Graph,Neo4j等。
關於如何在圖數據庫中表示社交網絡,使用Neo4j的示例有good article at the Neo4j blog。
圖形數據庫的好處是存儲數據,因此實體之間的遍歷連接是非常快速的操作,允許您快速遍歷複雜的網絡。在關係數據庫的當前實現中,這些操作通常會(最好)昂貴的連接操作。與關係數據庫一樣,圖數據庫在擴展到多個硬件節點時仍然存在一些小問題。然而,對於圖形數據庫,對於社交網絡類型數據的關係數據庫,多個硬件節點的需求應該少得多,單臺機器上的幾十億個節點是沒有問題的。擴展到多個硬件節點是鍵值存儲發光的地方,因爲鍵值存儲中的實體完全相互隔離。問題在於,沒有任何東西在社交網絡中孤立,這意味着要模擬連接,需要對數據庫進行多重查詢,每個實體都需要一個查詢。這會很慢,特別是對於朋友之友類型的查詢,您只能在每個查詢中發現一個級別的朋友。
聲明:我是Neo4j團隊的成員。
本文在提及memcached時間接告訴你答案。這是一個將所有數據保存在RAM中的鍵值存儲。顯然,你必須有額外的數據存儲來保存硬盤上的數據,但它們也可能是關鍵值存儲。有很多像Hadoop,CouchDB,Tokyo Cabinet和Redis。
您也可以使用列存儲,如MonetDB,您只需檢索您感興趣的字段,而不是整個表格行。
檢查NOSQL debrief,它有幾個分佈式,非關係型數據庫有趣的資源:
演示幻燈片和視頻
介紹會議 - 託德Lipcon,Cloudera的 (幻燈片,視頻1,視頻2)
Voldemort - 周杰倫克雷普斯,LinkedIn(幻燈片PDF PPT, VIDEO1,VIDEO2)
Cassandra - 阿維納什 拉克什曼,臉譜(幻燈片PDF PPT, 視頻)
Dynomite - 赤壁月亮, Powerset的(幻燈片,視頻)
HBase - 瑞安羅森,StumbleUpon公司(幻燈片, 視頻)
Hypertable - 道格·賈德, Zvents (幻燈片PPT PDF,視頻1, 視頻2)
CouchDB - 克里斯·安德森, couch.io(幻燈片,視頻1,視頻2)VPork - 喬恩·特拉維斯,SpringSource的 (幻燈片,視頻)
MongoDb德懷特 - 梅里曼,10gen公司(幻燈片,視頻)
無限的可擴展性 - 喬納斯小號 卡爾森,谷歌(幻燈片,視頻)通過Digg的約翰·奎因有些視頻,在 休息由Last.fm的Martin Dittus撰寫。 Last.fm上的Russ Garrett拍攝的照片
有關幻燈片和視頻的鏈接,請檢查原始頁面,其中僅有太多可粘貼。
您也可能想要閱讀NoSQL: If Only It Was That Easy(甚至維基百科上的Nosql條目)。