@techreport{oai:ipsj.ixsq.nii.ac.jp:02000825,
 author = {田所,秀和 and 奥田,浩平 and 長谷川,揚平},
 issue = {19},
 month = {Feb},
 note = {NANDフラッシュメモリでは、再書き込みするためには、一度ブロック全体を消去してから書き込む必要がある。そのため、ブロック内の有効データを別のブロックに移動させるGarbage Collection(GC)と呼ばれる操作が必要になる。GCが発生すると、ホストからの書き込み量よりも多くの書き込みがSSD内部で発生することになり、性能の劣化や寿命が短くなるなどの弊害が発生する。この問題に対処するため、Flexible Data Placement (FDP)と呼ばれるNVMe規格の拡張が提案されている。FDPを用いることで、ホストは書き込みデータにNANDフラッシュメモリのブロックを書き分けるヒントを付けることができ、SSDコントローラはこのヒントに基づいて寿命が近いデータを同じブロックに配置することで、効率的にブロックを消去可能になりGCの発生によるデータの移動を減らすことができる。今回、このFDPを用いて実アプリケーションでどれほどの効果があるのか基礎的な評価を行った。アプリケーションとして、広く使われるキーバリューデータベースであるRocksDBを用いた。RocksDBをFDPに対応させるため、Linuxカーネルが提供するファイルシステムを用いずに、FDPに対応する簡易的なライブラリファイルシステムUFROPを実装した。この論文を執筆時点ではLinuxにおいてFDPがサポートされていないからである。UFROPは、RocksDBのプラグインとして実装し、RocksDB自体を書き換えることなくFDPを活用することができる。具体的には、RocksDBが提供するファイルの寿命ヒントをFDPのメディアの書き分け単位であるPlacement IDにマッピングした上で、iouringのNVMe passthruの機能を用いてPlacement IDを付加したNVMeコマンドをSSDに対して発行する。FDPに対応したNVMe SSDであるKioxia製XDシリーズを用いて実験を行ったところ、FDPやTrimといったホストからヒントを与える機能により、WAFの低減を確認できた。特に、書き換えが多いワークロードにおいて既存ファイルシステムであるext4と比較して、ライブラリ単体でWAFを4割削減し、さらにFDPとTrimの効果を加味するとWAFを6割削減できることを確認した。},
 title = {NVMe FDP対応RocksDBプラグインによるSSDのWAF改善},
 year = {2025}
}