精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Facebook圖片存儲架構技術全解析

原創
開發 架構 存儲架構
Haystack提出了一種通用的基于HTTP的對象存儲,它含有指針,映射到存儲對象。在Haystack中以指針儲存照片,把數以十萬計的圖像聚集到一個Haystack存儲文件,從而消除了元數據負荷。這就使得元數據的開銷非常小,并且使我們能夠在存儲文件和內存索引中存儲每個指針的位置。這就使得能用少量的I/O操作來完成圖像數據的檢索,可以消除一切不必要的元數據開銷。

【51CTO獨家特稿】照片應用程序是Facebook最流行的功能。直至目前為止,Facebook的用戶已經上傳了超過150萬幅照片,這使得Facebook成為最大的照片共享網站。對于每一個上傳的照片, Facebook生成并保存成4種不同大小的圖像,即總共有60億的圖片占1.5PB的存儲容量。目前的增長速度是每星期220萬個新照片,即每周消耗25TB的額外存儲空間。在高峰期,平均每秒會上傳550,000幅圖像。這些數字給Facebook的照片存儲基礎架構帶來了嚴重的挑戰。

NFS照片基礎架構

舊的照片基礎架構包含幾個層次:

◆上傳層接收用戶上傳的照片,測量原始圖像的大小并將其保存到NFS存儲層。

◆照片服務層接收HTTP照片請求,并向用戶提供保存于NFS存儲層的照片。

◆NFS存儲層建立于商業存儲設備之上。

由于每個圖像存儲在自己的文件內,所以根據命名空間目錄和文件inode(內節點),在存儲層產生了大量的元數據。這些元數據量遠遠超過了NFS存儲層的緩存能力,導致了上傳和讀取每張照片時成倍的I/O操作。整個照片服務的基礎架構由于NFS存儲層的大量元數據負荷而成為了一個瓶頸,這就是Facebook嚴重依賴CDNs來提供照片服務的原因之一。以下兩個附加的優化部署,用來在一定程度上減輕這個問題:

Cachr :一個緩存服務層,用來緩存Facebook中較小的“個人資料”圖像。

NFS文件句柄緩存——部署在照片服務層,消除了一些NFS存儲級元數據負荷

Haystack照片基礎架構

新的照片基礎架構將照片服務層和存儲層合并為一個物理層。它實現了一個基于HTTP的照片服務器,把照片存儲在名為Haystack的通用對象中。對于新層次的主要要求是消除任何照片讀取操作的不必要的元數據開銷,使每個讀取I/O操作只是讀取實際照片數據(而不是文件系統元數據)。Haystack可劃分為以下一些功能層-

◆HTTP服務器

◆照片存儲

◆Haystack對象存儲

◆文件系統

◆存儲設備

以下各節中,我們會自底向上密切關注每一個功能層。

存儲設備

Haystack部署于日常存儲片之上。一個2U存儲片的典型硬件配置的是-

◆2 x 4核CPUs

◆16GB – 32GB內存

◆具有256MB – 512MB NVRAM緩存的硬件RAID控制器

◆12+ 1TB SATA驅動器

每個存儲片提供大約10TB的可用空間,配置為一個RAID-6分區,由硬件RAID控制器進行管理。RAID 6提供了足夠的冗余性和出色的讀取性能,可以降低存儲成本。RAID控制器NVRAM回寫高速緩存可以部分緩解低劣的寫性能。由于讀取大多是隨機的,所以NVRAM緩存完全保留給寫操作。磁盤高速緩存被禁用,以保證在系統崩潰或電源斷電時數據的一致性。#p#

文件系統

Haystack對象存儲實現于一個文件之上,該文件存儲在一個單一文件系統上,該文件系統建立于10TB volume(卷)大小的空間之上。

照片讀取請求導致read()系統調用請求讀取文件中不同偏移量的信息,但為了執行讀取操作,文件系統必須首先在實際物理卷上找到數據。在文件系統中,每個文件的是由一個名為inode的結構所描述,該結構包含一個塊映射,可以把邏輯文件偏移量映射到物理卷中的物理塊偏離量。對于大文件,根據所使用的文件系統類型的不同,塊映射可能會相當龐大。

基于塊的文件系統為每個邏輯塊維護其映射信息,對于大文件,這些映射信息將不會像通常那樣存入緩存的inode,而是儲存在間接地址塊,讀取文件數據時需要進行轉換。間接轉化可能存在好幾個層次,因此,根據間接地址塊是否被緩存,單一的讀取可能會導致若干個I/O操作。

基于范圍的文件系統只為連續的塊(區域)維護映射信息。對于一個連續大文件的塊映射只由一個區域組成,此區域的大小正好可以裝入inode之中。但是,如果該文件是嚴重地分散和不連續的,其區塊在卷中不連續,那么其塊映射可以隨之增長。有了基于范圍的文件系統,就可以通過積極分配一大塊空間來減少碎片。

目前,所選擇的文件系統是的XFS,基于范圍的文件系統提供有效文件預分配。

Haystack對象存儲

Haystack是一個簡單日志結構(只追加)的對象存儲,包含描述存儲對象的指針。一個Haystack包括兩個文件——實際的包含指針的Haystack存儲文件,以及一個索引文件。下圖顯示了Haystack存儲文件的結構布局:

第一個8KB的Haystack存儲由超級塊所占用。緊接著超級塊的是指針,每個指針由頁眉、數據、和頁腳組成。

一個指針是由其﹤Offset(偏移量), Key, Alternate Key(替換鍵),Cookie﹥元組唯一確定,其中偏移量是指在Haystack存儲中的指針偏移量。Haystack對于關鍵字的值沒有任何限制,有的指針可以有多個關鍵字。下圖顯示的是索引文件的結構布局—

在Haystack存儲文件中,每個指針有一個相應的索引紀錄,而且指針索引紀錄的順序必須與Haystack存儲文件中相關的指針順序相匹配。索引文件提供查找Haystack存儲文件中某一特定指針所需的最小元數據。為了快速查找,把索引記錄載入并組織到一個數據結構中,這是Haystack應用程序(在我們的情況下是照片存儲)的職責。索引文件不是至關重要的,因為它可以根據所需從Haystack存儲文件中重建。索引的主要目的是可以快速加載指針元數據到內存中,而無須遍歷龐大的Haystack存儲文件,這是因為索引的大小通常還不到存儲文件的1%。

Haystack寫操作

Haystack寫操作同步添加新的指針到Haystack存儲文件中。當指針成功添加到龐大的Haystack存儲文件中之后,相應的索引記錄也被寫入索引文件。由于索引文件不是至關重要的,為了達到更快的性能,該索引記錄是異步寫。

索引文件還會定期被刷新到下面的存儲設備,以便限制由硬件故障所引起的恢復操作的程度。在系統崩潰或突然斷電的情況下,Haystack恢復程序丟棄所有存儲中的不完整的指針,同時截斷Haystack存儲文件直到最后一個有效的指針,然后,在Haystack存儲文件最后為所有跟蹤的孤立指針寫入丟失的索引記錄。

Haystack不允許覆蓋已存在的指針偏移量,因此,如果某個指針的數據需要修改,其修改后的新版本必須使用相同的﹤Key, Alternate Key, Cookie﹥元組。然后應用程序就可以認為,在那些有著多個關鍵字的指針中,具有最大偏移量的指針就是最新添加的指針。

Haystack讀操作

傳遞給Haystack讀操作的參數包括指針偏移量、關鍵字、替換鍵、Cookie和數據大小。然后Haystack添加頁眉和頁腳的大小到數據大小中,并從文件中讀取整個指針。只有當關鍵字、替換鍵和Cookie符合參數類型,所傳遞的數據通過校驗,并且指針沒有被之前的操作刪除時,讀操作才能成功(見下文)。

Haystack刪除操作

刪除操作很簡單——通過設置指針的標記域中的一個“deleted(已刪除)”標記位,標記Haystack存儲中的指針為已刪除。然而,相關的索引記錄并不進行任何方式的修改,因此一個應用程序可能會結束于引用某個已刪除的指針。對于這樣的指針的讀操作會注意到“deleted”標記,然后終止操作,提示操作錯誤,給出錯誤信息。已刪除的指針的空間不會以任何方式回收。回收已刪除指針的空間的唯一方法是壓縮c(見下文) 。

照片存儲服務器

照片存儲服務器負責接收HTTP請求,并轉化成相應的Haystack存儲操作。為了盡量減少讀取照片所需的I/ O操作次數,服務器在內存中保存一個Haystack存儲文件中所有照片偏移量的索引。啟動時,服務器讀取Haystack索引文件并生成一個內存中的索引。由于每個節點數以億計的照片(并且該數字只會隨著更大容量的驅動器而增加),我們必須確保該索引能夠裝入可用的內存中。這是通過在內存中保留最少數量的元數據來實現,只保留查找照片所需的信息。

當用戶上傳一個照片,該照片就被分配一個唯一的64位編號。然后將照片轉化為4個不同大小的圖片。每個圖片具有相同的隨機Cookie和64位關鍵字,合理的圖像大小(大,中,小,縮略圖)是儲存在替換鍵中。然后上傳服務器調用照片存儲服務器,把所有4個圖像存儲在Haystack中。

內存中的索引為每張照片保存以下信息:

Haystack使用開源Google稀疏散列數據結構來減小內存中的索引,因為使用它,每條記錄只占2位。

照片存儲寫/修改操作

寫操作寫入照片到Haystack,并更新內存索引。如果該索引中已經包含了具有相同關鍵字的記錄,那么這就是一個修改現有照片的操作,那么只修改索引記錄偏移量,以反映新圖像在Haystack存儲文件中的位置。照片存儲總是假設存在重復的照片(具有相同關鍵字的照片),只有存儲在最大偏移量位置的照片是有效的。

照片存儲讀操作

傳遞到讀操作的參數包括Haystack id 和照片關鍵字、大小和COOKIE 。服務器根據照片關鍵字,執行一個在內存索引上的查找操作,然后得到含有所需照片的指針偏移量。如果發現調用的是Haystack讀操作來讀取照片,那么如上所述,Haystack刪除操作并不更新Haystack索引文件記錄。因此,一個新的內存索引可能會包含之前刪除的照片的舊記錄。讀取之前刪除的照片將會導致操作失敗,并且內存中的索引會自動更新,設置已經刪除圖像的偏移量為0。

照片存儲刪除操作

在調用Haystack刪除操作之后,內存中的索引被更新,設置特定圖像的偏移量為0來表示該圖像已經被刪除。

壓縮

壓縮是一個聯機操作,可以回收已被刪除的指針和重復指針(具有相同關鍵字的指針)所占用的空間。它通過復制指針創建一個新的Haystack,跳過所有重復和已刪除的指針。每次這樣做,就會交換文件和內存中文件的結構。

HTTP服務器

我們使用的HTTP框架是由開源lib event圖書館所提供的簡單的evhttp服務器。我們使用多線程,同一時間內,每個線程能夠處理一個HTTP請求。因為我們的工作量最主要是由I/O操作產生,因此HTTP服務器的性能并不是至關重要的。

【編輯推薦】

  1. 高性能、高流量互聯網應用架構設計實戰原則
  2. 大型網站架構不得不考慮的10個問題
  3. 大型Web2.0站點構建技術初探
責任編輯:yangsai 來源: 51CTO.com
相關推薦

2011-09-14 10:09:02

負載均衡網站架構緩存

2019-04-25 12:45:13

Facebook F4存儲Haystack

2018-11-06 05:14:19

IPv6IPv4網絡

2017-10-18 08:47:53

云存儲技術UFile

2012-06-14 09:38:00

存儲虛擬化

2013-05-29 10:07:34

大數據存儲技術

2013-12-10 09:57:35

Openstack S開源云存儲Openstack

2010-10-08 13:53:02

Silverlight

2025-10-10 08:47:09

2021-06-18 09:54:56

邊緣計算冷熱數據分離全量存儲

2009-05-06 14:35:17

搜索引擎PHP技術

2025-07-09 07:52:59

2021-08-11 08:41:20

全棧開發技術架構前端

2012-02-17 10:00:15

圖片存儲圖片服務器架構

2023-01-30 22:34:44

Node.js前端

2011-04-26 09:18:53

FacebookPHPmysql

2015-08-26 09:27:32

Facebook架構

2017-04-24 08:53:04

終極溝通技術Facebook

2024-09-29 08:00:00

動態代理RPC架構微服務架構

2012-09-28 16:21:26

點贊
收藏

51CTO技術棧公眾號

成人午夜av| 人成在线免费网站| 国模娜娜一区二区三区| 精品自在线视频| 亚洲精品无码一区二区| 性xxxxfreexxxxx欧美丶| 国产农村妇女毛片精品久久麻豆| 国产欧美日韩中文| 久久久久久蜜桃| 竹菊久久久久久久| 欧美一区二区三区的| 五十路熟女丰满大屁股| av电影在线播放高清免费观看| 国产在线播精品第三| 97国产精品视频人人做人人爱| 色欲AV无码精品一区二区久久| 国产一精品一av一免费爽爽| 狠狠做深爱婷婷久久综合一区| 亚洲日本japanese丝袜| 免费观看的毛片| 六月婷婷色综合| 欧美与黑人午夜性猛交久久久| 天天操夜夜操av| 亚洲警察之高压线| 日韩精品一区二区三区蜜臀 | 超碰免费在线观看| 国产99久久久国产精品潘金| 国产精品第2页| www.天天色| 91成人免费| 在线观看精品国产视频| 喷水视频在线观看| 免费精品一区| 欧美日韩一卡二卡| 日韩免费毛片视频| 黄在线观看免费网站ktv| 亚洲人123区| 日本一区二区不卡高清更新| 人妻中文字幕一区| 国产成人亚洲综合a∨婷婷图片| 国产精品视频免费在线观看| 久草视频一区二区| 中文亚洲欧美| 91av视频在线| 色播视频在线播放| 1024日韩| 欧美激情视频给我| 欧美丰满艳妇bbwbbw| 欧美激情另类| 日韩午夜在线视频| 亚洲激情图片网| 欧美在线电影| 中文字幕日本欧美| 懂色av粉嫩av浪潮av| 精品日产免费二区日产免费二区| 日韩精品免费视频| 菠萝菠萝蜜网站| 欧美大奶一区二区| 亚洲黄页网在线观看| 国产精品一区二区在线免费观看| 亚洲精品18| 欧美成人精精品一区二区频| 性高潮久久久久久| 99re热精品视频| 亚洲成色999久久网站| 91视频在线免费| 欧美中文一区| 国产午夜一区二区| 免费看的黄色录像| 98精品久久久久久久| 久久成人亚洲精品| 久久免费少妇高潮99精品| 亚洲天堂成人| 97超级碰碰碰| 国产在线一级片| 韩国理伦片一区二区三区在线播放| 91亚洲永久免费精品| 国产肥老妇视频| 粉嫩av一区二区三区| 久久99精品久久久久久久久久| 你懂的在线看| 国产精品毛片久久久久久久 | 欧美午夜在线视频| 97国产在线视频| 久久久久久久亚洲| 国模一区二区三区白浆| 久草热久草热线频97精品| 国产高清视频在线观看| 日韩毛片高清在线播放| 激情五月婷婷六月| 高清av不卡| 欧美嫩在线观看| 日韩黄色一区二区| 久久99国产精品视频| 色婷婷**av毛片一区| 久久免费黄色网址| 天堂一区二区在线免费观看| 成人免费黄色网| 人妻91麻豆一区二区三区| 国产日韩三级在线| 免费看黄色a级片| 成人午夜视屏| 日韩免费高清av| 黄色aaa视频| 欧美91精品| 青青久久aⅴ北条麻妃| 91尤物国产福利在线观看| 成人午夜av电影| 一区二区三区精品国产| 国产99re66在线视频| 欧美三级中文字| 日韩免费高清一区二区| 婷婷另类小说| 国产成人精品一区二区三区| 亚洲第一成年人网站| 国产精品久久久久影院色老大 | 久久精品一本| 肥熟一91porny丨九色丨| 国产黄色在线| 福利视频一区二区| 在线观看你懂的视频| 日韩毛片视频| 啪一啪鲁一鲁2019在线视频| 亚洲国产精品无码久久| 亚洲欧美中日韩| 日本熟妇人妻中出| 精品久久对白| 欧美激情2020午夜免费观看| 一二三区在线播放| 国产日产欧产精品推荐色| www.欧美黄色| 国产精品美女久久久久| 中文字幕一精品亚洲无线一区| 69精品久久久| 国产丶欧美丶日本不卡视频| 日韩免费av一区二区三区| 欧美激情20| 亚洲成人网在线观看| 免费网站看av| 国产激情一区二区三区四区| 一区二区高清视频| 国产成人77亚洲精品www| 亚洲视频在线观看免费| 国产一级淫片a视频免费观看| 9久草视频在线视频精品| 97干在线视频| 亚洲精品午夜| 欧美激情精品久久久久久免费印度| 国产成人三级在线播放| 亚洲毛片av在线| 久久综合在线观看| 亚洲高清资源在线观看| 91在线观看免费观看| 欧美日韩视频在线播放| 欧美日韩高清一区二区三区| 91麻豆精品国产91久久综合| 欧美a级理论片| 艳色歌舞团一区二区三区| 少妇高潮一区二区三区99| 日韩一区视频在线| 国产精品久久影视| 亚洲品质自拍视频| caopor在线| 亚洲免费观看| 欧美一区二区三区四区在线观看地址 | а√天堂资源国产精品| 中文字幕九色91在线| 中文字幕在线2019| 中文字幕亚洲区| 日韩av福利在线观看| 国产精品av久久久久久麻豆网| 国产免费一区二区| 色多多在线观看| 中文字幕欧美日韩| a级片在线免费看| 亚洲777理论| 在哪里可以看毛片| 激情六月婷婷久久| www插插插无码视频网站| 国产成人一区| 成人妇女免费播放久久久| 2024最新电影免费在线观看| 亚洲国产成人精品久久久国产成人一区 | 亚洲av无码乱码国产精品| 午夜影院在线观看欧美| 最新中文字幕av| 国产成人在线影院 | 精品国产视频一区二区三区| 成人午夜电影网站| 天天爽天天爽夜夜爽| 综合一区av| 麻豆成人小视频| 国产95亚洲| 97超级碰在线看视频免费在线看| 在线看黄色av| 亚洲精品一区二区三区蜜桃下载| 成人免费视频国产免费| 亚洲男人的天堂一区二区| 日本黄色片在线播放| 激情综合色播激情啊| 播放灌醉水嫩大学生国内精品| 91亚洲国产| 久久久久网址| 免费一级欧美片在线观看网站| 欧美亚洲另类视频| a级影片在线| 亚洲日本欧美中文幕| a天堂在线观看视频| 在线免费观看日本欧美| 久久久精品视频在线| 国产精品女人毛片| 亚洲蜜桃精久久久久久久久久久久| 开心九九激情九九欧美日韩精美视频电影| 成人在线播放网址| 99精品电影| 欧美美乳视频网站在线观看| 日韩中文字幕| 91精品免费看| 欧美日韩视频网站| 亚洲18私人小影院| 毛片网站在线看| 久久综合伊人77777| 电影av一区| 亚洲美女性视频| 蜜桃av中文字幕| 日韩三级中文字幕| 97caocao| 欧美日韩在线不卡| 国产99免费视频| 日韩欧美国产视频| 日本在线视频中文字幕| 一区二区三区不卡视频| 性生交大片免费全黄| 中文字幕高清一区| 精品成人av一区二区三区| 99综合电影在线视频| 欧美性生交xxxxx| 国产成人在线免费观看| 中文字幕一二三区| 国产在线国偷精品产拍免费yy| 五月天av在线播放| 久久精品国产精品亚洲精品| 日韩肉感妇bbwbbwbbw| 日本不卡123| 国产精品入口免费软件| 日韩成人午夜电影| 成人一区二区三| 日韩电影一区二区三区| youjizzxxxx18| 男人的天堂久久精品| 国产精品入口免费软件| 麻豆免费精品视频| 伊人色在线观看| 国内精品伊人久久久久影院对白| 亚洲免费黄色录像| 国产在线不卡一区| 波多野结衣三级视频| 岛国一区二区三区| 国产又粗又长又爽| 国产视频视频一区| youjizz亚洲女人| 一区在线播放视频| 九九热精品免费视频| 午夜伊人狠狠久久| 无码人妻精品一区二区三区9厂| 日本久久一区二区| 一级日韩一级欧美| 欧美成人高清电影在线| 天天操天天操天天| 中文字幕成人精品久久不卡 | 亲子伦视频一区二区三区| 久久偷窥视频| 欧洲激情综合| 中文字幕の友人北条麻妃| 狠狠入ady亚洲精品经典电影| 欧美日韩二三区| 日韩激情视频在线观看| 日本高清一区二区视频| 99热在这里有精品免费| 免费污网站在线观看| 亚洲人午夜精品天堂一二香蕉| 久草视频精品在线| 91国产视频在线观看| 国产又大又黑又粗| 亚洲成年人在线播放| 国产系列电影在线播放网址| 北条麻妃99精品青青久久| 色呦呦网站在线观看| 日韩av123| 91丨精品丨国产| 蜜桃av色综合| 亚洲电影影音先锋| 男人和女人啪啪网站| 精品一区二区久久久| 黄色片视频免费观看| 国产精品久久久久久久久果冻传媒| 九九在线观看视频| 欧美中文字幕亚洲一区二区va在线 | 欧美在线啊v一区| 亚洲欧美黄色片| 中文字幕欧美视频在线| av女在线播放| 成人免费淫片aa视频免费| 亚洲国产最新| 久久亚洲国产成人精品无码区| 日本女人一区二区三区| 91丝袜在线观看| 中文字幕人成不卡一区| 69成人免费视频| 日韩一区二区电影网| 国产鲁鲁视频在线观看免费| 久久久久久久久久亚洲| 91精品亚洲一区在线观看| 欧美一区1区三区3区公司| 亚洲性人人天天夜夜摸| 中文字幕线观看| 国产午夜精品一区二区三区四区 | 中文字幕亚洲精品乱码| 日韩中文字幕组| 91网站最新网址| 久久综合色综合| 欧美一区在线视频| 在线观看av的网站| 青草热久免费精品视频| 欧美一级三级| 欧美精品久久久久久久自慰| 国产精品18久久久久久久久久久久 | jizz性欧美23| 色撸撸在线观看| 蜜臀久久99精品久久久久久9| 波多野结衣福利| 亚洲v中文字幕| 日日夜夜精品免费| 久久97精品久久久久久久不卡| 青青伊人久久| 伊人久久大香线蕉精品| 日韩**一区毛片| 久久久久久国产免费a片| 色综合色综合色综合色综合色综合 | 免费人成黄页网站在线一区二区| 天堂久久久久久| 精品久久久一区| 男女视频在线观看| 热99精品里视频精品| 杨幂一区二区三区免费看视频| 国产96在线 | 亚洲| 9色porny自拍视频一区二区| 国产精品7777777| 日韩福利视频在线观看| 成人性生交大片免费观看网站| 欧美亚洲爱爱另类综合| 日韩在线一区二区三区| 亚洲av无码国产精品麻豆天美| 色狠狠色噜噜噜综合网| jizzjizz在线观看| 国产区精品视频| 欧美好骚综合网| 国产黄色一区二区三区 | 中文字幕欧美日韩一区二区| 美国毛片一区二区三区| 免费黄色国产视频| 在线综合+亚洲+欧美中文字幕| 超鹏97在线| 国产精品亚洲综合| 国产农村妇女精品一区二区| 成人精品999| 欧美老人xxxx18| aaa大片在线观看| 国产精品二区三区| 午夜宅男久久久| а天堂中文在线资源| 日韩欧美一级片| 天堂中文av在线资源库| 色涩成人影视在线播放| 国产综合久久久久久久久久久久| 青青草免费av| 精品中文字幕久久久久久| 亚洲电影有码| 伊人久久在线观看| 久久综合五月天婷婷伊人| 亚洲天堂网在线观看视频| 九九视频直播综合网| 欧美巨大xxxx| 污网站在线免费| 午夜精品福利视频网站| 国产精品毛片一区二区三区四区| 成人激情春色网| 日韩亚洲国产欧美| 国产美女网站视频| 亚洲成avwww人| jvid一区二区三区| 黄色一级视频片| 亚洲国产精品v| 免费看av毛片| 国产一区二区丝袜| 国产欧美一级| 国产67194| 一本色道久久88综合亚洲精品ⅰ| 免费观看性欧美大片无片| 日日碰狠狠躁久久躁婷婷|