# HG changeset patch # User suruga # Date 1509090785 -32400 # Node ID cf949ad77abe4b7e5d5829dd51d4da1d6c3787cc # Parent c4d0b3739d1f3b86b09b5ead4862a66920df075d version-6 diff -r c4d0b3739d1f -r cf949ad77abe midterm.aux --- a/midterm.aux Fri Oct 27 15:42:56 2017 +0900 +++ b/midterm.aux Fri Oct 27 16:53:05 2017 +0900 @@ -11,7 +11,7 @@ \@writefile{toc}{\contentsline {section}{\numberline {4}TORQUE Resource Manager}{2}} \@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces TORQUEの構成}}{2}} \newlabel{fig:torque}{{2}{2}} -\@writefile{toc}{\contentsline {section}{\numberline {5}Testプログラム}{2}} -\@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces LogupdateTestによるJungleの性能測定}}{2}} +\@writefile{toc}{\contentsline {section}{\numberline {5}テストプログラム}{2}} +\@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces TestプログラムによるJungleの性能測定}}{2}} \newlabel{fig:logupdatetest}{{3}{2}} \@writefile{toc}{\contentsline {section}{\numberline {6}今後の作業}{2}} diff -r c4d0b3739d1f -r cf949ad77abe midterm.dvi Binary file midterm.dvi has changed diff -r c4d0b3739d1f -r cf949ad77abe midterm.log --- a/midterm.log Fri Oct 27 15:42:56 2017 +0900 +++ b/midterm.log Fri Oct 27 16:53:05 2017 +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) 27 OCT 2017 14:54 +This is e-pTeX, Version 3.14159265-p3.7.1-161114-2.6 (utf8.euc) (TeX Live 2017) (preloaded format=platex 2017.10.20) 27 OCT 2017 16:47 entering extended mode restricted \write18 enabled. %&-line parsing enabled. @@ -170,15 +170,25 @@ ] File: ./pic/torque.pdf Graphic file (type pdf) <./pic/torque.pdf> +LaTeX Font Info: Try loading font information for OMS+cmr on input line 86. + +(/usr/local/texlive/2017/texmf-dist/tex/latex/base/omscmr.fd +File: omscmr.fd 2014/09/29 v2.5h Standard LaTeX font definitions +) +LaTeX Font Info: Font shape `OMS/cmr/m/n' in size <10> not available +(Font) Font shape `OMS/cmsy/m/n' tried instead on input line 86. File: pic/logupdatetest.pdf Graphic file (type pdf) - [2] (./midterm.aux) ) + + [2] [3 + +] (./midterm.aux) ) Here is how much of TeX's memory you used: - 1015 strings out of 493653 - 12076 string characters out of 6148873 + 1032 strings out of 493653 + 12378 string characters out of 6148873 79211 words of memory out of 5000000 - 4627 multiletter control sequences out of 15000+600000 + 4641 multiletter control sequences out of 15000+600000 13088 words of font info for 51 fonts, out of 8000000 for 9000 929 hyphenation exceptions out of 8191 - 25i,15n,43p,511b,360s stack positions out of 5000i,500n,10000p,200000b,80000s + 25i,15n,44p,511b,360s stack positions out of 5000i,500n,10000p,200000b,80000s -Output written on midterm.dvi (2 pages, 13384 bytes). +Output written on midterm.dvi (3 pages, 13132 bytes). diff -r c4d0b3739d1f -r cf949ad77abe midterm.pdf Binary file midterm.pdf has changed diff -r c4d0b3739d1f -r cf949ad77abe midterm.tex --- a/midterm.tex Fri Oct 27 15:42:56 2017 +0900 +++ b/midterm.tex Fri Oct 27 16:53:05 2017 +0900 @@ -30,27 +30,20 @@ スマートフォンやタブレット端末の普及にともない、年々Webサービスの利用者は増加した一方で、データ量が増大し、サーバ側への負荷も増加している。 これを解決するため、Webサービスには、よりシステムの処理能力を拡張する性質である、スケーラビリティが求められてきている。 -スケーラビリティとは、高性能のマシンを用意したり、複数のマシンに処理を分散させたりすることで、システムの処理能力を向上させる性能を指す。本実験で指すスケーラビリティとは、後者の方である。 - -webサービスにスケーラビリティを付与する方法の1つに、データベースにスケーラビリティを持たせる事が考えられる。 +スケーラビリティとは、高性能のマシンを用意したり、複数のマシンに処理を分散させたりすることで、システムの処理能力を向上させる性能を指す。本実験で指すスケーラビリティとは、後者の方である。Webサービスにスケーラビリティを付与する方法の1つに、データベースにスケーラビリティを持たせる事が考えられる。 -そこで、当研究室ではスケーラビリティを持つデータベースとして木構造を持つ分散データベースjungleを開発している。方法としては、分散環境上で複数のデータベースJungleを起動することで、処理を分散させる。 +そこで、当研究室ではスケーラビリティを持つデータベースとして木構造を持つ分散データベースJungleを開発している。方法としては、分散環境上で複数のデータベースJungleを起動することで、処理を分散させる。 -これまでに行われた分散環境上でのJungleの性能を検証する実験[2]では、使用するTestプログラムのフロントエンドにWebサーバーJettyが使用されており、純粋なJungleの性能は測定できていなかった。今回は、新たに改良されたJungleの性能を、Webサーバーを取り除いたTestプログラムを用いて測定することを目的とする。 +これまでに行われた分散環境上でのJungleの性能を検証する実験[2]では、使用するテストプログラムのフロントエンドにWebサーバーJettyが使用されており、純粋なJungleの性能は測定できていなかった。今回は、新たに改良されたJungleの性能を、Webサーバーを取り除いたTestプログラムを用いて測定することを目的とする。 \section{分散データベースJungle} Jungleは、当研究室で開発を行っている木構造の分散データベースで、Javaを用いて実装されている。 -Jungleはデータをオンメモリで保持している。しかし、オンメモリのままでは電源が落ちた際にデータが失われてしまうという問題がある。 -そこで、データの復旧を行えるよう、Jungleではログによって、バージョンごとにデータを保持している。 -Jungleの分散ノード間の通信は木の変更のログを交換することによって、分散データベースを構成するよう設計されている。 -持続性のある分散ノードを用いることでJungleの持続性を保証することができる。 - Jungleは名前付きの複数の木の集合からなり、木は複数のノードの集合でできている。ノードは自身の子のリストと属性名、属性値を持ち、データベースのレコードに相応する。通常のレコードと異なるのは、ノードに子供となる複数のノードが付くところである。 通常のRDBと異なり、Jungleは木構造をそのまま読み込むことができる。例えば、XMLやJsonで記述された構造を、データベースを設計することなく読み込むことが可能である。また、この木を、そのままデータベースとして使用することも可能である。しかし、木の変更の手間は木の構造に依存する。特に非破壊木構造[3]を採用しているJungleでは、木構造の変更の手間はO(1)からO(n)となりえる。つまり、アプリケーションに合わせて木を設計しない限り、十分な性能を出すことはできない。逆に、正しい木の設計を行えば高速な処理が可能である。 -Jungleは基本的にオンメモリで使用することを考えており、一度、木のルートを取得すれば、その上で木構造として自由にアクセスして良い。 +Jungleはデータの変更を非破壊で行なっており、編集ごとのデータをバージョンとしてTreeOperationLog[2]に残している。Jungleの分散ノード間の通信は木の変更のTreeOperationLogを交換することによって、分散データベースを構成するよう設計されている。 \section{分散フレームワークAliceによる分散環境の構築} 本研究では、分散環境上でのJungleの性能を確認する為、VM32台分のサーバーノードを用意し、それぞれでJungleを起動することで、Jungle間で通信をする環境をつくる。 @@ -59,14 +52,13 @@ Aliceには、ネットワークのトポロジーを構成するTopologyManager[2]という機能が備わっている。TopologyManagerに参加表明をしたサーバーノードに順番に、接続先のサーバーノードのIPアドレス、ポート番号、接続名を送り、受け取ったサーバーノードはそれらに従って接続する。 今回、TopologyManagerはJungleをのせたVM32台分のサーバーノードを、木構造を形成するように采配する(図\ref{fig:topologymanager} )。 +トポロジー構成後、Jungle間の通信でのデータ形式にはTreeOperationLogを利用する。TreeOperationLogには、ノードの編集の履歴などの情報が入っている。TreeOperationLogをAliceによって他のJungleへ送ることで、送信元のJungleと同じ編集を行う。こうして、Jungle間でのデータの同期を可能にしている。 \begin{figure}[H] \centering \includegraphics[width=70mm]{pic/topologymanager.pdf} \caption{AliceによるJungleの木構造トポロジーの形成} \label{fig:topologymanager} \end{figure} - -トポロジー構成後、Jungle間の通信でのデータ形式にはTreeOperationLog[2]を利用する。TreeOperationLogには、ノードの編集の履歴などの情報が入っている。TreeOperationLogをAliceによって他のJungleへ送ることで、送信元のJungleと同じ編集を行う。こうして、Jungle間でのデータの同期を可能にしている。 \section{TORQUE Resource Manager} 分散環境上でのJungleの性能を測定するにあたり、VM32台にJungleを起動させた後、それぞれでデータを書き込むプログラムを動作させる。プログラムを起動する順番やタイミングは、TORQUE Resource Manager[1]というジョブスケジューラーによって管理する。 @@ -79,18 +71,26 @@ \caption{TORQUEの構成} \label{fig:torque} \end{figure} + ユーザーはジョブを記述したシェルスクリプトを用意し、スケジューラーに投入する。その際に、利用したいマシン数やCPUコア数を指定する。TORQUEは、ジョブに必要なマシンが揃い次第、受け取ったジョブを実行する。 -\section{Testプログラム} -これまでの分散環境上でのJungleの性能を測定する実験で使われたTestプログラムは、フロントエンドにJettyというWebサーバーが使われていた。 +\section{テストプログラム} +これまでの分散環境上でのJungleの性能を測定する実験で使われたテストプログラムは、フロントエンドにJettyというWebサーバーが使われていた。 しかし、Webサーバーが仲介した測定結果となってしまい、純粋なJungleの性能を測定できないという問題がある。 -そこで、Webサーバーを取り除き、これまでの研究により純粋にJungleの性能を測定するTestプログラムを作成する。 +そこで、Webサーバーを取り除き、これまでの研究により純粋にJungleの性能を測定するテストプログラムを作成する。 + +テストプログラムは、木構造における子ノードに、データを複数書き込む機能を提供する。 +末端の複数の子ノードにデータをそれぞれ書き込み、最終的にrootノードへデータをmergeしていく(図\ref{fig:logupdatetest} )。 -Testプログラムは、木構造における子ノードに、データを複数書き込む機能を提供する。 -末端の複数の子ノードにデータをそれぞれ書き込み、最終的にrootノードへデータをmergeしていく(図\ref{fig:logupdatetest} )。 +測定範囲は、 +\begin{itemize} + \item 末端ノードからrootノードへデータが到達する時間 + \item 末端Jungleからrootノードを介して別の末端ノードへデータが到達する時間 +\end{itemize} +の2点を計測する予定である。 \begin{figure}[H] \centering \includegraphics[width=70mm]{pic/logupdatetest.pdf} - \caption{LogupdateTestによるJungleの性能測定} + \caption{TestプログラムによるJungleの性能測定} \label{fig:logupdatetest} \end{figure} diff -r c4d0b3739d1f -r cf949ad77abe pic/logupdatetest.graffle Binary file pic/logupdatetest.graffle has changed diff -r c4d0b3739d1f -r cf949ad77abe pic/logupdatetest.pdf Binary file pic/logupdatetest.pdf has changed diff -r c4d0b3739d1f -r cf949ad77abe pic/topologymanager.graffle Binary file pic/topologymanager.graffle has changed diff -r c4d0b3739d1f -r cf949ad77abe pic/topologymanager.pdf Binary file pic/topologymanager.pdf has changed