|
| 機能と特徴 |
QueryMasterシステムでは、バックエンドの各DBノードは、互いに独立で、独自のリソース(CPU、メモリーやディスク I/O チャンネル等)で稼動し、かつ、同一のデータベースコンテンツ(PostgreSQLのシステムテーブルや表領域、設定ファイル等)を各DBノードが自身のストレージでそれぞれ保持したうえで、データベース処理を実行します。このようなアーキテクチャーを採用することにより、以下の特徴的機能を提供しています。 |
| |
クエリベースの負荷分散
QueryMasterは、クエリベースの負荷分散を、様々な負荷分散アルゴリズムを用いて実行します。例えば GROUP BY .. ORDER BY ...等が含まれるSELECT処理では、ロードバランスを行うことにより性能の向上(レスポンスタイム短縮)を実現します。また、更新が含まれるトランザクションでも、その中に参照系の SQL文が含まれるケースでは性能向上が見込めます。負荷分散アルゴリズムとしては、ラウンドロビン、ランダム、DBノードの負荷によって分散するインテリジェンス・ロードバランスの大きく3種類が存在します。
また、QueryMasterサーバーが更新系の SQL文を受け取った場合は、その命令をバックエンドの全てのDBノードに対して同時に適用します。つまり、各DBノードでは全く同一のデータベースコンテンツを保持することになります。したがって、DBノードを構成するハードウエア障害に対して可用性を大きく向上させることが出来ます。QueryMasterは、データベースとして利用頻度が高く、一般的に処理コストの高い検索系SQLを負荷分散することで高いレスポンスを実現しています。 |
| |
DBノードの冗長化
DBノードのいずれかに障害(ハードディスククラッシュ、電源障害、OS障害、等)が発生した場合や、OSバージョンアップなどの計画停止においても、QueryMasterサーバーは、残りの稼働DBノードを用いた縮退運転にて、データベース・クライアントからの SQL文をサービス停止時間ゼロで継続処理することが出来ます。
また、DBノード障害発生後のリカバリ時は、GUI管理画面を用いて、停止したノードのデータベースコンテンツをバックグラウンドで再同期化させたのち、再びサービスに参加させ(QueryMasterバックエンドDBノードクラスターへの追加)、通常運転に容易に移行することが可能です。
 |
| |
QueryMasterサーバーの冗長化
QueryMasterは、プライマリとスタンバイ(セカンダリ)の一対のQueryMasterサーバーが、仮想 IP アドレスを用いてアクティブ・スタンバイ構成をとり、冗長化されています。スタンバイQueryMasterサーバーは常にプライマリQueryMasterサーバーを監視し、もし、プライマリQueryMasterサーバーの応答が正しくなかった場合、自動的にプライマリQueryMasterサーバーとしての動作に切り替わります。
プライマリQueryMasterサーバーの停止は、DBクライアントから見た場合、この時、一瞬DB接続がきれることでDBサービスの中断(タイムアウトなど、)と認識されますが、サービスは数秒で復旧し、DBクライアントからの再接続が可能になります。
 |
| |
GUI ベースの運用管理
QueryMasterシステムの運用管理は、管理ノード(QueryMasterマネージャー)のブラウザからGUI を用いて行ないます。管理ノードは、QueryMasterサーバーと同じサブネットに属するコンピュータで、フレームセットをサポートするWebブラウザーが動作するものであれば、機種を問いません。(QueryMasterサーバーで代用することも可能。)QueryMasterシステムでは、このQueryMasterマネージャーにより、導入時の設定から、サービスの停止と開始、負荷分散アルゴリズムの動的な選択、統計解析など、迅速かつ容易な運用管理を実現しています。
 |
| |
スケーラビリティと高い運用性能
QueryMasterは新規DBノードの動的追加に対応しており、DBノードを追加することで、仮想データベース全体としての処理性能をスケーラブルに向上させることが可能です。このため、システムに要求される処理能力に応じた計画的投資が容易となります。また、仮想データベースからのDBノードの切り離しがWebベースの管理ツールから実行可能なため、システムメンテナンスにおける計画停止を縮退運転を利用しながらノンストップで実現可能です。 |
| |
オープンソース・データベースソフトウェアPostgreSQL
QueryMasterは、高機能なオープンソース・データベースソフトウェアであるPostgreSQLをベース・データベースとして利用しており、仮想データベースとして大規模データベースシステムを構築した際にもTCOの削減が可能です。また、データベースにアクセスするクライアントは、PostgreSQL が提供する、さまざまな接続インターフェース(JDBC、ODBC、PHP、perl、libpqなどの各種ライブラリ)を用いてアクセスすることが出来ます。 |
|