PR

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

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のWebサイトにログインすることでさまざまな限定特典を入手できるようになります。

Think IT会員サービスの概要とメリットをチェック

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