はじめに

複数ノード構成時のアーキテクチャについてご紹介します。


Verticaはマスターノードが不要

Verticaでは複数ノード構成時に「マスターノード」という概念が存在しません。このため、全てのノードはクライアントからの接続を受け付けることができます。

処理の流れを纏めたのが以下の図1です。

001_Initiator

図1:クライアントからの接続要求のイメージ図
※クリックすると拡大表示できます



<大まかな処理ステップ>
 ①クライアントからクエリが実行されると、
  接続を受け付けたノードがイニシエータとなります。

 ②各エグゼキュータに処理命令を送ります。

 ③エグゼキュータは受け取った処理命令を実行し、
  結果をイニシエータに返します。

 ④最後にイニシエータは結果を集計し、
  クライアントに結果セットを返します。



他の製品とのMPPアーキテクチャの違い

他の製品ではマスターノードが存在するため、同時実行性が低くパフォーマンス面でボトルネックになる傾向があります。しかしVerticaの場合には、マスターノードが無いため、任意の1ノードに接続後にイニシエーターが処理をコントロールします。

他の製品とのMassively Parallel Processor(MPP)を比較したのが以下の図です。

002_MPP

図2:MPP構成の比較
※クリックすると拡大表示できます



Verticaではどのノードもエグゼキュータになることができるという特徴もあるため、他製品と比べて高い同時実行性を誇ります。



参考

以下の記事では、複数ノード構成のメリットについてご紹介しています。合わせてご確認ください。

Verticaノードのクラスタ
http://vertica-tech.ashisuto.co.jp/node_cluster/