「InfiniDB 4.5」の主要な新機能について説明します。

ローカル PM 問い合わせ


InfiniDBのマルチ/セパレート構成でPMからInfiniDBに接続することができるようになりました。
PMに接続できることでテーブルの大量データをファイルに出力などUMとPM間で発生するデータフローがなくなりネットワークボトルネックが解消されます。
そのため、アプリケーションのパフォーマンス影響を抑えつつ、PMでデータメンテナンス作業などが行えます。
設定は特になく、インストール時にオプションを付けるだけです。


■概要図

下図の例2のように、PM1側に接続した場合はPM1のデータのみが検索対象となります。

20040703_PM_Query


■インストール

postConfigureコマンドに”-lq”オプションを付けてインストールします。




■設定

インストールでPMのmy.cnfに以下の設定がされます。




*詳細は「InfiniDB マルチUM構成ガイド」を参照してください。



ビューの検索パフォーマンス向上


InfiniDBでは、SQLのWHERE句で条件指定をするとエクステントマップが使用され、必要なデータを含むエクステントだけがアクセス対象となります。
しかし、「InfiniDB 4.0」までは、ビューに対するSQLでは、WHERE句を指定してもエクステントマップが有効になりませんでした。

エクステントマップが使用されないビュー検索の例) ※v_test1はビューとする。


「InfiniDB 4.5」からは、ビューに対してWHERE句を使用した場合もエクステントマップが使用されるようになりました。


[実行例]

■ビュー作成



■ビューに条件を付けて検索



■実行時間

「InfiniDB 4.0」以前



「InfiniDB 4.5」



検索結果は同じですがパフォーマンスは大きく向上しています。
これは、ビューのSQLが条件を付けて実行されたため、検索対象のエクステントが絞り込まれ、読込むブロックが減った結果パフォーマンスが向上しています。

また、「InfiniDB 4.0」まで、以下のようにUNION ALLを含むビューを作成した場合はビューに対するSQLで特定の列を指定しても、ビューに含まれる全ての列が読み込み対象となっていました。



上記ビューに以下のSQLを実行した場合、InfiniDB 4.0ではcol2も読み込み対象となってしまいます。



しかし、「InfiniDB 4.5」からはUNION ALLを含むビューにおいても列の絞り込みが行われるようになったため、上記例ではcol1だけが読み込み対象となります。
そのため、このような処理においても、検索パフォーマンスが向上しています。


マルチUM構成時のUMデータの自動同期


「InfiniDB 4.0」までUM間のデータ同期方法としては以下の2つがありました。

1.フロントエンドディレクトリのコピー
  
   Linuxのrsyncコマンドでデータ同期をとる

2.コマンドの手動実行

   DDLを全てのUMで実行し同期をとる
   InfiniDB以外の表のDDL、DML、インポートを全てのUMで実行し同期をとる

「InfiniDB 4.5」からはMySQLのレプリケーションを使用することで、UMデータの自動同期が可能になりました。
設定は特になく、インストール時にオプションを付けるだけです。


■概要図

下図の右側のように「InfiniDB 4.5」からDDLを含めUM間で同期をとります。

UM_Replication


■インストール

postConfigureコマンドに”-rep”オプションを付けてインストールします。



■注意点

スレーブサイトでは、MyISAMテーブルのDDLやDMLが実行できてしまうため注意が必要です。