「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

「楽観ロック」と「悲観ロック」の違い

スポンサーリンク

予備知識


用語意味
排他制御ダブルブッキングしないようにすること
ロック今回は「これは今、俺が使っているからさ。他の人は触らないでね」の意味。排他制御を実現する手段のひとつ

それぞれの用語の意味


用語意味
楽観ロック「ダブルブッキングしたらドンマイ!」な考えで作られているロック
悲観ロック「ダブルブッキングはダメ。ゼッタイ。」な考えで作られているロック

似ているところ


どちらもロックの分類を指す用語です。
楽観ロックの反対が悲観ロックです。


「楽観ロック」と「悲観ロック」の違い1

違うところ


ダブルブッキングに対して、どれくらい本格的に備えるかが違います。

楽観ロックは「ダブルブッキングする可能性は低いし、もしダブルブッキングしてもそこまでヤバいことにはならないよね」な考え方に沿って作られているロックです。
もしダブルブッキングしたら諦めます。


「楽観ロック」と「悲観ロック」の違い2

悲観ロックは「ダブルブッキングする可能性は低くないし、もしダブルブッキングしたらヤバいよね」な考え方に沿って作られているロックです。
ダブルブッキングしないようにします。


「楽観ロック」と「悲観ロック」の違い3

備考


私の理解では、楽観ロックや悲観ロックは

設計思想

です。
必ずしも具体的なやり方を指す用語ではないと解釈しています。

例えば、SQLにおいて、select文の最後に「FOR UPDATE」を付けると悲観ロックになります。

ただし

1.データを取得(select文を実行)
2.あれやこれやの処理
3.「1」の状態からデータが変わってないか確認するためにデータ取得(「FOR UPDATE」付きのselect文を実行=悲観ロック)
4.データ更新update文を実行)


のような処理をやったら、全体としては楽観ロックです。
「多分1の処理から3の処理までの間にダブルブッキングしないでしょ!もしダブルブッキングしたらドンマイ!」と楽観的になっていますよね。

そのため、機械的に「このSQL文に『FOR UPDATE』が付いているから、この処理は悲観ロックだな」とか考えていると、思わぬミスをする可能性があります。
ご注意ください。


スポンサーリンク
書籍画像039
書籍画像035


書籍画像
わわわ説明術コラム
宣伝だよ
「分かった!」と思わせる説明の技術 知識ゼロの相手にも伝わるようになる本
AI用語図鑑 ビジネス・開発・試験対策に使える厳選キーワード256
「定年力」の鍛え方 老後の毎日を最高にする方法