f2fs系列之八: 最全的SSA 總結
阿新 • • 發佈:2019-02-13
point hot block arm 問題: parent 自身 問題 個數 理解SSA的難點在於 SSA如何避免對SIT/NAT區域零星的寫。這需要深入理解SSA 自身和相關的數據結構和協作關系。
data/node 根據數據冷熱分區
分區的數據以log/journal 的形式落盤
每種類型當前寫的segment/block 信息都記錄在 內存cursegments 中
記錄方式是 f2fs_summary_block , 這個數據結構裏面包含f2fs_journal 信息,還有記錄所管理的segment中的各個block 在parent node中的offset。
code data 的f2fs_jouranl
裏面包含資源管理信息: sit journal 對應code/warm data (普通類型的文件)
hot data的f2fs_journal
包含新建立的indoe 信息: nat journal 對應 hot data (directroy 類型)
為了避免零星的寫,cursgements中的數據一起寫到SSA 區域
check point的時候,把內存中cursegment中sit/nat journal entry信息寫回到NAT/SIT 區域。
(下面有空貼上相關數據結構和代碼)
問題:
- 寫到SSA的區域的sit/nat journal entry信息是否落盤後IO才返回?還是說等page cache kdflush 刷下去?掉電會丟數據?只陳諾做個checkpoint之前的數據不會丟?
f2fs系列之八: 最全的SSA 總結