2相ロックとは
2相ロック(Two-Phase Locking)はデータベース管理システムにおいて、複数のトランザクションが同時実行される際の一貫性を保証する代表的な並行制御プロトコルです。このプロトコルでは、各トランザクションがロックを獲得する成長相(Growing Phase)、ロックを解放する縮退相(Shrinking Phase)の2つのフェーズに分かれて動作します。
トランザクションは一度でもロックを解放した後は、新たなロックを獲得できないという制約を設けることで、直列可能性(Serializability)を実現しています。この手法により、複数のトランザクションが並行実行されても、あたかも順番に実行されたかのような結果を得られます。
【PR】プログラミングや生成AIを無料で学べる「コードキャンプフリー」
成長相と縮退相の動作規則
成長相だと、トランザクションは必要なデータに対して、共有ロック(Shared Lock)または排他ロック(Exclusive Lock)を獲得できますが、一切のロック解放は許可されません。共有ロックは読み取り操作に使用され、複数のトランザクションが同時に同じデータを読み取れますが、排他ロックは書き込み操作に使用され、他のトランザクションによる全てのアクセスをブロックします。
| フェーズ | 許可される操作 | 禁止される操作 |
|---|---|---|
| 成長相 | ロックの獲得のみ可能 | ロックの解放は不可 |
| 縮退相 | ロックの解放のみ可能 | ロックの獲得は不可 |
縮退相に入ると、トランザクションは保持しているロックを順次解放していきますが、新たなロックを獲得することは一切できなくなります。この時点で、トランザクションが必要とする全データへのアクセス権を既に確保している必要があるため、事前に必要なリソースを正確に予測することが求められます。
デッドロックの発生と回避戦略
2相ロックプロトコルでは複数のトランザクションが互いに、相手が保持するロックを待ち続けるデッドロック(Deadlock)が発生する可能性があります。例えば、トランザクションAがリソースXをロックしてリソースYを待ち、トランザクションBがリソースYをロックしてリソースXを待つ状況では、両者とも処理を進められません。
| 回避手法 | 動作原理 | 特徴 |
|---|---|---|
| タイムアウト方式 | 一定時間待機後に中断 | 実装が簡単だが最適ではない |
| 待機グラフ検出 | 循環依存を定期的に検査 | 正確だが検出コストがかかる |
| タイムスタンプ順序 | 古いトランザクションを優先 | デッドロックを事前に防止 |
データベース管理システムは、デッドロックを検出した際に犠牲となるトランザクションを選択してロールバックし、保持していたロックを解放させます。ロールバックされたトランザクションは後で再実行されますが、この過程で処理効率が低下するため、適切なロック順序の設計やタイムアウト値の調整が重要です。
※上記コンテンツの内容やソースコードはAIで確認・デバッグしておりますが、間違いやエラー、脆弱性などがある場合は、コメントよりご報告いただけますと幸いです。
ITやプログラミングに関するコラム
- カラーチャートの組み合わせ配色やおすすめツールを解説
【AWS】認定資格12種類の一覧や難易度、費用などを解説
Canvaとは?使い方やアカウント登録などを初心者向けに解説
git configで設定情報を確認・表示する方法
「Pythonはやめとけ」と言われる理由と学習するメリット
Ubuntuのversionを確認する方法
Geminiで画像を生成する方法|ChatGPTとの比較結果も紹介
CodexがChatGPT Plusユーザー向けに解禁されたので使ってみた!できることや料金プランも併せて紹介
【Python】仮想環境から抜ける方法
【Python】文字列から改行コードを除去する方法
ITやプログラミングに関するニュース
東京都と東京観光財団が観光事業者向けセミナーを開催、サステナブルツーリズムを解説
株式会社ディーエスブランドが無料ウェビナー開催、生成AIによる業務効率化の実践術を解説
北九州市が事業承継セミナーを開催、後継者不在問題の解決に向け第三者承継を解説
株式会社スマート修繕が無料Webセミナー開催、マンション大規模修繕の談合や事例を解説
法律事務所瀬合パートナーズがウェビナー開催、物流・運送業向け改正下請法の実務対応を解説
IRISデータラボと日本郵便が愛媛香川でセミナー開催、LINE活用で地域特産品の販促を支援
株式会社AがAstreamの解説ウェビナーを開催、インフルエンサーマーケティングの内製化を支援
ホリエモンAI学校がシフト管理効率化ウェビナーを開催、属人化を解消し現場の負担軽減へ
マーケティングアソシエーションが共催ウェビナー開催、売上とLTVを伸ばす勝ちパターンを解説
株式会社fundbookが経営者向けセミナーを開催、M&Aによるライフプランと出口戦略を解説


