スケーラブルデータベースサーバ HiRDB Version 8 システム導入・設計ガイド(Windows(R)用)
通常,バックエンドサーバがアクセスできるのは,バックエンドサーバ下のRDエリアだけです。そのため,表の検索や更新時はできるだけ表を分割して格納した方が並列処理ができ,処理速度が向上します。しかし,複数のトランザクションからアクセスが集中し,かつ分割が難しい表などの場合,共用RDエリアに格納することで並列処理の効率が上がります。共用RDエリアとは,すべてのバックエンドサーバからアクセスできるユーザ用RDエリアのことです。共用RDエリアに格納する表を共用表,インデクスを共用インデクスといい,すべてのバックエンドサーバから参照できます。共用RDエリアに格納できるのは,共用表及び共用インデクスだけです。共用RDエリアの概要を次の図に示します。
なお,共用RDエリアを定義できるのはHiRDB/パラレルサーバだけです。
図14-5 共用RDエリアの概要
全バックエンドサーバが共用RDエリアにアクセスできるため,並列処理の効率が上がります。
次の場合に共用RDエリアの使用をお勧めします。
共用RDエリアを使用するには,次のように指定します。
図14-5の場合の,データベース構成変更ユティリティ(pdmod)の制御文の例を次に示します。
create shared rdarea RDSHR01 globalbuffer buf01 for user used by PUBLIC server name BES3 …更新可能バックエンドサーバの指定 open attribute INITIAL page 4096 characters storage control segment 20 pages file name "\HiRDB\DATABASE\SHR1\rdshr01_f01" …ファイル名 initial 10000 segments ; |
共用RDエリアを更新する場合,LOCK文でIN EXCLUSIVE MODEを指定し,全バックエンドサーバの共用RDエリアに排他を掛けなければ実行できません。ただし,インデクスキー値を変更しないUPDATE文は,LOCK文を発行しないで実行できます。共用表の更新については,「12.18.3 共用表の操作」を参照してください。なお,共用表及び共用インデクスの更新はCOMMIT文発行時にディスクに書き込まれます。
共用RDエリアへのアクセスは,各バックエンドサーバで個別に管理されます。このため,障害発生時に,バックエンドサーバ間で閉塞状態が異なる場合があります。データベース構成変更ユティリティ(pdmod)や,データベース回復ユティリティ(pdrstr)を実行する場合は,pdholdコマンドで全バックエンドサーバ下の共用RDエリアの閉塞状態を一致させる必要があります。なお,pddbls -mコマンドで全バックエンドサーバの共用RDエリアの状態を表示できます。
ユティリティ及び運用コマンドで共用RDエリア,共用表,又は共用インデクスを対象とする場合,HiRDBが内部的にLOCK TABLE文を発行し,全バックエンドサーバ下の共用RDエリアに排他を掛けることがあります。このため,共用RDエリア内の表やインデクスにアクセス中の業務があると,デッドロック,又はサーバ間のグローバルデッドロックが発生することがあります。ユティリティ及び運用コマンド実行時は,対象となる共用RDエリアをコマンド閉塞しておいてください。
All Rights Reserved. Copyright (C) 2006, 2016, Hitachi, Ltd.