意図的ロック
Intention Lock
いとてきろっく
階層的なロック粒度を管理するための補助的なロック。上位レベル(テーブル)に意図共有ロック(IS)や意図占有ロック(IX)を設定し、下位レベル(行)でのロック取得の意思を示す。ロック競合の判定を効率化する。
トランザクション管理 > ロック方式
関連キーワードの用語
DBロック
トランザクションがデータにアクセスする前に、他のトランザクションのアクセスを制限するための仕組み。共有ロック(読取り用)と占有ロック(更新用)がある。
DB楽観的制御方式(楽観的ロック)
トランザクション実行中はロックを取得せず、コミット前に競合が発生していないか検証する方式。読取り→検証→書込みの3フェーズで処理する。競合が少ない環境で高いスループットを実現する。
DBデッドロック
2つ以上のトランザクションが互いに相手のロック解放を待ち合い、処理が永久に進まなくなる状態。待ちグラフによる検出や、タイムアウトによる検出を行い、一方のトランザクションをアボートして解消する。
DB共有ロック(Sロック)
データの読取り時に取得するロック。同一データに対して複数のトランザクションが同時に共有ロックを取得でき、他の共有ロックとは共存するが、占有ロックとは排他的である。
DB占有ロック(Xロック)
データの更新(INSERT、UPDATE、DELETE)時に取得するロック。同一データに対して他のいかなるロック(共有・占有)とも排他的であり、ロックを取得したトランザクションのみがアクセスできる。
DBロック粒度
ロックを取得するデータの単位。行ロック、ページロック、テーブルロック、データベースロックなどがある。粒度が細かいほど同時実行性は高まるが、ロック管理のオーバーヘッドが増大する。