Hitachi

HiRDB データ連動機能 HiRDB Datareplicator Version 10


3.3.3 反映処理の方式

反映処理の方式には,トランザクション単位反映方式と表単位反映方式の二つがあります。どちらの方式にするかは,反映環境定義で指定します。システム設計の詳細については,「4.7.3(1) 反映処理の方式の設計」を参照してください。

〈この項の構成〉

(1) トランザクション単位反映方式

反映処理に反映プロセスと反映SQLプロセスを一つずつ割り当てて反映する方式をトランザクション単位反映方式といいます。トランザクション単位反映方式では,反映情報キューファイルから一つずつトランザクションを読み込んで,逐次HiRDBに反映します。

トランザクション単位反映方式のプロセス構成を次の図に示します。

図3‒23 トランザクション単位反映方式のプロセス構成

[図データ]

(2) 表単位反映方式

一つ又は複数の反映対象表ごとに反映グループを作り,各グループに並行に反映する方式を表単位反映方式といいます。

各反映対象表の更新量が均等であれば,反映処理の性能向上が期待できます。一方で,起動プロセス数が増えてメモリの使用量が多くなるため,メモリ容量を考慮した上で選択してください。

表単位反映方式には,次に示す種類があります。

表単位反映方式のプロセス構成を次の図に示します。

図3‒24 表単位反映方式のプロセス構成

[図データ]

(a) 表単位分割方式

一つ又は複数の反映対象表ごとに反映グループを作成します。この場合,反映グループごとに反映プロセスと反映SQLプロセスが一つずつ割り当てられます。各反映プロセスは,反映情報キューファイルの更新情報を逐次読み込み,割り当てられた反映グループの表に対してだけSQL文を発行します。

反映側HiRDBがパラレルサーバで,サーバ間横分割していない表の場合に,スループットの向上が期待できます。

(b) キーレンジ単位分割方式

一つの反映対象表で一つの反映グループを作成し,さらに反映グループの中でキーレンジ分割条件を指定します。このとき,反映グループに対して一つの反映プロセスが割り当てられて,さらにキーレンジ分割条件数分の反映SQLプロセスが割り当てられます。反映プロセスは反映情報キューファイルの更新情報を逐次読み込んで,指定した条件に合致する反映SQLプロセスだけがSQL文を発行します。

反映側HiRDBがパラレルサーバで,さらに一つの表を複数のユニットに横分割している場合に,その横分割と同様に反映側Datareplicatorでキーレンジ分割条件を定義すると,スループットの向上が期待できます。

ただし,1回で反映するデータの量が少なかったり,又は反映対象表が大きくなかったりする場合など,反映側HiRDBで負荷が掛からないデータ連動の場合には,キーレンジ分割をしない方がレンジの判定処理を実行しない分,反映処理の性能が良い場合があります。

また,次に示すHiRDBの構成のときは,キーレンジ単位分割方式を使ってもフロントエンドサーバとバックエンドサーバの通信が増えて性能が上がらないことがあります。

  • フロントエンドサーバとバックエンドサーバが異なるマシン上にあるとき

  • HiRDBの表がハッシュ分割されたとき

さらに,キーレンジ分割の条件指定が「一致」又は「範囲指定」だけなので,分割のキーになる列に対して連続した値が送信されると,特定のフロントエンドサーバに処理が集中してしまいます。

上記の理由でキーレンジ分割でも性能が上がらないときは,ハッシュ分割方式を使ってください。

(c) ハッシュ分割方式

一つの反映対象表で一つの反映グループを作成します。このとき,反映グループに対して一つの反映プロセスが割り当てられて,さらにハッシュ分割数分の反映SQLプロセスが割り当てられます。反映プロセスは反映情報キューファイルの更新情報を逐次読み込んで,指定した条件に合致する反映SQLプロセスだけがSQL文を発行します。

キーレンジ分割でも性能が上がらないときに,ハッシュ分割方式を使ってください。ハッシュ分割方式を使うと,キーレンジ分割では1か所に集中していた連続データをハッシュ法で分割できます。特にマルチFES機能を使ったHiRDB/パラレルサーバに反映するときは,ハッシュ分割方式の効果があります。