changeset 14:91879dd23dd0

fix
author suruga
date Sun, 18 Feb 2018 19:22:18 +0900
parents f7e3cd237e51
children b1e659ca3552
files paper/.DS_Store paper/final_main/.DS_Store paper/final_main/chapter1.tex paper/final_main/chapter3.tex paper/final_main/main.aux paper/final_main/main.dvi paper/final_main/main.log paper/final_main/main.pdf paper/final_main/main.toc
diffstat 9 files changed, 20 insertions(+), 27 deletions(-) [+]
line wrap: on
line diff
Binary file paper/.DS_Store has changed
Binary file paper/final_main/.DS_Store has changed
--- a/paper/final_main/chapter1.tex	Sun Feb 18 02:33:23 2018 +0900
+++ b/paper/final_main/chapter1.tex	Sun Feb 18 19:22:18 2018 +0900
@@ -10,26 +10,17 @@
 データベースの処理能力を向上させるために、スケールアウトとスケールアップの方法が考えられる。
 スケールアップとは、ハードウェア的に高性能なマシンを用意することでシステムの処理能力を上げることを指す。スケールアウトとは、汎用的なマシンを複数用意し、処理を分散させることでシステムの処理能力を上げることを指す。
 単純に処理能力を上げる方法として、スケールアップは有効であるが、高性能のマシンには限界がある。コストはもちろん、そのマシン単体では処理できない程負荷がかかる可能性がある。
-それに対して、スケールアウトは、処理が重くなるたびに汎用的なマシンを順次追加していくことで性能を上げるため、ハードウェア的に高性能なマシンを用意せずにすみ、また柔軟な対応を取ることができる。よって、データベースの性能を向上させる方法として、このスケールアウトが求められている。
-本研究で扱うスケーラビリティとはスケールアウトのことを指す。
+それに対して、スケールアウトは、処理が重くなるたびに汎用的なマシンを順次追加していくことで性能を上げるため、ハードウェア的に高性能なマシンを用意せずにすみ、また柔軟な対応を取ることができる。よって、データベースの性能を向上させる方法として、このスケールアウトが求められている。本研究で扱うスケーラビリティとはスケールアウトのことを指す。
 
 分散データシステムは、データの整合性 (一貫性)、常にアクセスが可能であること (可用性)、データを分散させやすいかどうか (分割耐性)、この 3 つを同時に保証するこ とは出来ない。これは CAP 定理と呼ばれる。
 一貫性と可用性を重視しているのが、現在最も使われているデータベースであるRelational Database(RDB)である。そのため、データを分割し、複数のノードにデータを分散させることが難しく、結果スケールアウトが困難になってしまうという問題がある。分断耐性を必要とする場合は、NoSQLデータベースを選択する。
 
  当研究室では、これらの問題を解決した、煩雑なデータ設計が必要ないスケーラビリ ティのあるデータベースを目指して、非破壊的木構造データベース Jungle を開発している。JungleはNoSQLを元に開発されているため、分断耐性を持っている。また、Jungle は、全体の整合性ではなく、木ごとに閉じた局所的な整合性を保証している。 整合性のある木同士をマージすることで新しい整合性のある木をす繰り出すことも 可能であるため、データの伝搬も容易である。Jungle は、これまでの開発によって木構造を格納する機能をもっている。
-
 \section{研究目的}
-Jungleは現在、JavaとHaskellによりそれぞれの言語で開発されている。
-本研究で扱うのはJava版である。
-
-
-これまでに行われた分散環境上でのJungleの性能を検証する実験では、huskellで書かれたjungleの方が、javaで書かれたjungleよりも、読み込みで 3.25 倍, 書き込みで 3.78 倍の性能が確認できた。
-
-huskellは、モダンな型システムを持ち, 型推論と 型安全により、信頼性に重きを置いてプログラミングを行う関数型言語である。
-対して、Javaはコンパイラ型言語であり、構文に関してはCやC\#の影響を受けており、プログラムの処理に関してはHuskellよりもパフォーマンスが高い言語であるといえる。
-よって、javaで書かれたjungleが、huskellで書かれたjungleより性能が遅くなってしまった原因として、性能測定時に使用するテストプログラムのフロントエンドにWebサーバーJettyが使用されていたことが考えられる。
-
-本研究では、新たにWebサーバーを取り除いた測定用プログラムを用いて、純粋なjava版Jungleの性能を測定する方法を提案する。
+Jungleは現在、JavaとHaskellによりそれぞれの言語で開発されている。本研究で扱うのはJava版である。
+これまでに行われた分散環境上でのJungleの性能を検証する実験では、huskellで書かれたJungleの方が、Javaで書かれたJungleよりも、読み込みで 3.25 倍, 書き込みで 3.78 倍の性能差が確認できた。
+huskellは、モダンな型システムを持ち, 型推論と 型安全により、信頼性に重きを置いてプログラミングを行う関数型言語である。対して、Javaはコンパイラ型言語であり、構文に関してはCやC\#の影響を受けており、プログラムの処理に関してはHuskellよりもパフォーマンスが高い言語であるといえる。処理速度においてはHuskellよりも高いことを予想されていたのにもかかわらず、Java版がHuskell版よりも遅くなってしまった原因として、性能測定時に使用するテストプログラムのフロントエンドにWebサーバーJettyが使用されていたことが考えられる。これでは、この性能結果が、異なる言語で実装されたJungleの性能差によるものなのか、Webサーバーの性能差によるものなのかがわからない。
+そこで、本研究では、新たにWebサーバーを取り除いた測定用プログラムを作成し、純粋なJava版Jungleの性能を測定する方法を提案する。
 
 %\section{論文の構成}
 
--- a/paper/final_main/chapter3.tex	Sun Feb 18 02:33:23 2018 +0900
+++ b/paper/final_main/chapter3.tex	Sun Feb 18 19:22:18 2018 +0900
@@ -9,8 +9,8 @@
 Jungleは現在、Javaで実装されたものと、Huskellで実装されたものがある。
 Java版は、処理速度が早く、よりスケーラビリティの高いデータベースの実装を目的に開発された。
 対してHuskell版は、モダンな型システムと、型推論と型安全という特徴を生かし、信頼性の高データベースの実装を目的に開発された。
-そして、これまでの研究で、Java版とHaskell版のJungleの性能を測定する実験が行われている。
-性能測定実験では、それぞれJetty,Wrapというwebサーバーをフロントエンドに用いたWeb掲示板サービスを使用している。
+そして、これまでの研究で、Java版とHaskell版のJungleの分散性能を測定する実験が行われている。
+分散性能測定実験では、それぞれJetty,Wrapというwebサーバーをフロントエンドに用いたWeb掲示板サービスを使用している。
 Java版とHuskell版のWeb掲示板サービスをブレードサーバー上で実行される。
 計測方法は、掲示板に対して読み込みと書き込みを行い、ネットワークを介してweighhttpで負荷をかける。
 weighthttpの設定は、1スレッドあたり100並列のリクエストを、10スレッド分投入し、合計100万のリクエストを処理させる。
@@ -33,9 +33,10 @@
 処理速度においてはHuskellよりも高いことを予想されていたのにもかかわらず、Java版がHuskell版よりも遅くなってしまった原因は、
 測定時のWeb掲示板サービスのフロントエンドに、どちらもWebサーバーを用いているということが考えられる。しかも、その際は言語の問題から、異なる種類のWebサーバーを使用している。
 これでは、この性能結果が、異なる言語で実装されたJungleの性能差によるものなのか、Webサーバーの性能差によるものなのかがわからない。
-そこで、本研究ではJava版のJungleにおいて、Webサーバーを取り除いた、純粋なJungleの性能を測定するプログラムを実装した。
+そこで、本研究ではJava版のJungleにおいて、Webサーバーを取り除いた、純粋なJungleの分散性能を測定するプログラムを実装した。
 \section{実験概要}
-Jungleを31台立ち上げ、ツリー型のトポロジーを構成し、そのうち16台のJungleに100回書き込まれたデータが、ルートノードのJungleへ到達した時間を計測する実験である。(図\ref{fig:gaiyou} )
+Jungleの分散性能を測定するにあたり、複数台のJungleを通信させ、JungleからJungleに対する書き込みにかかる時間を計測する。複数台のJungleを分散させる為に、学内共用の仮想マシンを32台使用した。分散したJungle同士の通信部分には、当研究室で開発している分散フレームワークAliceの機能であるTopologyManagerを使用する。TopologyManagerの起動には、仮想マシン32台のうちの1台を使用する。
+学科の仮想マシン31台上でそれぞれ1台ずつJungleを立ち上げ、ツリー型のトポロジーを構成する。そのうち16台のJungleに対して100回ずつデータを書き込む。子ノードのJungleは、次々と親ノードのJungleへデータを書き込む。最終的にルートノードのJungleへデータが到達し、書き込まれた時間を計測し、平均を取る。31台中16台のJungleから書き込まれたデータがルートノードのJungleへ書き込まれる、一回あたりの時間を計測する実験である。(図\ref{fig:gaiyou} )
 
   \begin{figure}[htbp]
     \begin{center}
@@ -82,11 +83,11 @@
 \end{table}
 
 \section{TORQUE Resource Manager}
-分散環境上でのJungleの性能を測定するにあたり、VM32台にJungle,AliceのTopologyManagerを起動させた後、Jungleを立ち上げたVMでデータを書き込むプログラムを動作させる。プログラムを起動する順番やタイミングは、TORQUE Resource Managerというジョブスケジューラーによって管理する。
+分散環境上でのJungleの性能を測定するにあたり、VM31台にJungleを起動させた後、16台のJungleに対し、データを書き込むプログラムを動作させる。プログラムを起動する順番やタイミングは、TORQUE Resource Managerというジョブスケジューラーによって管理する。
 
 TORQUE Resource Manager は、ジョブを管理・投下・実行する3つのデーモンで構成されており、
 ジョブの管理・投下を担うデーモンが稼働しているヘッダーノードから、ジョブの実行を担うデーモンが稼働している計算ノードへジョブが投下される(図\ref{fig:torque} )。
-  \begin{figure}[H]
+  \begin{figure}
     \begin{center}
         \includegraphics[width=100mm]{./pic/torque.pdf}
     \end{center}
@@ -95,7 +96,8 @@
 \end{figure}
 
 ユーザーはジョブを記述したシェルスクリプトを用意し、スケジューラーに投入する。その際に、利用したいマシン数やCPUコア数を指定する。TORQUEは、ジョブに必要なマシンが揃い次第、受け取ったジョブを実行する。
-今回、ジョブに投入するためのシェルスクリプトを作成した。以下(ソースコード\ref{src:LogupdateTest.pl})に示す。
+
+今回作成した、ジョブに投入するためのシェルスクリプトを以下(ソースコード\ref{src:LogupdateTest.pl})に示す。
 
 \begin{lstlisting}[frame=lrbt,label=src:LogupdateTest.pl,caption=本実験で投入するジョブスクリプト,numbers=left]
 #!/bin/sh
@@ -152,7 +154,7 @@
 \newpage
 
 \section{Jungleの分散性能測定用テストプログラムの実装}
-本実験において、Jungleの性能を測定する為にテストプログラムを作成した。
+本実験において、Jungleの性能を測定する為に以下のテストプログラムを作成した。
 テストプログラムは、木構造における複数の子ノードに、データを複数書き込む機能を提供する。
 複数の子ノードにデータをそれぞれ書き込み、最終的にrootノードへデータをmergeしていく(図\ref{fig:logupdatetest} )。データを複数書き込む機能は、Jungleを立ち上げる際に-writeオプションと-countオプションをつけることで搭載される。
 
--- a/paper/final_main/main.aux	Sun Feb 18 02:33:23 2018 +0900
+++ b/paper/final_main/main.aux	Sun Feb 18 19:22:18 2018 +0900
@@ -25,7 +25,7 @@
 \@writefile{toc}{\contentsline {section}{\numberline {3.2}実験概要}{7}}
 \@writefile{lof}{\contentsline {figure}{\numberline {3.1}{\ignorespaces 複数のjungleに書き込まれたデータがrootのjungleへ到達する時間を計測する}}{7}}
 \newlabel{fig:gaiyou}{{3.1}{7}}
-\@writefile{toc}{\contentsline {section}{\numberline {3.3}実験環境}{7}}
+\@writefile{toc}{\contentsline {section}{\numberline {3.3}実験環境}{8}}
 \@writefile{lot}{\contentsline {table}{\numberline {3.2}{\ignorespaces KVMの詳細}}{8}}
 \newlabel{tab:kvm}{{3.2}{8}}
 \@writefile{lot}{\contentsline {table}{\numberline {3.3}{\ignorespaces 仮想クラスタの詳細}}{8}}
Binary file paper/final_main/main.dvi has changed
--- a/paper/final_main/main.log	Sun Feb 18 02:33:23 2018 +0900
+++ b/paper/final_main/main.log	Sun Feb 18 19:22:18 2018 +0900
@@ -1,4 +1,4 @@
-This is e-pTeX, Version 3.14159265-p3.7.1-161114-2.6 (utf8.euc) (TeX Live 2017) (preloaded format=platex 2017.10.20)  18 FEB 2018 02:27
+This is e-pTeX, Version 3.14159265-p3.7.1-161114-2.6 (utf8.euc) (TeX Live 2017) (preloaded format=platex 2017.10.20)  18 FEB 2018 19:21
 entering extended mode
  restricted \write18 enabled.
  %&-line parsing enabled.
@@ -652,6 +652,6 @@
  7540 multiletter control sequences out of 15000+600000
  16433 words of font info for 66 fonts, out of 8000000 for 9000
  929 hyphenation exceptions out of 8191
- 27i,8n,32p,520b,1701s stack positions out of 5000i,500n,10000p,200000b,80000s
+ 27i,8n,32p,662b,1701s stack positions out of 5000i,500n,10000p,200000b,80000s
 
-Output written on main.dvi (21 pages, 51392 bytes).
+Output written on main.dvi (21 pages, 53184 bytes).
Binary file paper/final_main/main.pdf has changed
--- a/paper/final_main/main.toc	Sun Feb 18 02:33:23 2018 +0900
+++ b/paper/final_main/main.toc	Sun Feb 18 19:22:18 2018 +0900
@@ -7,7 +7,7 @@
 \contentsline {chapter}{\numberline {第3章}評価実験}{6}
 \contentsline {section}{\numberline {3.1}実験目的}{6}
 \contentsline {section}{\numberline {3.2}実験概要}{7}
-\contentsline {section}{\numberline {3.3}実験環境}{7}
+\contentsline {section}{\numberline {3.3}実験環境}{8}
 \contentsline {section}{\numberline {3.4}TORQUE Resource Manager}{8}
 \contentsline {section}{\numberline {3.5}分散フレームワーク Alice による分散環境の構築}{10}
 \contentsline {section}{\numberline {3.6}Jungleの分散性能測定用テストプログラムの実装}{12}