1. ホーム
  2. optimization

[解決済み] コピーオンライトとは何ですか?

2022-03-12 14:20:07

質問

を知りたいのですが。 コピーオンライト とは、どのようなもので、どのような用途に使われるのでしょうか。この用語は、Sun JDKのチュートリアルで何度か言及されています。

どのように解決するのですか?

自分なりの解説を書こうと思ったのですが このウィキペディアの記事 ということです。

基本的な考え方はこうです。

コピーオンライト(Cow")とは、コンピュータプログラミングで用いられる最適化戦略の一つである。基本的な考え方は、複数の呼び出し元が最初は区別のつかないリソースを要求してきた場合、同じリソースへのポインタを与えればよいというものです。この機能は、呼び出し元がリソースのコピーに変更を加えるまで維持され、その時点で真のプライベートコピーが作成され、変更が他の誰にでも見えるようになるのを防ぎます。この処理はすべて、呼び出し元に対して透過的に行われる。主な利点は、呼び出し元が決して変更を行わない場合、プライベー トコピーを作成する必要がないことである。

また、COWの一般的な使い方の応用例として、こんなものがあります。

COWの概念は、Microsoft SQL Server 2005などのデータベースサーバーのインスタントスナップショットのメンテナンスにも使用されています。インスタントスナップショットは、下層のデータが更新されたときに、データの変更前のコピーを保存することによって、データベースの静的なビューを保持します。インスタントスナップショットは、テスト用途や瞬間依存のレポートに使用され、バックアップを置き換えるために使用されるべきではありません。