分散 Database Jungleに関する研究

概要

非破壊的木構造データベースJungleに分散実装を行い掲示板システムに特化したデーターベースを作成し、その評価を行った。

分散データベースCassandraより2倍以上速く、分散環境下においては10倍以上速くなる結果も確認された。


研究の背景と目的

ウェブサービスにとってデータベースは必須であり、ウェブサービスの規模に比例してデータベースへの負荷も高まる。

データベースの処理能力の高さはそのままウェブサービスの質に繋がるため、データベースのスケーラビリティの確保は重要である。

スケーラビリティ確保の方法としてデータ分散があるが、分散する方法により性能も変わってくる。

ウェブサービスにおけるデータベースの重要性

ウェブサービスへの負荷が高まることは、データベースへの負荷が高まることでもある。

データベースの性能が低ければ負荷に耐え切れずサービスはダウンする

そのため、データベースにはスケーラビリティが必要

スケーラビリティとは

システムが負荷の増大に対して柔軟に拡張して対応できる性質

主に次の2つの方法によりシステムはスケールされる

分散システムにおいてはスケールアウトによりスケーラビリティを高める

データベースのスケーラビリティ

データベースのスケーラビリティを考えるとき、どういう用途で使用するかを考えるのが重要。

  • 例えば、掲示板システムにおいては、書き込みと読み込みが速いことが求められる。

  • ウェブサービスにおいても、どのようなサービスを行うかによってスケーラビリティの確保の仕方も変わってくる。

    本研究で開発しているデータベースはコンテンツマネジメントシステム(CMS)を対象としている。

    コンテンツマネジメントシステム(CMS)

    Webコンテンツを構成するテキストや画像などのデジタルコンテンツを管理し配信するシステム。

  • 例:ブログツール、Wiki
  • 分散コンテンツマネジメントシステムに求められること。

  • Webコンテンツを分散して管理
  • スケールアウトするシステム
  • データ全体の整合性に遅延がある、結果整合性でもよい。書き込みや読み込みを優先としたデータベースが必要。

    そこで、非破壊的木構造データベースJungleの提案を行った。

    非破壊的木構造データベースJungle

    JungleはスケーラビリティのあるCMSの設計を目指して当研究室で開発されているデータベース。

    データを木構造で、さらに非破壊で保持する。

    非破壊的木構造

    非破壊的木構造は一度作成したデータは変更しない

    新しい木構造を作成することでデータの編集を行う

    非破壊的木構造の利点

    非破壊的木構造は通常の木構造である破壊的木構造に比べ、以下のような利点を持つ

    ロックが少なく、いつでもコピーが可能なことから、非破壊的木構造はスケーラブルなシステムに有用となる

    Jungleの分散設計

    ここまでJungleに実装されている非破壊的木構造の利点について述べた。

    次に、Jungleにおける分散設計について述べる。

    データ分散を行うにあたり、まず考えることはトポロジーの形成と他のノードからデータの伝搬の仕方である。

    Jungleはこの問題に対し、ツリートポロジーを形成し、データ編集の際に発生するcommit logを他のノードに流すことで解決する。

    Jungleトポロジーの形成

    Jungleのトポロジー形成には当研究室で開発している並列分散フレームワークAliceを使用する。

    Aliceは以下の機能が提供されている

    JungleにAliceを組み込み、Jungleのノード同士でトポロジーを形成する。

    Aliceの機能である他ノードへのデータアクセス機構を使用してデータ分散を行う。

    Jungleの分散設計: データ変更コマンドのAPI

    掲示板システムにおけるMerge

    2つの状態をもつ掲示板の書き込みができる。

    掲示板はcommutativeなため、Mergeが自然に行える。

    Jungleの分散設計:トポロジー形成とログによるデータ分散

    commit log伝搬によるデータ分散

    サーバノード同士でツリートポロジーを形成する。データ編集をどのように行ったのかを示すログ commit log を伝搬させデータの分散を行う。