複数粒度ロックとは? わかりやすく解説

複数粒度ロック

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2017/03/28 08:58 UTC 版)

複数粒度ロック(Multiple Granularity LockingMGL)は、データベース管理システム(DBMS)やリレーショナルデータベースで使われるロック手法である。John Rayner Locking Methodとも呼ばれる。

MGLでは、ロックは他のオブジェクトを含んだオブジェクトに対して設定される。MGLは「包含関係」の階層構造の性質を利用する。例えば、データベースにはファイルがあり、ファイルにはページがあり、ページにはレコードがある。これをオブジェクトの木構造と捉え、各ノードに子ノードが包含されているとする。ロックは対応するノードとその配下のノード群をまとめてロックする。

複数粒度ロックでは、直列化可能性(Serializability)を保証するため、厳密でない (Non-strict) ツーフェーズロックを使用することが多い。MGLでは上位ノードでの粒度のロックが必要になったときにロックエスカレーションと呼ばれる機能を使用する。そうでなくとも、DBMSではロックを確保する際にメモリを使用する場合があり、多数のロックを獲得するとそれだけメモリを消費することになる。そのようなときにシステムが自動的にロックエスカレーションによって上位の粒度のロックに切り替えてメモリ消費を抑える場合がある。

ロックモード

厳密な (Strict) ツーフェーズロックなどの他のロック手法にもある共有 (Shared) と排他 (eXclusive) だけでなく、MGLでは Intention SharedIntention eXclusive というロックも使用する。ISロックは Xロックと衝突し、IXロックは Sロック/Xロックと衝突する。

あるノードをS(またはX)でロックするためには、MGLはその上位ノード全体をIS(またはIX)でロックしてから、対象ノードをS(またはX)でロックする。従って、他のトランザクションはその上位ノードをX(またはSとX)でロックすることができない。

MGLのロックモードの比較表を以下に示す。左端のモードでロックされているノードに上端のモードでロックしようとした場合にロックできるかどうかを示している。

IS IX S SIX X
IS Yes Yes Yes Yes No
IX Yes Yes No No No
S Yes No Yes No No
SIX Yes No No No No
X No No No No No




固有名詞の分類


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

複数粒度ロックのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



複数粒度ロックのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアの複数粒度ロック (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2025 GRAS Group, Inc.RSS