當前位置:
首頁 > 科技 > 臉書換資料庫 存儲空間節省90% 延遲少了50倍

臉書換資料庫 存儲空間節省90% 延遲少了50倍

由於早期設計的臉書Messenger架構已經開始不敷使用,而且也難以擴張新功能,因此臉書決定將Messenger的資料庫從基於HDFS的開源分散式資料庫HBase,轉移到自家的開源資料庫MyRocks,而且為了讓系統轉移的過程不影響用戶的正常使用,特地規划了兩套搬移流程,在兩周的時間完成99.9%的帳戶遷移,新系統帶來的先進壓縮方法讓存儲量減少90%,在使用快快閃記憶體儲系統後讀取延遲更是比過去少了50倍。

Messenger的用戶現在高達10億人,通過Messenger即時的分享文本、照片與視頻等,但隨著服務發展與擴張新功能,臉書發現是時候改變支持Messenger的基礎架構了。臉書提到,最初Messenger被設計成類似電子郵件的功能,用戶會在登錄臉書網站時,看到在收件箱的消息,但是現在的Messenger已經不一樣了,被發展成了即時通信系統,臉書為Messenger這一路的轉變,更新了許多後端系統,並把原本單一的整體服務拆開成不同獨立的系統,以支持移動優先的服務。

現在臉書還要對Messenger的存儲基礎架構進行大翻修,除了要提供更快更可靠的存儲服務外,還要方便未來擴展新功能。這次的更新主要有三部分,第一是重新設計並簡化數據格式。第二是將原本使用基於HDFS的開源分散式資料庫HBase,轉移到由臉書開發的開源資料庫MyRocks上,而這是臉書耕耘許久將RocksDB資料庫引擎集成進MySQL的開源項目。第三則是將存儲設備從傳統硬碟轉移到快快閃記憶體儲上。

為了確保在資料庫轉移時不影響所有用戶的使用體驗,臉書為搬移過程設計了兩套流程,區分為一般搬移以及緩衝搬移。一般搬移針對一般的單一用戶帳號,這個搬移的成立條件需要在搬移的過程沒有數據寫入帳戶中,因此臉書為此定義了狀態機,帳戶在任何時間都會處於未搬移、雙重寫入或是已完成的狀態。搬移工作開始時,會先存儲一個舊系統最後一筆數據的位置,接著將數據搬到新系統中,完成數據複製後檢查舊系統數據有無增加,沒有增加就讓未來新流量寫進新系統中,並進入雙重寫入狀態。假如在搬移的過程,仍有數據寫進舊資料庫,搬移系統便會將該帳號標記為失敗,清除MyRocks中的數據,待下次再次進行搬移工作直到成功。

高流量帳號則無法使用一般的搬移流程,因為會不停的遭遇搬移失敗,臉書表示,大型企業可能會用Messenger機器人來服務客戶,所以沒有空閑的時刻可以用來搬移數據,而且這種帳號的數據也會比典型的帳號大的多。臉書會為這些帳號設置一個開始搬移時間,並將這個時間的數據進行快照,並將快照複製進緩衝區層(Buffer Tier),再將緩衝區層的數據寫入MyRocks,而複製舊數據的同時,新寫入的數據則會被暫時緩存在Iris中(下圖步驟D),一旦來自HBase的數據都被寫到新系統後,該帳號便會進入雙重寫入狀態,把緩存的數據接著寫進MyRocks中。

臉書在兩周內以一般搬移流程,轉移了99.9%的帳號到新系統上,另外花了兩周,以緩衝搬移處理完剩下的帳號。臉書表示,由於臉書在MyRocks中使用先進的無損數據壓縮演算法Zstandard,使數據副本(Replication Factor)數量可以從6個下降到3個,整體節省了90%的存儲空間。他們也認為,與HBase相比,MyRocks能更成熟和更自動化的處理災難恢復。而且MyRocks在讀取和寫入方面都進行了優化,尤其用在快快閃記憶體儲系統上,讀取延遲明顯大降50倍,用戶在讀取歷史消息的時候會非常有感。

由於HBase存在I/O限制,使得歷史消息搜索這類讀取任務繁重的功能難以實現,而臉書現在能直接將搜索基礎架構創建在MySQL上,讓用戶可以快速的在桌面以及移動設備上,搜索他們的Messenger歷史對話。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 十輪網 的精彩文章:

不只咖啡賣的好 星巴克更要轉型為數字科技公司
Adobe推出全新AR創作工具助力創作者

TAG:十輪網 |