噂の超高速分析データベースを試してみよう~ログ解析,機械学習なんでもござれ~

第2回 あのシステムもビッグデータ分析や機械学習に活用中! 超高速データベース「Vertica」とは?[前編②]

この記事を読むのに必要な時間:およそ 3 分

前回紹介した列指向/分散型データベースの課題を,Verticaはどのように解決しているのでしょうか。今回はVerticaの強みについて,具体的に見ていきましょう。

Verticaの強み①─⁠─真のMPPアーキテクチャ

Verticaがほかの分散型データベース製品と大きく異なるのは,⁠マスタノード」⁠リーダーノード)が存在しない点です。Hadoopも含め多くの同型の他製品は,処理を受け付けるメインの独立したノードが存在します。同時処理するアクセス数が多くなると,配下で処理をするノードのリソースに余裕があっても,このマスタノードがボトルネックになってしまうケースがあります図1)⁠

図1 一般的なMPPでのマスタノードの弱み

図1 一般的なMPPでのマスタノードの弱み

それに対して,Verticaではマスタノードのおもな役割であるSQLリクエストの受け付けをどのノードでも担うことができます。図2の例では,SQLを受け付けたノード2がリーダーノードとして機能し,ノード1,ノード3へ処理を指示しています。Verticaでは,このリーダーの役割を行うノードをイニシエータと呼び,その他のノードをエグゼキュータと呼びます。イニシエータは固定する必要がなく,どのノードでもイニシエータになります。

図2 VerticaでのMPP

図2 VerticaでのMPP

これによって,マスタノードが一般的に抱える問題であるアクセス集中のボトルネックを解消できることから,Verticaのアーキテクチャは真のMPPであると言えるでしょう。Verticaは相対的に「同時処理に強い」と評価されますが,その理由の一つがこの点にあります。

なお,可用性の観点でも,マスタノードが単一障害点(SPOF)にならないという点は重要なポイントです。

ネイティブロードバランサ

Verticaでは,特定ノードへのアクセス集中を抑えるためのロードバランス機能が提供されています。高価なロードバランサを用意しなくても,クライアントドライバとして用意されているJDBC,ODBC,ADO.NETでロードバランスの設定を行えば容易にアクセス分散を実現できます図3)⁠

図3 Verticaのロードバランサ

図3 Verticaのロードバランサ

ただし,現状で設定できるバランシングモードはラウンドロビンもしくはランダムな分散だけです。簡易的ではありますが,実用に耐える最低限の機能は持ち合わせているため,多くのユーザーはこの機能を活用しています。

なお,接続先のノードに障害が発生した場合に備え,接続時フェイルオーバーの機能も実装されています。ここでは同時処理の強みの話から少しそれるため詳細は省きますが,下記の「Vertica技術サイト」で詳しく紹介しています。

Verticaの強み②─⁠─ワークロード管理機能

Verticaには,クエリの同時処理を上手にさばくアーキテクチャに加え,優れたワークロード管理機能が備わっています。

ワークロード管理の機能によって,コンピュータリソースのワークバランスを設定できます。従来のデータベースではポピュラーな機能と言えますが,列指向型データベースではまだ実装できていないものも多くあります。その点,Verticaにはリソースマネージャと呼ばれる機能があり,ワークバランスを非常にきめ細かく柔軟に設定できます。

たとえば,定型レポート(ショートクエリ:それほど時間のかからない軽めのSQL)と自由検索処理(ロングクエリ:時間のかかる重いSQL)⁠さらにニア・リアルタイムでロード処理を行う,といった処理を同一システムで行っているケースをイメージしてみてください。このようなシステムでよくある課題は,ショートクエリがロングクエリやロード処理と同時実行されたことで大幅に性能劣化してしまうというケースです。どのような処理が実行されていても,ショートクエリには影響が出ないようにしたい,というニーズはよく聞く話です。

ワークロード管理は,まさにそのようなニーズに応えます。たとえば図4では,ショートクエリを実行する「一般ユーザー」にCPUリソースをより多く割り当てるような設定を行っています。他製品ではメモリの制御しかできないものなどがありますが,Verticaのワークロード管理機能は,CPU,メモリ,同時実行可能数なども細かく設定できるところが強みです。

図4 Verticaのワークロード管理

図4 Verticaのワークロード管理

著者プロフィール

倉岡洋義(くらおかひろよし)

株式会社アシスト データベース技術本部 技術統括部 技術1部4課

学生時代に研究室のSunワークステーションの管理者になったのをきっかけにSIerに就職。

Linux系インフラエンジニアの道を歩みながら,Oracle RACのクラスタリング技術に衝撃を受けてアシストに転職。

Oracle,InfiniDBを経て現在はVerticaデータベースを担当。

趣味はピアノと筋トレ。

コメント

コメントの記入