悲観的ロックと楽観的ロックは何ですか?

悲観的ロックと楽観的ロックは並行制御の仕組みの2つの戦略です。

悲観的ロックは、多くの競合が発生すると仮定し、データの読み書きの前にロックを取得する保守的な戦略です。トランザクションがロックを取得すると、他のトランザクションはそのロックが解放されるのを待たなければならず、データにアクセスできません。悲観的ロックは、競合が頻繁に発生する場面に適しており、例えばデータベースの行レベルロックに使用されます。

乐観的なロック(オプティミスティックロッキング)は、競合アクセスが頻繁に発生しないと仮定する楽観的なストラテジーです。データを読み取る際にはロックを取得せず、書き込み時に他のトランザクションがデータを変更していないかをチェックします。チェック中に他のトランザクションによるデータ変更が検出された場合、現在のトランザクションはロールバックして再試行します。楽観ロックは、競合が少ないシナリオに適しており、バージョン番号やタイムスタンプを使用してデータが変更されたかどうかを判断することができます。

悲観ロックと楽観ロックはそれぞれ利点と欠点を持っており、どちらの戦略を選択するかは具体的なビジネスシーンや同時実行の頻度にかかっています。

bannerAds