我一直想知道社交網站的架構,如twitter,facebook,google plus。出於好奇心,我想知道,他們如何管理所有那些長篇和短篇文章(包括圖片,網頁鏈接等),並對其進行評論。他們將它們存儲在數據庫中還是存儲在xml文件中或混合搭配?他們如何實際管理如此大量的數據?社交網站如何管理數據?
感謝
我一直想知道社交網站的架構,如twitter,facebook,google plus。出於好奇心,我想知道,他們如何管理所有那些長篇和短篇文章(包括圖片,網頁鏈接等),並對其進行評論。他們將它們存儲在數據庫中還是存儲在xml文件中或混合搭配?他們如何實際管理如此大量的數據?社交網站如何管理數據?
感謝
的Facebook在今年早些時候放棄在IBM硅谷實驗室的技術談話,談了他們使用Apache HBase的,以及如何MySQL並沒有很好地擴展足以讓他們。他們沒有深入研究數據結構,而是深入瞭解系統的基礎設施以及他們如何專注於高速讀取操作。
一般來說,規模和速度對於這些規模和規模都是巨大的交易,它們嚴重依賴分片數據庫結構,內置自動冗餘功能。它們通常不使用數據庫概念,如參照完整性或甚至定義的模式,因爲它們會顯着影響數據庫性能。對於Facebook,如果我沒有記錯,他們基本上存儲了描述數據的JSON對象,並且可以在必要時輕鬆地將新字段添加到對象中以支持新的數據結構。如果你在一個巨大的桌子上進行柱式操作,並且跨越許多不同的獨立機器,那麼讓它們同步而不是讓系統完全離線是一場噩夢。
HBase at Facebook page有一些有趣的圖形和信息,您可能會發現有幫助。
也許檢查臉書工程講座:https://www.facebook.com/Engineering/videos – inf
i'hv檢查fb工程會談,但它不是我所喜歡的。我的好奇心更多地是關於他們的帖子和評論是如何存儲在數據庫或某個xml文件中的,以及這樣做的後果是什麼?或者有更好的方法? – Prabhat