1. 程式人生 > >f2fs系列之八: 最全的SSA 總結

f2fs系列之八: 最全的SSA 總結

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 總結