分佈式圖片存儲-1

搞AI應用的基本都會涉及到圖片存儲,特別是AI在安防行業的應用,基本都需要滿足100億級別的圖片存儲。需求大概是:

  • 寫非常多而且頻繁
  • 讀相對不是很多(訪問長尾效應)
  • 修改基本沒有
  • 刪除非常少
  • 需要支持循環刪除(按時間刪除,保留最新的,刪除最老的)

背景

由於目錄文件多了非常慢,所以根據文件名 hash 頭幾位,建立 00-FF 好多目錄,來打散這些文件的存儲。

目錄定位本身也是需要 IO 成本,早期的 ext2 是線性查找,ext3 做了一些優化線性查找 Btree 搜索,包括到後面 ext4 / xfs 等基於 extent 查找等,本質還是需要 IO 操作的,目錄越多,cache 命中率就會下去,IO 成本就會變高。

小文件本身的 inode 也是佔用上百字節,浪費空間。

打開文件時需要一次系統調用 open 操作,也是一次 IO,可以緩存所有的打開 fd,這樣就少幾次 IO。但是上億文件情況下,不可能緩存所有的 fd,如果緩存用 LRU 策略,長尾問題還是沒解決,因爲存在一定的 cache miss。

所以普通文件讀寫方式並不適合大容量的圖片存儲。那麼就需要專門的處理方式來進行大容量圖片讀寫。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章