link

特別推薦facebook 中文網站: http://www.zwzpyg.com/?p=383

2011年5月15日星期日

淺談Facebook圖片存儲系統HayStack概要

淺談Facebook圖片存儲系統HayStack概要
HayStack是Fackbook用於存儲照片的系統,其存儲照片的數量在千億數量級,本文簡要分析HayStack的設計與實現原理。

  圖片存儲的幾個關鍵點:

  1. Metadata信息存儲。由於圖片數量巨大,單機存放不了所有的Metadata信息,假設每個圖片文件的Metadata佔用100字節,260 billion圖片Metadata佔用的空間為260G * 100 = 26000GB。

  2. 減少圖片讀取的IO次數。在普通的Linux文件系統中,讀取一個文件包括三次磁盤IO:讀取目錄元數據到內存,把文件的inode節點裝載到內存,最後讀取實際的文件內容。由於文件數太多,無法將所有目錄及文件的inode信息緩存到內存,因此磁盤IO次數很難達到每個圖片讀取只需要一次磁盤IO的理想狀態​​。

  3. 圖片緩存。圖片寫入以後就不再修改,因此,需要對圖片進行緩存並且將緩存放到離用戶最近的位置,一般會使用CDN技術。

  HayStack的主要目標:

1. High throughput and low latency(高吞吐量、低延時):簡化元數據結構與存儲模式,直接存儲文件在物理卷上的位置,減小lookup時間。

2. Fault-tolerant(容錯性):在不同的機器上維護多個副本

3. Cost-effective(高效):提高存儲空間利用率、提高請求處理效率。

4. Simple(簡單):易於實現和維護,部署週期短。

  HayStack的總體架構:

Haystack的寫請求(圖片上傳)處理流程為:Web Server首先請求Haystack Directory獲取圖片的id和可寫的邏輯捲軸,接著將數據寫入對應的每一個物理捲軸(備份數一般為3)。

Haystack圖片讀取請求大致流程為:用戶訪問一個頁面時,Web Server請求Haystack Directory構造一個URL:後續根據各個部分的信息依次訪問CDN,Cache和後端的Haystack Store存儲節點。 Haystack Directory構造URL時可以省略部分從而使得用戶直接請求Haystack Cache而不必經過CDN。 Haystack cache收到的請求包含兩個部分:用戶Browser的請求及CDN的請求,Haystack cache只緩存用戶Browser發送的請求且要求請求的Haystack Store存儲節點是可寫的。一般來說,Haystack Store的存儲節點寫一段時間以後達到容量上限變為只讀,因此,可寫節點的圖片為最近增加的圖片,是熱點數據。

Haystack 刪除操作比較簡單,只是在Haystack 存儲的指針上設置一個已刪除標誌,已經刪除的指針和索引的空間並不回收。可通過定期的對物理捲進行合併,以回收已刪除的空間。

  Haystack Directory的主要功能如下:

1, 提供邏輯捲軸到物理捲軸的映射,為寫請求分配圖片id;

2, 提供負載均衡,為寫操作選擇邏輯捲軸,讀操作選擇物理捲軸;

3, 屏蔽CDN服務,可以選擇某些圖片請求直接走HayStack Cache;

  4, 標記某些邏輯捲軸為read-only;

HayStack中的圖片順序的存放在物理卷中,獲取圖片在物理卷中的偏移即可讀取圖片,圖片的存儲結構如下所示(每張圖片稱為一個needle)。

其中,key為圖片的唯一標示,alternate key為尺寸的標示,flag為刪除標誌,size為數據大小,data為實際的數據。

淺談Facebook圖片存儲系統HayStack概要

HayStack為每張圖片在內存中維護圖片與其位置的映射表,在圖片被寫入時更新映射關係,每次系統啟動時可通過讀取物理卷並構造映射表,但這樣做很耗時間,但HayStack通過為每張圖片構造index file來簡化了系統啟動時映射表的構建,index file的結構如下所示:(其主要包含key與對應圖片位置的映射關係,系統啟動時,通過讀取index file便能很快的構造映射表。)

淺談Facebook圖片存儲系統HayStack概要

  HayStack的幾點優勢:

1. 採用輕量級的HayStack Directory維護邏輯捲到多個物理卷的映射關係,方便的實現了副本技術,以實現系統容錯。

2. 簡化文件的元數據結構,以追加寫的方式往物理卷中存儲圖片,效率高。同時將圖片key與位置的映射關係全部保留在內存中,通過一次lookup即可獲取圖片的位置。

3. 物理卷中所有的圖片都對應有index文件(固定大小,結構簡單),從而每次系統重啟時,物理卷的映射信息能快速的通過index文件構建。

4. 引入delete flag、compaction、batch upload以及進一步提高存儲的效率。

1 条评论:


  1. 裸聊直播間-夫妻真人秀視頻聊天室-真愛旅舍
    裸聊直播間-夫妻真人秀視頻聊天室-真愛旅舍
    AQ真人秀場聊天室-91色情在線視頻-色裸聊直播間,視訊交友
    大尺度真人秀場聊天室-啪啪堂在線視頻,視訊交友 分級頁面
    293真人秀場聊天室-91黃色視頻網站,免費視訊交友gyy
    真人秀場跳舞聊天室-台灣一對一聊天室,lol視訊交友
    真人秀場聊天室熱舞-台灣一對一視頻聊天室,視訊交友嘰嘰叫
    9158多人視頻-性話題網聊女的QQ記錄,戀愛物語視訊交友
    真人秀聊天視頻網站-線上性聊天網,情色視訊交友
    午夜聊天室-性聊天QQ群-SM聖魔聊天室,視訊電話交友0982
    同城聊天室視頻聊-q全球視頻聊天室,免費視訊交友ing
    激情視頻聊天室-夜色視頻多人聊天室,全球視訊交友
    破解視頻聊天室-q秀聊天室吧,uthome視訊聊天
    三色午夜秀聊天室-色聊語音聊天室,uthome視訊聊天網
    成人聊天室極品騷女誘惑艷舞-國外聊天室色聊
    三色午夜聊天室-微信色聊群或者聊天室,uthome視訊聊天交友網
    色情女主播聊天室-免費色聊表演聊天室,uthome視訊聊天網
    色情艷舞聊天室-色聊可視語音聊天室,uthome視訊聊天交友網
    視頻色情表演-免費色聊聊天室,uthome免費視訊聊天
    聊天交友網站-色聊語音聊天室下載,uthome視訊聊天室
    色情視頻聊天室-色聊聊天室下載,uthome多人視訊聊天室
    網絡色情視頻聊天室直播-527娛樂多人視頻聊天,ut多人視訊聊天室
    UT視訊聊天室-大香蕉網在線視頻,免費視訊聊天室入口
    內衣秀視頻下載-大棚歌舞色舞視頻快播,免費視訊聊天室
    內衣模特視頻-色56視頻-8090碰在線視頻,uthome多人視訊聊天室v1 0
    9158視頻社區-天天擼在線視頻電影網,大中華視訊網
    約炮交友直播間平台-女性用品使用視頻,大中華視訊網免費點數
    奇摩女孩真人視頻網-帥哥和美女親熱視頻,視訊發牌
    FC2視訊妹聊天-美女和帥哥親吻視頻,視訊推薦品牌
    173視頻站-迪吧現場高清視頻,視訊軟體
    久久視頻多人聊天室-有沒有免費的聊天室,免費視訊軟體
    新的qq聊視頻語音聊天室-美女在家內衣視頻跳舞,電腦視訊軟體
    聊室語音視頻聊天室-DJ美女在家視頻跳舞,視訊軟體下載
    風雲聊語音視頻聊天室-韓國美女視頻跳舞,免費視訊軟體下載
    三三聊視頻聊天-9158跳舞吧視頻美女,網路視訊軟體
    三聊視頻語音聊天室-有色的日本美女視頻,手機視訊軟體
    三聊視頻聊天網-51百途女生56免費視頻,辣妹視訊
    可聊99多人聊天室-皇色視頻在線視頻,台灣視訊辣妹
    天上人間視頻聊天網-媽媽擼在線視頻,台灣免費視訊聊天室
    愛聊多人視頻聊天-擼管專用視頻,視訊聊天網站
    嗨聊語音視頻聊天網-擼管視頻,視訊聊天室破解版
    A8聊語音視頻聊天網-夜夜擼在線視頻,日本視訊聊天室

    回复删除