検索

線形的なスケーラビリティを実現するシェアード・ナッシング


線形的なスケーラビリティと多面的なスケーラビリティ

データウェアハウスは、使えば使い込むほど、その履歴データ、取り扱うサブジェクト、ユーザーやアプリケーションが増えるという特徴があるため、このようなビジネス・ニーズの変化に柔軟に対応できる能力が求められます。

線形的なスケーラビリティとは、CPU の数に応じてパフォーマンスを直線的に向上できることを言います。スケーラビリティが線形的であれば、システム増設に伴うパフォーマンスの向上が予測可能になります。また、パフォーマンスの頭打ちが発生しないため、均一の投資で同じ効果を得ることができます。一方、スケーラビリティが線形的でないと、ある水準以上のパフォーマンスを得るには多額の投資を必要とし、場合によっては、いくら投資しても必要なパフォーマンスは得られないというケースがあります。

データウェアハウスに求められるパフォーマンス向上とは、例えば CPU数を 2倍にすることで、“同じ処理が半分の時間で終わる”、あるいは、“同じ処理時間で同時に実行できるユーザーの数を倍に増やせる”、といったことを意味します。

このようにデータウェアハウスは、ユーザー数を増やしたために応答時間が犠牲になるとか、複雑なクエリーを実行するためにデータ量を減らさなければならない、等の制限があってはなりません。データ量の増加や、ユーザーやアプリケーションの追加が、他に悪影響を与えることなく柔軟に対応できる必要があります。これを多面的なスケーラビリティと言います。(図1)

Teradata なら、線形的なスケーラビリティと多面的なスケーラビリティを同時にサポートすることができます。

SMP、クラスター、そしてMPP

コンピュータの CPU数を増やすには、単一のノード内で増やす方法(ラージ SMP や NUMA)と、ノード数を増やす方法(クラスターや MPP)があります。(図2)

SMP とは、1台のコンピュータに複数の CPU を搭載し、それぞれの CPU が作業を対等に行なうことで処理能力の向上を図るシステムです。複数の CPU が対等な処理を行なうには、共有のメモリー空間にアクセスする必要があります。そのため、1台の SMP の CPU を一定数以上に増やしても、メモリーアクセスで競合が発生し、性能は向上しません。

SMP のメモリー共有による欠点を補う目的で考えられたのがクラスターです。クラスターは複数の SMPノードを機器間通信バスで接続し、ディスクを共有します。しかし、メモリーアクセスのボトルネックは回避できても、依然としてディスクアクセスで競合が発生するため、ノードを増やしても性能の向上には限界があります。

Teradata が採用している MPP は、クラスターと同様に複数の SMPノードを機器間通信バスで接続し、さらにディスクを共有しません。その結果、ノードを増やしても競合が一切発生せず、線形的なスケーラビリティを得ることが可能になります。(図3)

Teradata の機器間通信バスは、Bynet という非常にユニークなアーキテクチャを採用しています。Teradata の特許であるこの Bynet は、システムにノードを追加すると、ネットワーク全体の通信帯域幅が線形的に拡張する仕組みになっています。このように、Teradata の MPP構成は、線形的なスケーラビリティの弊害になりうる、あらゆる要素を排除しています。

シェアード・ナッシング・アーキテクチャ

シェアード・ナッシングというアーキテクチャがある以上、シェアード・エブリシングというアーキテクチャも当然存在します。シェアード・エブリシングとは、全ての検索プロセスが論理的にデータを共有する構造です。複数のプロセスがデータを共有することで、あるプロセスで障害が発生しても他のプロセスが同一データにアクセスできることから、障害に強い構成であると言われています。しかし、全ての検索プロセスが共通の論理データにアクセスすることで競合が発生し、検索プロセスの並列度を増やしても、ある時点で処理性能に限界が生じてしまいます。

Teradata は、MPP構成の採用によってシェアード・ナッシングを実現しています。シェアード・ナッシングは、それぞれの検索プロセスに対してデータが論理的に分散されている構造です。一つの検索プロセスが担当するデータは、他の検索プロセスから見られないため、一般的にはそのプロセスに障害が発生した場合にデータが孤立してしまうという欠点があります。(もちろん、Teradata はそのような障害が発生しても大丈夫なように設計されています。) しかし、各検索プロセスにデータが割り当てられているので、並列度を増してもデータアクセスの競合は発生しません。並列度を増やせば増やすほど、それに応じて直線的に処理性能が伸び、高いスケーラビリティを維持することができます。(図4)

Teradata というとテラバイト級の大きなシステムばかりを想像される方が多いのですが、実際はそのようなことはありません。Teradata の強みは、比較的小さなサイズのシステムから非常に大規模なシステムまで、線形的なスケーラビリティを維持できることにあります。そのため、長期に渡って企業戦略を支える“先の読める”システム構築が可能です。今抱えているビジネスの課題を解決するのに必要なサイズから始めて、ビジネス要件に応じて柔軟に拡張することができます。無駄な先行投資は止めて、Teradata で最大の投資効果を実現しましょう。