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

基本情報技術者

ライトバック、ライトスルーという言葉はキャッシュメモリからディスクへデータを更新する方式として、データベースサーバ関係で意外と良く聞く言葉だったりします。

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

 

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

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

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

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

ライトバックのイメージ

 

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

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

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

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

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

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

ライトバックのイメージ

 

まとめ

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

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

以上です!

 

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