view paper/introduciton.tex @ 114:d116e59fc8a2

Fixed references
author Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
date Tue, 04 Mar 2014 00:25:04 +0900
parents be9d52d3c424
children eac8620cf9cd
line wrap: on
line source

\chapter{序論}
\pagenumbering{arabic}
 ITシステムが巨大化していくにつれ, 障害発生事例が社会に与える影響もより大きな物となる.
それに伴い, ITシステムにおけるディペンダビリティへの注目が増している.

そこで, DEOSプロジェクトはITシステムにおけるディペンダビリティを担保する技術体系をまとめ, 制度化, さらには事業化を目指している.
DEOSプロジェクトは2006年に独立行政法人科学技術機構(JST)のCRESTプログラムの1つとして始まったプロジェクトである.
DEOSプロジェクトは, 変化し続ける目的や環境の中でシステムを適切に対応させ, 継続的にユーザが求めるサービスを提供することができるシステムの構築法を
開発することを目標としている\cite{deos2013}.
DEOSプロジェクトではそれらの技術体系を「オープンシステムディペンダビリティ」として定義し, それをDEOSプロセスとしてまとめた(図\ref{fig:deos_proccess}).

\begin{figure}[htpb]
  \begin{center}
    \includegraphics[scale=0.5]{figures/deos_proccess.pdf}
    \caption{DEOS プロセス}
    \label{fig:deos_proccess}
  \end{center}
\end{figure}

DEOSプロセスには変化対応サイクルと障害対応サイクルの2つのサイクルがある.
変化対応サイクルは上流プロセスにおける対象システムのオープンシステムディペンダビリティを担保するためのプロセスである.
障害対応サイクルは対象システムの運用時に必要とされるプロセスである.
DEOSプロセスは企画や設計という上流からシステム運用までの対象システムのライフサイクル全体に係わる.
対象システムの運用は, ステークホルダからの対象システムに対する要求に関する
合意を始めとしたあらゆる議論に関する合意をベースに行われる.

DEOS プロセスを構成している各(サブ)プロセスからアクセスが行われるデータベースとして D-ADD(DEOS Agreement Description Database)がある\cite{d_add2013}.
%DEOS プロセスにおいて, 全てのデータを保持する D-ADD(DEOS Agreement Description Database) と呼ばれるデータベースがある.
D-ADD はステークホルダ合意と対象システムに存在するプログラム・コード, 及び対象システムの運用状態との間の一貫性を常に保つための機構を提供する.
このようなデータベースは様々なデータを柔軟に格納する必要があり, データベーススキーマの頻繁な変化に対応する必要がある.
%そのためには木構造を直接使えるデータベースが必須である.
これらのデータベースは, ウェブからアクセスされることも想定される.
そのため, DEOSはウェブサービスとして捉えることができる.

ウェブサービスにとってデータベースは必須であり, ウェブサービスの規模
に比例してデータベースへの負荷も大きなものとなっている. 
そのため, データベースの処理能力の高さはそのままウェブサービスの質にも繋がってくる重要な
項目となっている.
データベースの処理能力をスケールさせる方法としてスケールアップ(垂直スケール)と
スケールアウト(水平スケール)の考えがある.
スケールアップはハードウェア的に高価な単一のマシンを用意することで処理性能を上げることをさす.
スケールアウトは汎用的なマシンをいくつも用意し, 処理を分散させることで処理性能を上げることをさす.
単純に処理能力をあげたいのならば, スケールアップは有効である.
しかし, 単一のマシンを高性能にしても限界がある. 
いずれはそのマシン単体が処理できない程負荷が増えるかもしれないし, ネットワーク帯域といったマシン
以外のハードウェアでボトルネックが発生するかもしれない. 
なによりコストがかかってしまう.

それに対しスケールアウトは, 処理が重くなるにつれて汎用的なマシンを順次追加していくことで
性能をあげていく.
1つのマシンに対して負荷が重くなるということを避けるため, ハードウェア的に高性能なマシンを要求
せずにすみ, 柔軟な対応をとることができる.
ウェブサービスに使用されるデータベースの性能をあげる方法としては, このスケールアウトが求められている.

本研究で扱うスケーラビリティとはこのスケールアウトのことをさす.
最も使われているデータベースであるRelational Databaseはマシンを追加して負荷を分散させることが容易ではない, そのためスケーラビリティを持つことが困難である.
Relational Databaseにはないスケーラビリティを持つデータベースとしてNoSQLと呼ばれるデータベースがある.
NoSQLデータベースはConsistency hashingやShardingといった方法を使いデータを分散させスケーラビリティを得ている.
データベースにおいてスケールアウトによりスケーラビリティを上げることはもはや必須となっている.

本論文では, スケーラビリティのあるデータベースを目指して木構造データベースJungleの提案する.
すなわち, Jungleに分散と永続性の実装を行う.
既存の分散データベースであるCassandraとの比較を行うため, 簡易掲示板を作成し並列環境から負荷をかけることで
性能比較を行った.

\newpage

\section{本論文の構成}
本論文では, 初めに分散データベースについて既存の製品を例に挙げながら述べる.
RDBとNoSQLについて説明し, 既存のNoSQLデータベースの特徴について説明する.
第3章では, Jungleの持つデータ構造, 非破壊的木構造について説明し, Jungleにおけるデータ編集について述べる.
第4章では, 非破壊的木構造による Jungle の基本設計と, 分散バージョン管理システムを参考にした分散設計
について述べる.
第5章では, 第4章で行った設計を元にJungleへ行った分散実装について述べる.
第6章では, 第5章で実装した分散データベースJungleの評価を行うため, 簡易掲示板プログラムを実装する.
この掲示板プログラムはJungleとCassanraそれぞれのデータベースを使うものを用意した.
学科の並列環境上で開発した掲示板プログラムを複数のノードで実行させ, 負荷をかけることで Jungle と Cassandra の
性能比較を行う.
第6章では, 本研究におけるまとめと今後の課題について述べる.