データベース・クラスタの概要

2010年10月5日(火)

4. Analytic型クラスタ構成

「3. 高可用クラスタ」で説明したHA(High Availability、高可用性)用のクラスタ構成では、データベースを格納しているストレージを切り離すことで、クラッシュした後も利用できるようにしたり、あるいは、データベース自身のコピーを常に持っておくようにすることで、サーバーがクラッシュしてもデータベースが継続処理されるようにしていました。

この方式とAnalytic型では、用途がまったく異なります。Analytic型では、複数台のサーバー機(クラスタ)を、高可用性のために使うのではなく、性能の向上のために利用するのです。

Analytic型が処理対象とするSQL文は、複雑なデータベース解析を行うためのSQL文です。特徴として、HA用のデータベースでは確実に行われる更新処理が、ほとんど行われません。データベースのサイズも大きく、専用のアプリケーションを使って解析用のデータを別のデータベースにロードすることすらあります。

通常のデータベースを使っても、複雑なデータベース解析は可能です。ただし、解析負荷が重いため、24時間かかっても結果が出ない、といったケースもあります。一方、Analytic型のデータベース・クラスタは、このような高負荷な解析のためにあり、高速にSQLを処理できます。

図5に、Analytic型の構成を示します。データベースのデータを小さな単位に分割し、おのおのを個別のサーバーに蓄積します。SQLを処理する際には、専用のSQLプロセッサを用い、元のSQLを、データが格納されているサーバーで処理できるような、小さなSQLに分解します。分解したSQLは、各サーバーで並列に処理します。結果は、マージしてアプリケーションに返します。

図5: Analytic型データベース・クラスタ

このように、並列処理を導入することで、大規模なデータベースに対して複雑なSQLを処理させた場合でも、処理時間を短縮できるようになります。

5. Online型クラスタ構成

Webアプリケーションでは、膨大な数のユーザーにデータベースの内容を提供する必要があります。これを、単一のデータベース・サーバーで行うのは困難です。このような場合にも、アプリケーションの多くがデータベースの読み出し処理だけの場合は、回避策があります。

具体的には、「3. 高可用クラスタ」で示したシングル・マスターの技術を使って、参照用のデータベースを多く作り、このデータをユーザーに提供するやり方が有効です。これをOnline型と呼びます。

図6に、Online型の概要を示します。参照用のデータベースとオリジナルのデータベースが完全に同期している必要もありませんし、オリジナルのデータベースがクラッシュした場合に、それにとって代わる必要もありません。

図6: Online型データベース・クラスタ

6. むすび

今回は、最近になって多く使われるようになったデータベース・クラスタを、適用分野ごとに分類し、その特徴を説明しました。次回は、代表的なオープン・ソース・データベースである「PostgreSQL」における、クラスタの動向を説明します。

[参考]
PostgreSQLのコア・メンバーであるJosh Berkus氏がまとめたデータベース・クラスタの情報は、以下の2つのリソースで参照できます。

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています