# HG changeset patch # User Daichi TOMA # Date 1391438041 -32400 # Node ID 8a998d8c391d509a15593f8dcc389369c0894d7f # Parent ec3488a9ddd42ce84cb5e43fb75d0a16e691949d fix introduciton diff -r ec3488a9ddd4 -r 8a998d8c391d paper/abstract.tex --- a/paper/abstract.tex Mon Feb 03 17:24:15 2014 +0900 +++ b/paper/abstract.tex Mon Feb 03 23:34:01 2014 +0900 @@ -1,17 +1,19 @@ \begin{abstract} Haskellは純粋関数型プログラミング言語である。 -モダンな型システムを持ち、型推論と型安全により簡潔で信頼性の高いプログラムを書くことが可能である。 -また、Haskellは純粋であるため、関数は引数が同じならば必ず同じ値を返すことが保証されている。 -これは、並列処理において並列化に適した部分が分かりやすくなるというメリットがあり、また状態に依存したバグから解放されることも意味する。 +モダンな型システムを持ち、型推論と型安全により信頼性の高いプログラムを書くことが可能である。 +Haskellは純粋であるため、関数は引数が同じならば必ず同じ値を返すことが保証されている。 本研究では、Haskell を用いて並列に読み書き可能なデータベースの実装を行う。 並列にデータへアクセスする手法として、元となる木構造を変更することなく編集できる非破壊的木構造を用いる。 非破壊的木構造は、破壊的代入が存在しない Haskell と相性がよい。 -実装した並列データベースの読み込みと書き込みについて性能を計測し、読み込みに関して 98.96 \% という高い並列化率が確認でき、マルチコアプロセッサの性能を引き出すことができた。 -また、掲示板ウェブアプリケーションを開発し、既存の Java の非破壊的木構造データベースとの比較をおこない、Java のおよそ 2倍の性能を確認することができた。 +実装した並列データベースの読み込みと書き込みについて性能を計測し、 +読み込みに関して 12 コアで実行した場合、 1 コアで実行した場合と比較して、10.77 倍 という性能向上率が確認でき、 +マルチコアプロセッサの性能を引き出すことができた。 +また、実用的な用途で利用できるか示すために、Web 掲示板サービスを開発した。 +既存の Java の非破壊的木構造データベースを用いた掲示板実装との比較をおこない、読み込みで 1.87 倍、書き込みで 2.3 倍の性能が確認できた。 \end{abstract} diff -r ec3488a9ddd4 -r 8a998d8c391d paper/introduciton.tex --- a/paper/introduciton.tex Mon Feb 03 17:24:15 2014 +0900 +++ b/paper/introduciton.tex Mon Feb 03 23:34:01 2014 +0900 @@ -1,21 +1,20 @@ \chapter{研究背景と目的} \label{ch:introduction} \pagenumbering{arabic} -ブロードバンド環境やモバイル端末の普及により、ウェブサービスの利用者数は急激に伸びている。 -リクエスト数の増加を予想することは困難であり、負荷が増大した場合に容易に拡張できるスケーラビリティが求められる。 -ここでいうスケーラビリティとは、利用者や負荷の増大に対し、単なるリソースの追加のみでサービスの質を維持することのできる性質のことである。 +Web サービスの脆弱性狙った攻撃が頻繁に発生している。 +脆弱性を悪用されると、Web サービス運営者は賠償など多大な損害を受ける。 +純粋型プログラミング言語 Haskell は、バッファオーバーフローや、クロスサイトスクリプティング、SQL インジェクションを事前の型検査で防ぐことができる。 +つまり、Haskell を用いることで信頼性の高い Web サービスを開発できると言える。 -ウェブサービスにおけるスケーラビリティを実現するための難点の一つとして、データベースが挙げられる。 -本研究の目的は、スケーラビリティを実現するデータベースの実装である。 -ウェブサービスにおけるスケーラビリティを実現するためには、並列にデータにアクセスできる設計が必要となる。 +本研究の目標は、Haskell を用いて信頼性の高い Web サービスおよびデータベースの開発である。 +また、並列実行で性能が線形に向上するスケーラビリティの達成を目指す。 +Web サービス のスケーラビリティを実現するための難点の一つはデータベースであり、データベースは並列にデータにアクセスできる設計が必要となる。 + 本研究では並列にデータへアクセスする手法として、非破壊的木構造を利用する。 非破壊的木構造では、排他制御をせずにデータへアクセスすることが可能でありスケーラビリティを確保できる\cite{shoshi:2010a}\cite{shoshi:2011a}\cite{shoshi:2011b}。 -データベースの実装には、純粋関数型言語 Haskell を用いる。 -Haskell は、モダンな型システムを持ち、型推論と型安全により簡潔で信頼性の高いプログラムを書くことが可能である\cite{types}。 -データベースのやり取りするデータにも型が付くため、セキュリティホールを突くような攻撃の多くが無害化される効果が期待できる。 -また、Haskellは純粋であるため、関数は引数が同じならば必ず同じ値を返すことが保証されている。 -これは、並列処理において並列化に適した部分が分かりやすくなるというメリットがあり、また状態に依存したバグから解放されることも意味する。 +実装した並列データベースの読み込みと書き込みについて性能を計測し、 +読み込みに関して 12 コアで実行した場合、 1 コアで実行した場合と比較して、10.77 倍 という性能向上率が確認でき、 +マルチコアプロセッサの性能を引き出すことができた。 -本論文では、Haskellを用いて非破壊的木構造データベースを実装し、読み込みに関して 98.96 \% という高い並列化率を達成することができ、マルチコアプロセッサの性能を引き出すことができた。 -また、掲示板ウェブアプリケーションを開発し、既存の Java の非破壊的木構造データベースとの比較をおこない、Java のおよそ 2倍の性能を確認することができた。 +また、Web 掲示板サービスを開発し、 既存の Java の非破壊的木構造データベースを用いた掲示板実装との比較をおこない、読み込みで 1.87 倍、書き込みで 2.3 倍の性能が確認できた。 diff -r ec3488a9ddd4 -r 8a998d8c391d paper/master_paper.pdf Binary file paper/master_paper.pdf has changed