view paper/introduciton.tex @ 34:345eacdf29e4

add apendix
author Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
date Mon, 03 Feb 2014 16:54:48 +0900
parents 21f075c483cc
children ec3488a9ddd4
line wrap: on
line source

\chapter{研究背景と目的} \label{ch:introduction}
\pagenumbering{arabic}

ブロードバンド環境やモバイル端末の普及により、ウェブサービスの利用者数は急激に伸びている。
リクエスト数の増加を予想することは困難であり、負荷が増大した場合に容易に拡張できるスケーラビリティが求められる。
ここでいうスケーラビリティとは、利用者や負荷の増大に対し、単なるリソースの追加のみでサービスの質を維持することのできる性質のことである。

ウェブサービスにおけるスケーラビリティを実現するための難点の一つとして、データベースが挙げられる。
本研究の目的は、スケーラビリティを実現するデータベースの実装である。
ウェブサービスにおけるスケーラビリティを実現するためには、並列にデータにアクセスできる設計が必要となる。
本研究では並列にデータへアクセスする手法として、非破壊的木構造を利用する。
非破壊的木構造では、排他制御をせずにデータへアクセスすることが可能でありスケーラビリティを確保できる\cite{shoshi:2010a}\cite{shoshi:2011a}\cite{shoshi:2011b}。

データベースの実装には、純粋関数型言語 Haskell を用いる。
Haskell は、モダンな型システムを持ち、型推論と型安全により簡潔で信頼性の高いプログラムを書くことが可能である\cite{types}。
データベースのやり取りするデータにも型が付くため、セキュリティホールを突くような攻撃の多くが無害化される。
また、Haskellは純粋であるため、関数は引数が同じならば必ず同じ値を返すことが保証されている。
これは、並列処理において並列化に適した部分が分かりやすくなるというメリットがあり、また状態に依存したバグから解放されることも意味する。

本論文では、Haskellを用いて非破壊的木構造データベースを実装し、読み込みに関して高い並列化率を達成することができ、マルチコアプロセッサの性能を引き出すことができた。
また、掲示板ウェブアプリケーションを開発し、既存の Java の非破壊的木構造データベースとの比較をおこない、Java のおよそ 2倍の性能を確認することができた。