はじめに

本記事では、Vertica 9.1から使用可能になったデータベースモードの1つであるEonモードの概要についてご紹介します。
ワークロードの制御に優れており、ワークロード間の相互影響を排除したい場合などに有効な機能です。

Eonモードの概要

Eonモードはデータベースのストレージレイヤーと計算プロセスを分離する点に最大の特徴があります。
これらを分離することにより、データを単一の場所(AWSのS3)に保存し、ワークロード量に応じて計算ノードの数を柔軟に変更することが可能となります。



なお、Eonモードの構成は非常に容易に行うことができます。詳細は以下のマニュアルをご覧ください。

Using Eon Mode

Eonモードアーキテクチャ

Eonモードは、AWSのEC2インスタンスとS3(共有ストレージ)を使用して構成します。
EC2インスタンスが計算プロセスを、S3がストレージレイヤーを担います。
それぞれに次のような特徴があります。

ストレージレイヤー(S3)

すべてのデータとカタログ(メタデータ)がS3上に保存されます。
保存されたデータはシャードと呼ばれる単位に分割され、計算ノードから読み取りが行われます。
(シャードの数はデータベース作成時に設定します)

計算ノード(EC2インスタンス)

計算ノードは、すべてのデータ処理と計算を担当し、各ノードがS3に保存された1つ以上のシャードをサブスクライブします。
S3から読み取られたデータ(カタログを含む)は、デポと呼ばれるコンポーネント(EC2インスタンス上のローカルディスク)に保持されます。
また、データベースにロードされたデータも一時的にデポに保存され、順次S3への書き込みが行われます。
一般的にS3の読み取り、書き込みはローカルディスクに比べ低速であるため、デポがキャッシュの役割を果たしデータベースの高いパフォーマンスを提供します。



分離構成によるメリット

次のようなメリットがあります。
-データが一ヶ所にまとまっていることで、柔軟な計算ノードの拡張が可能である。
 また、計算ノードを増減した際もディスク上のデータリバランスが不要である。

-S3の高い耐久性(99.999999999%)により、ストレージ障害によるデータ損失の影響を受けにくい。

-Enterpriseモードのように計算ノードのローカルディスク容量によるデータ保存量の制限を受けない(*)

(*)ライセンスで許可されているデータ容量が上限

Eonモードの活用方法

次に紹介するような活用方法が考えられます。

高速スケーリング

データベースの高速なスケーリングを行うことができます。
以下の例ではノード数4、シャード数8の状態から、さらに4ノードを追加することで、各計算ノードがサブスクライブするシャード数が1となり、処理の高速化に期待できます。



サブクラスタの構成

Verticaのフォールトグループ機能を利用し、サブクラスタを構成することができます。
サブクラスタを構成することで、ワークロードを完全に分離することが可能となり、処理競合やリソースの枯渇といった事象の抑止に期待できます。



たとえば、次のようなワークロードの分離が考えられます。
-データ検索処理とデータロード処理の分離
-定型クエリとアドホッククエリ(データサイエンスなど)の分離

サブクラスタを複数構成することも可能なため、上記以外にもシステムのワークロードにあわせた柔軟な構成を取ることが可能です。

注意点

Eonモードには以下のような注意点があります。
・AWSのみに構成が可能(Vertica 9.2現在)
・データベース作成後にデータベースモード(Eonモード⇔Enterpriseモード)の変更は不可
・S3からの読み取りは低速であるため、データベース起動直後は良く使われるクエリなどを手動実行し、ウォームアップ(デポ上にデータをキャッシュ)する必要がある

検証バージョンについて

この記事の内容はVertica 9.2で確認しています。

更新履歴

2019/08/16 本記事を公開