楽観ロック 【optimistic locking】

概要

楽観ロック(optimistic locking)とは、共有データ排他制御(ロック)の一種で、他の主体のアクセスを妨げずに共有データの処理をう手法。滅多に資源の競合が起きない前提に立つため「楽観」と呼ばれる。

並行処理が可能なシステムでは、同じシステム上の同じ資源(共有メモリ領域など)を、複数の主体(利用者プログラムなど)が同時にアクセスすることがある。その際、処理に矛盾が生じないよう他の主体のアクセスを制限する仕組みを「ロック」(locking)という。

楽観ロックは資源の利用時に他の主体によるアクセスを禁止しない方式で、処理が終わり資源を更新する際、読み込み時以降に誰かが変更したかを調べ、変更があれば更新はわずに結果を破棄して処理失敗を宣言する。変更されていなければ結果を書き戻して処理完了とする。

処理の最中に参照している資源の内容が書き換わってしまうことは滅多に起こらない前提に立ったロック方式である。資源のアクセスを禁じたり、他の主体へ通知するための仕組みが不要で、他の主体に待ち時間が生じず、ロックの解放漏れが起きないなどの利点がある。

変更があったか確認する方法として、データが短い場合はそのものを比較することもあるが、更新時にタイムスタンプを記録して照合する方式や、更新時にバージョン番号を増やすようにしてが一致するか調べる方式が用いられることがある。不運にも途中で変更がわれると処理失敗になってしまうため、処理のやり直しが可能で、やり直しがあまり負担にならない場合によく用いられる。

一方、処理開始時に他の主体によるアクセスを禁じる措置を取るロック方式を「悲観ロック」(pessimistic locking)という。楽観ロックとは逆に、資源の競合が頻繁に起きることが予想される状況や、処理のやり直しに重い負担が生じる場合などに用いられる。

(2024.8.21更新)

他の辞典による解説 (外部サイト)

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。
ホーム画面への追加方法
1.ブラウザの 共有ボタンのアイコン 共有ボタンをタップ
2.メニューの「ホーム画面に追加」をタップ
閉じる