# f2fs
f2fs(Flash-Friendly File System)は Changman Lee らが FAST '15 で発表した、フラッシュストレージ向け Linux ファイルシステム。[[@2025__SoCC__Valet - Efficient Data Placement on Modern SSDs]] では ZNS 対応の代表的ファイルシステムとして全実験を通じた主要比較対象に用いられる。
論文が特定した f2fs の限界:
- RWH_HINT インターフェース(hot/cold/warm/undefined の4値)しか公開しておらず、RocksDB 以外のアプリケーションからの十分な粒度のヒントを扱えない。
- カーネル内に実装されているため修正が困難で、ZNS 関連のバグ修正には新しい Linux カーネルへの移行(データセンターでは移行・ダウンタイムを伴うため非現実的)が必要になる。
- O_DIRECT を指定してもなおキャッシュへの書き込みマッピングを要し、内部データ構造更新とロック処理のオーバーヘッドで、zonefs と比較してスレッド数1〜14の帯域の30〜50%に留まる(perf 分析では sync に34.43%、write に12.72%を消費、Figure 2)。
- RocksDB WAL の永続化に数十ミリ秒を要し、CPU時間の44%をこの部分が占める(Valet は27%未満)。
Valet はいずれの評価(RocksDB・MongoDB/WiredTiger・CacheLib)でも f2fs に対して2〜6倍のスループット改善とテールレイテンシの大幅な削減を示した。(Source: [[@2025__SoCC__Valet - Efficient Data Placement on Modern SSDs]])
## 関連
- ソース: [[@2025__SoCC__Valet - Efficient Data Placement on Modern SSDs]]
- エンティティ: [[Valet]] / [[zenfs]] / [[RocksDB]] / [[MongoDB]] / [[CacheLib]]