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

理解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之前的數據不會丟?
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章