view paper/conclusion.tex @ 22:933bc5556fe0

fix
author Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
date Sun, 02 Feb 2014 08:46:10 +0900
parents 37efb7dc0bda
children 345eacdf29e4
line wrap: on
line source

\chapter{結論} \label{ch:conclusion}

\section{まとめ}
本研究では、関数型言語 Haskell を用いて並列データベースの実装をおこなった。

Haskell は、型推論と型安全により簡潔で信頼性の高いプログラムを書くことができる。
実装において、Haskellの表現力とコンパイル時に多くのエラーを捕まえるという特徴は、開発期間およびコード行数の短縮に繋がった。
また、型安全により実行時に不正にプログラムが終了するといったことがない。

実装した並列データベースの読み込みと書き込みについて性能を計測し、読み込みに関して 98.96 \%という高い並列度が確認できた。
また、簡単な掲示板ウェブアプリケーションを開発し、既存の Java の非破壊的木構造データベースとの比較をおこない、Java のおよそ 2 倍の性能を確認することができた。

\section{今後の課題}
非破壊的木構造データベース Jungle の今後の課題について述べる。

\subsection{書き込み処理の並列度の上昇}
データベースへの書き込み処理において 80.8 \%の並列度しか出ていない。
はじめに、プログラムの変更をせずに、GHC の IO マネージャーの改善によりどの程度並列度が向上するのかを調査する必要がある。
GHC の IO マネージャーの影響度を計測した後、変更処理の改善方法に調査する。
現在ソフトウェア・トランザクショナル・メモリを用いているが、他のスレッドセーフな参照型を用いて性能改善が行えないか確認する。
Haskell では、様々なスレッドセーフな参照型が用意されている。
ロックが制限的だが、高速なIORef、ロックの使えるMVarなどである。

\subsection{分散データベースとしての実装}
並列環境で実行できるが、今後は分散データベースとして実行できるようにしたい。
トポロジーの形成機能や、サーバ間でのデータアクセスの仕組みを実装する必要がある。
サーバ間で木構造の変更を共有するには、木構造を何らかの情報に基づいて、マージする仕組みを導入する必要がある。

\subsection{永続性の実装}
非破壊的木構造データベース Jungle は、オンメモリ上で動作するデータベースである。
並列性を損なわない形で、ディスクへの書き出しを実現したい。
簡単な実装としては、書き出しを担当するスレッドを作成するといったことが考えられる。