琉球大学 大城信康
Feb 3, 2013
非破壊的木構造データベースJungleに分散実装を行い掲示板システムに特化したデーターベースを作成し、その評価を行った。
分散データベースCassandraより2倍以上速く、分散環境下においては10倍以上速くなる結果も確認された。
ウェブサービスにとってデータベースは必須であり、ウェブサービスの規模に比例してデータベースへの負荷も高まる。
データベースの処理能力の高さはそのままウェブサービスの質に繋がるため、データベースのスケーラビリティの確保は重要である。
スケーラビリティ確保の方法としてデータ分散があるが、分散する方法により性能も変わってくる。
ウェブサービスへの負荷が高まることは、データベースへの負荷が高まることでもある。
データベースの性能が低ければ負荷に耐え切れずサービスはダウンする
そのため、データベースにはスケーラビリティが必要
システムが負荷の増大に対して柔軟に拡張して対応できる性質
主に次の2つの方法によりシステムはスケールされる
分散システムにおいてはスケールアウトによりスケーラビリティを高める
データベースのスケーラビリティを考えるとき、どういう用途で使用するかを考えるのが重要。
ウェブサービスにおいても、どのようなサービスを行うかによってスケーラビリティの確保の仕方も変わってくる。
本研究で開発しているデータベースはコンテンツマネジメントシステム(CMS)を対象としている。
Webコンテンツを構成するテキストや画像などのデジタルコンテンツを管理し配信するシステム。
分散コンテンツマネジメントシステムに求められること。
データ全体の整合性に遅延がある、結果整合性でもよい。書き込みや読み込みを優先としたデータベースが必要。
そこで、非破壊的木構造データベースJungleの提案を行った。
JungleはスケーラビリティのあるCMSの設計を目指して当研究室で開発されているデータベース。
データを木構造で、さらに非破壊で保持する。
非破壊的木構造は一度作成したデータは変更しない
新しい木構造を作成することでデータの編集を行う
非破壊的木構造は通常の木構造である破壊的木構造に比べ、以下のような利点を持つ
ロックが少なく、いつでもコピーが可能なことから、非破壊的木構造はスケーラブルなシステムに有用となる
ここまでJungleに実装されている非破壊的木構造の利点について述べた。
次に、Jungleにおける分散設計について述べる。
データ分散を行うにあたり、まず考えることはトポロジーの形成と他のノードからデータの伝搬の仕方である。
Jungleはこの問題に対し、ツリートポロジーを形成し、データ編集の際に発生するcommit logを他のノードに流すことで解決する。
Jungleのトポロジー形成には当研究室で開発している並列分散フレームワークAliceを使用する。
Aliceは以下の機能が提供されている
JungleにAliceを組み込み、Jungleのノード同士でトポロジーを形成する。
Aliceの機能である他ノードへのデータアクセス機構を使用してデータ分散を行う。
2つの状態をもつ掲示板の書き込みができる。
掲示板はcommutativeなため、Mergeが自然に行える。
commit log伝搬によるデータ分散 |
---|
サーバノード同士でツリートポロジーを形成する。データ編集をどのように行ったのかを示すログ commit log を伝搬させデータの分散を行う。