ライトキャッシュ(write cache)

  • ストレージ側にある書き込みデータのためのキャッシュである。
    • 読み込みのキャッシュと共用の場合も多い。
  • ライトキャッシュによって、DBMSのログ*1の書き込みが1ミリ秒未満で終了することもある。
  • ライトキャッシュは不揮発メモリだったり、バッテリでバックアップしてあったりするため、O_SYNCやO_DSYNCであってもライトキャッシュを使った書き込みは高速である。
  • ライトキャッシュがとても効果的なアプリケーションと、それほど効果的なアプリケーションが存在する。
    • 少数のプログラムが連続して処理を発行するバッチ処理などのアプリケーションは効果が大きい。
      • 特に、同時書き込み(コミット)を数多く実行するものは効果が顕著である。
    • OLTP系はライトキャッシュはあまり効果的ではない。
      • 1つのコネクションから見ると、次の処理(トランザクション)まで時間が空いていることが多いため、今の処理(トランザクション)が数ミリ秒くらい遅くても大きな影響はない。
    • また、グループコミットを持つDBMSはさらに影響が少ない。

参考文献

  • 『絵で見てわかるOS/ネットワーク/ストレージ』


*1 DBMSは以上終了時にデータを復旧させるためにログ機能を持つ。