9.1.3 マルチフロントエンドサーバの設定
HiRDB/パラレルサーバでは複数のSQLを複数のバックエンドサーバを使用して並列に処理しています。フロントエンドサーバは,SQLの解析処理,SQLの最適化処理,各バックエンドサーバへ処理の指示や検索結果の編集処理などをしています。したがって,高トラフィックなシステムではフロントエンドサーバの負荷が高くなり,そのため処理性能が向上しなくなります。こういう場合は,フロントエンドサーバを複数設定して,フロントエンドサーバの負荷を分散させてください。これをマルチフロントエンドサーバといいます。
- メリット
-
フロントエンドサーバが稼働するサーバマシンの処理能力ネックを解消し,スケーラブル性をより向上します。
- 適用基準
-
SQL処理のCPU負荷が高く,一つのサーバマシンだけで処理しきれない場合に適用します。
- 規則
-
フロントエンドサーバは最大1024個設定できます。
- サーバマシンとの関係
-
一つのユニットに複数のフロントエンドサーバを設定できません。また,特定のユニットにフロントエンドサーバを設定しないこともできます。マルチフロントエンドサーバの構成例を次の図に示します。
図9‒2 マルチフロントエンドサーバの構成例
- 〈この項の構成〉
(1) 接続するフロントエンドサーバの選択
複数あるフロントエンドサーバのうち,UAPがどのフロントエンドサーバに接続するかは,次に示すどちらかが決定します。
-
クライアントユーザ
接続するフロントエンドサーバをクライアント環境定義のPDFESHOSTオペランドなどで指定します。
-
HiRDB
接続するフロントエンドサーバをHiRDBが自動的に決定します。
接続するフロントエンドサーバをクライアント環境定義で指定しない場合,HiRDBが任意のフロントエンドサーバにUAPを接続させます。
(2) 環境設定
マルチフロントエンドサーバを実行するために,特に指定は必要ありません。
ただし,次に示すオペランドの指定値に注意してください。このオペランドの指定値の目安については,マニュアル「HiRDB Version 9 システム定義」を参照してください。
-
pd_max_dic_process
-
pd_max_bes_process
(3) HiRDB管理者の運用
HiRDBシステム定義のオペランドの指定やシステムファイルの作成個数などの環境設定方法は変わりますが,運用方法は変わりません。
(4) マルチフロントエンドサーバ構成での,挿入又は更新時刻による並べ替え
マルチフロントエンドサーバ構成で,表定義時にCURRENT_TIMESTAMPを既定値とするDEFAULT句を指定した時刻印型の列を含む表を,行の挿入又は更新時刻で並べ替える場合,注意が必要です。
マルチフロントエンドサーバの場合,UAPと接続したフロントエンドサーバが現在の時刻印を取得し,その値を時刻印列の既定値として設定します。ただし,フロントエンドサーバがあるユニット間でシステムの時刻が異なることがあるため,時刻印列の値で並べ替えた順番と,実際に行を挿入又は更新した時刻で並べ替えた順番が一致しない場合があります。
順番を一致させるには,表定義時にCURRENT_TIMESTAMP USING BESを既定値とするDEFAULT句を時刻印列に指定します。USING BESを指定すると,その列に既定値を挿入又は既定値で更新時,挿入又は更新する行を格納するRDエリアを管理するバックエンドサーバで現在の時刻印を取得し,その値を挿入,又はその値で更新します。そのため,時刻印型の列で並べ替えた順番と,実際に行を挿入又は更新した時刻で並べ替えた順番は,行を格納するRDエリアを管理するバックエンドサーバがあるユニット単位で一致させることができます。
USING BESの指定有無と現在の時刻印を取得するサーバを次の表に示します。
USING BESの指定有無 |
現在の時刻印を取得するサーバ |
---|---|
なし |
UAPと接続したフロントエンドサーバ |
あり |
挿入,又は更新する行を格納するRDエリアを管理するバックエンドサーバ |
- 注意事項
-
-
表を分割していて,表格納用RDエリアを管理するバックエンドサーバが複数のユニットにわたっている場合,時刻印型の列の値で並べ替えた順番と,実際に行を挿入又は更新した時刻で並べ替えた順番とが一致しないことがあります。
-
共用表の場合,排他モードで表に排他を掛けた後でないと,時刻印型の列に既定値を挿入したり,既定値で更新したりできません。
-
データベース作成ユティリティ(pdload)を使用して表にデータを格納する場合,起動したユニットでユティリティを起動した時刻印が設定されます。
-
(5) クライアントユーザの運用
接続するフロントエンドサーバをクライアントユーザが決める場合は,接続するフロントエンドサーバをクライアント環境定義で指定します。高速接続機能を使用する場合とFESホストダイレクト接続機能を使用する場合とで指定するクライアント環境定義が異なります。指定する必要があるクライアント環境定義を次の表に示します。クライアント環境定義については,マニュアル「HiRDB Version 9 UAP開発ガイド」を参照してください。
クライアント環境定義 のオペランド |
接続する フロントエンドサーバ を指定しない場合 |
接続するフロントエンドサーバ を指定する場合 |
|
---|---|---|---|
FESホスト ダイレクト接続 |
高速接続 |
||
PDHOST |
○ |
○ |
○ |
PDFESHOST |
− |
○ |
○ |
PDNAMEPORT |
○ |
○ |
○ |
PDSERVICEPORT |
− |
− |
○ |
PDSERVICEGRP |
− |
○ |
○ |
PDSRVTYPE |
− |
− |
○ |
- (凡例)
-
○:必ず指定します。
−:指定する必要はありません。
(a) どのフロントエンドサーバを指定するかの目安
-
アクセスするRDエリアを管理するバックエンドサーバがあるサーバマシンのフロントエンドサーバを指定することをお勧めします。
-
用途に応じて接続するフロントエンドサーバを使い分けることをお勧めします。例えば,一般の情報検索処理用,バッチUAP処理用,OLTP下のUAP処理用などにフロントエンドサーバを使い分けることをお勧めします。
(b) HiRDBサーバへの接続時間
HiRDBサーバへの接続時間は,次に示す順番どおりに短縮されます(1が最も短縮されます)。
-
高速接続機能
-
FESホストダイレクト接続機能
-
接続するフロントエンドサーバを指定しない場合