數據存儲產業服務平臺

Facebook公布TAO—社交圖譜數據存儲方案

Facebook已經進一步披露Tao細節信息,這套方案負責對公司數以PB的龐大社交圖譜信息進行存儲。

盡管Facebook公司的社交網絡本身與IT人士似乎沒多大關系,但其內部基礎設施則是不折不扣的IT杰作——社交網絡所處理的信息規模如此巨大,Facebook必須拿出新的數據存儲、計算及管理方式才能應對其對資源的貪婪需求。

因此,本周三在USENIX大會上公布Tao細節信息的原因有二:首先,這體現了未來企業用戶需要面對及打理的龐大數據規模;其次,這也凸顯了由高科技企業提供的、專為現代數據系統打造的設計方案。

“對于任何需要利用相關數據高效生成詳盡定制內容的應用程序域來說,像TAO這樣的系統可能都很有用,”Facebook公司員工撰文寫道。“應用程序不應對數據的具體內容進行諸多限制,而應該學會盡量接納。很多社交網絡信息正好符合這一類別。”

Tao這類系統中的其它應用程序則可能需要處理大型數據集,且這些數據集的規模隨時間推移持續膨脹。還有一些復雜系統中存在諸多代理機制,且其彼此關系根據使用者的一系列操作而決定。而對國家陰謀論深信不疑的用戶,Tao還能夠作為保護機制、與情報機關對國家公民的窺探手段相對抗。

Tao是一套針對讀取進行優化的數據存儲機制,并以單一地理分布實例的方式部署在Facebook當中。它允許Facebook的工程師們橫跨公司整個“社交圖譜”,對全部相關信息進行訪問及寫入——其中包括Facebook上的對象(例如人、品牌、評論等)以及關聯(贊、踩、標記)。

Tao系統的設計初衷在于為“數PB級別”的龐大數據集提供每秒超過十億次讀取操作,Facebook指出。Tao由Facebook一手打造,能夠更好地與自家主數據存儲(MySQL)及緩存層(memcache)相對接,且可以在對象上處理無法預知的查詢。

“事實上,Tao使用MySQL這一特性從客戶端角度完全無從感知,”Facebook工程主管Venkat Venkataramani在接受The Register網站采訪時表示。“我們一直在不斷尋找,但從未發現過比MySQL更好的方案。”

Tao的API與少量SQL查詢相映射,從而降低了底層MySQL數據庫的通信強度。對于單一數據庫來說,Facebook的數據集實在太過龐大,因此Tao轉而將數據拆分為邏輯片段、這樣更易被數據庫服務器所處理。

Tao還擁有一套最終一致性緩存層、采用相似的創建原理,其中容納著對象、關聯以及關聯計數信息。Facebook之所以能夠實現站點中同一頁面下數以百計對象的高速載入效果,緩存層的作用至關重要。

由于Facebook數據集規模巨大,緩存被劃分為雙層結構:“領導”緩存層用于處理寫入操作、作為輔助的“從屬”緩存層則幫助處理讀取操作(讀取操作的數量要明顯高于寫入)——Tao系統經常需要面對每秒十億次級別的讀取、但每秒寫入則僅為數百萬次。

數據緩存處理采取對象與關聯彼此相鄰的方式,Venkataramani指出。“一大重要設計思路在于保證系統使用位置與工作負載位置基本一致,這是我們成功實現大規模擴展的必要前提。”

就以奧巴馬總統的Facebook頁面為例,在發生特定事件時、其頁面往往會突然面對不可預知的龐大讀取量。正是由于Tao在設計理念上將保證對象讀取放在第一位,整套體系的最終一致性與可用性才得以實現,而不會因為滿足一致性而產生過高的訪問延遲。

“在Facebook之前,我們從未見過如此龐大的工作負載,”Venkataramani表示。“說起超大規模應用程序,人們首先想到的往往是電子郵件系統。但郵件與社交網絡兩種工作負載完全不同,因為用戶只會查看自己的郵件、而不可能跑去瀏覽別人的郵件。但在社交網絡方面,情況顯然更為復雜——其信息輸出量遠高于其它網絡服務。”

盡管目前利用這種方式處理數據的企業還不太多,但對Tao系統的深入分析能幫助我們在企業規模達到一定程度時解決新難題、理解Facebook藍白圖標背后所承受的巨大技術壓力及其巧妙的處理方案。

“隨著云計算的逐漸普及以及大規模數據入駐大型數據中心,我認為新型后端架構的時代已經拉開帷幕,”Venkataramani最后總結道。

未經允許不得轉載:存儲在線-存儲專業媒體 » Facebook公布TAO—社交圖譜數據存儲方案
精品国产午夜肉伦伦影院,双性老师灌满浓jing上课h,天天做天天爱夜夜爽,攵女乱h边做边走