Hitachi

ノンストップデータベース HiRDB Version 10 解説


6.10.1 排他制御の単位

排他制御の単位とその包含関係について説明します。

〈この項の構成〉

(1) 排他資源とその包含関係

HiRDBは排他資源という単位で排他を掛けて,不正に参照されたり,更新されたりすることを防止しています。排他制御では排他資源の上位から下位へと順番に排他が掛けられます。排他を掛けていく途中で同一資源に対して,ほかのトランザクションと同時に実行できないトランザクションがある場合には,そのトランザクションは待ち状態になります。

また,排他資源には包含関係があるため,上位の資源で排他を掛けると,それより下位の資源には排他を掛ける必要がなくなります。排他資源とその包含関係を次の図に示します。例えば,表とページとの関係では,表が上位,ページが下位の排他資源です。

図6‒25 排他資源とその包含関係

[図データ]

注※1【UNIX版限定】

インナレプリカ機能使用時の最上位排他資源は,インナレプリカ構成管理情報,又はレプリカグループ構成管理情報となります。

インナレプリカ構成管理情報の排他を取得できない場合に,レプリカグループ構成管理情報の排他を取得します。レプリカRDエリアを定義していないRDエリアにアクセスする場合でも,排他が掛かります。これによって,業務実行中に通常RDエリアにレプリカRDエリアが定義されたり,インナレプリカグループ内の構成が変わったりすることを抑止します。

注※2

一時表の実体化時に,一時的に取得します。一時表に対する操作で取得される排他については,マニュアル「HiRDB システム導入・設計ガイド」を参照してください。

注※3

インデクスキー値無排他を適用した場合,キー値には排他を掛けません。インデクスキー値無排他については,マニュアル「HiRDB UAP開発ガイド」を参照してください。

注※4

論理ファイルはプラグインが使用するファイルです。

(2) 最下位の排他資源の単位設定

HiRDBが自動的にする排他制御に対して,表ごとに最下位の排他資源の単位を設定できます。最下位の排他資源の単位,設定方法及びそれぞれの長所と短所を説明します。

(a) 行単位の排他制御

最下位の排他制御の単位を行にしたい場合には,定義系SQLのCREATE TABLELOCK ROWを指定します。最下位の排他制御の単位が行の場合の排他制御を行排他といいます。ページ排他と比較して排他資源の単位が下位であるため,同時実行性が向上します。しかしその反面,排他制御による処理時間やメモリ使用量が増加します。

(b) ページ単位の排他制御

最小の排他制御の単位をページにしたい場合には,定義系SQLのCREATE TABLELOCK PAGEを指定します。最下位の排他制御の単位がページの場合の排他制御をページ排他といいます。行排他と比較して排他資源の単位が上位であるため,排他制御による処理時間やメモリ使用量が減少します。しかし,その反面,同時実行性が低下します。