淘宝文件系统大文件结构
生活随笔
收集整理的這篇文章主要介紹了
淘宝文件系统大文件结构
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 1 淘寶文件系統大文件結構
- 1.1 設計思路
- 1.2 大文件存儲結構圖
- 1.3 哈希鏈表簡介
1 淘寶文件系統大文件結構
1.1 設計思路
主要有如下幾個核心要點:
- 以block文件的形式存放數據文件(一般64M一個block),以下簡稱為“塊”,每個塊都有唯一的一個整數編號,塊在使用之前所用到的存儲空間都會預先分配和初始化。
- 每一個塊由一個索引文件、一個主塊文件和若干個擴展塊組成,“小文件”主要存放在主塊中,擴展塊主要用來存放溢出的數據。
- 每個索引文件存放對應的塊信息和“小文件”索引信息,索引文件會在服務啟動時映射(mmap)到內存,以便極大的提高文件檢索速度。“小文件”索引信息采用在索引文件中的數據結構哈希鏈表來實現。
- 每個文件有對應的文件編號,文件編號從1開始編號,依次遞增,同時作為哈希查找算法的Key 來定位“小文件”在主塊和擴展塊中的偏移量。文件編號+塊編號按某種算法可得到“小文件”對應的文件名。
1.2 大文件存儲結構圖
大文件存儲結構圖:
文件哈希鏈表實現圖:
關鍵數據結構定義如下:
1.3 哈希鏈表簡介
哈希表 - 散列表,它是基于快速存取的角度設計的,也是一種典型的“空間換時間”的做法。
關鍵點:
- 鍵(key): 文件的編號 如, 1 、 5 、 19 。 。 。
- 值(value): 文件的索引信息(包含 文件大小、位置)。
- 索引: 數組的下標(0,1,2,3,4) ,用以快速定位和檢索數據。
- 哈希桶: 保存索引的數組,數組成員為每一個索引值相同的多個元素(以鏈表的形式鏈接)的首節點。
- 哈希函數: 將文件編號映射到索引上,采用求余法 ,如: 文件編號 19。
參考資料:
總結
以上是生活随笔為你收集整理的淘宝文件系统大文件结构的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 现在银行存款利息是多少
- 下一篇: 有妖气是什么公司 最近被B站重金收购