ロック粒度 【lock granularity】

概要

ロック粒度(lock granularity)とは、並行処理で複数のプログラムが同じ資源に同時にアクセスしないよう一時的にアクセスを抑止する「ロック」機構で、ロックの対象とする資源の範囲や単位のこと。

例えば、リレーショナルデータベースRDB)の場合、あるプログラムがあるデータベースのあるテーブルのあるレコードアクセスする際にロックの対象範囲として、「当該データベース全体」「当該テーブル」「当該テーブルの当該レコードを含む記憶装置上のブロック」「当該レコード」などが考えられる。

データベース全体のように広い範囲をいっぺんにロックすることを「ロック粒度が粗い」あるいは「ロック粒度が大きい」という。逆に、レコード単位のように小さな範囲だけロックすることを「ロック粒度が細かい」あるいは「ロック粒度が小さい」という。

ロック粒度が粗い場合、ロックに伴う処理の負担は小さいが、広範囲をロックするため競合状態が起きやすく、ロック解放の待ち時間が長くなり、並列に実行できるトランザクションの数は少なくなる。ロック粒度が細かいと、これとは逆にロック処理の負担は大きくなるが、競合が起きにくく、待ち時間は短くなり、トランザクションの並列度を高めやすくなる。

データベース管理システムRDBMS)は主にテーブル単位のロック(テーブルロック)と行単位のロックロック/レベルロック)に対応しており、SQL文の記述などでどちらを適用するか選択できるようになっていることが多い。

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