ライトスルーとライトバックの違いを調べよう!

基本情報技術者

ライトバック、ライトスルーという言葉はキャッシュメモリから主記憶装置へデータを更新する方式として、処理を高速化する仕組みで、コンピュータ内部処理だけでなく、RAIDディスクにおけるデータの読み書きなどでも意外と良く聞く言葉だったりします。

違いは何となく分かるのですが、どっちがどっちか分からなくなる時がありますので、正しく調べてみました!

ライトバック、ライトスルーは「主にキャッシュメモリから主記憶装置」への書き込みの仕組みですが、RAIDなどにおいてRAIDコントローラ上のキャッシュからHDDやSSDへのディスク書込みでも使われていますので、その辺混ぜて記載してます。

ライトスルー (write through)とは?

先ずはライトスルーです。

コンピュータにおいてデータが処理されると先ずはキャッシュメモリに書き込まれ、その次に主記憶装置へデータが書き込まれ、最終的にはHDDやSSDなどのディスクへの書き込みが発生します。この場合、OSはディスクの書き込みが完了するまで次の処理を待ちます。書き込みが完了したら次の処理を行います。

このようにキャッシュメモリからディスクへ順番(シーケンシャル)にデータを書き込んでいくため、処理は確実なのですが、ディスクへの書き込みの待ちが発生するため処理は遅くなります。(ディスク書き込みはメモリ書き込みより圧倒的に遅い)

ライトバック (write back)とは?

続いてライトバックです。

ライトスルー同様にキャッシュメモリから主記憶装置やディスクへの書き込みが発生した場合、ライトバックはキャッシュメモリにデータの書き込みが完了した時点で書き込み完了として次の処理を行ってしまいます。キャッシュメモリから主記憶装置、ディスクへの書き込みタイミングはCPUなどの処理の負荷が下がった時点で行います。

メモリに書き込むだけで処理が完了するのでライトスルーと比較して処理は早くなります。しかし、停電やサーバの故障により、キャッシュメモリに通電がされずに、その内容がロストしてしまうと主記憶装置やディスクへ書き込む予定だった(書き込まれていない)データは当たり前のようにロストしてしまいます。

一般的に高価なRAID装置などはバッテリ装置を標準装備し停電や瞬停時にもバッテリーから電源を供給することで万が一のデータロストを防ぐようにしています。

しかし、このライトバック用のバッテリーを定期的に交換するのが意外と面倒で、コストも掛かります。UPS(無停電装置)がラック内に組み込まれていれば、停電時でもサーバに電気は供給されるので、それを考えるとバッテリーは要らないと思います。だがしかし、そもそもバッテリーが無いとライトバック方式にできないサーバーがあったりして、これまた厄介ですね。

まとめ

今回はサーバでキャッシュメモリから主記憶装置やディスクへ書き込む二つの方式である「ライトスルー」と「ライトバック」に関して調べてみました。

覚え方としては、「ライトバック」が後(バック)からディスクへ書き込むという感じで覚えると良いと思います。

以上です!

キャッシュメモリ関係のコチラの記事もご参照ください!

タイトルとURLをコピーしました