view paper/conclusion.tex @ 43:aa6de0f67a0a

add files
author Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
date Tue, 04 Feb 2014 09:38:20 +0900
parents 345eacdf29e4
children fcf49a1241af
line wrap: on
line source

\chapter{まとめと今後の課題} \label{ch:conclusion}

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

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

読み込みに関して 12 コアで実行した場合、1 コアで実行した場合と比較して、10.77 倍 という性能向上率が確認でき、マルチコアプロセッサの性能を引き出すことができた。
また、Web 掲示板サービスを開発し、 既存の Java の非破壊的木構造データベースを用いた掲示板実装との比較をおこない、読み込みで 1.87 倍、書き込みで 2.3 倍の性能が確認できた。

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

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

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

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