ライトバック
書き込みをまずキャッシュにのみ行い、後から下位の記憶媒体へ反映するキャッシュ方式。ライトスルーより高速だが、反映前にキャッシュが失われるとデータも失われる。CPUのL1/L2/L3はライトバックで、SSDコントローラーやRAIDキャッシュも同様。
各キャッシュラインには「変更済み(dirty)」か「未変更(clean)」かの印が付き、書き戻しが必要なのはdirtyなラインだけ。複数CPU間のキャッシュ一貫性にはMESIプロトコルが使われる。RAIDコントローラーはBBU(バッテリーバックアップ)がなければライトスルーで運用するのが安全で、BBUがあればライトバックで高速化できる。PLP(電源喪失保護)用コンデンサを持つSSDも安全にライトバックできる。対策はアプリケーションからfsync()を呼ぶことで、キャッシュがディスクへフラッシュされる。書き込みとfsyncの間に電源が落ちれば、アプリのデータはRAMからは消えるが、すでにフラッシュに届いている場合もある。停電後のデータ破損は、まずあらゆる階層のライトバック設定を疑うのがOSデバッグの定石だ。